mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-20 05:40:04 +01:00
tools: rename list-quirks to the more generic "quirks list"
Enables us to easily add more tools where needed and it is more consistent with the existing tools. The commands are now: libinput quirks list libinput quirks validate Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/66 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
0d8c70baef
commit
e723398c14
7 changed files with 105 additions and 70 deletions
|
|
@ -54,21 +54,23 @@ Once the required section has been added, use the information from section
|
||||||
|
|
||||||
@section device-quirks-debugging Debugging device quirks
|
@section device-quirks-debugging Debugging device quirks
|
||||||
|
|
||||||
libinput provides the `libinput list-quirks` tool to list and debug model
|
libinput provides the `libinput quirks` tool to debug the quirks database.
|
||||||
quirks that apply to one or more local devices.
|
This tool takes an action as first argument, the most common invocation is
|
||||||
|
`libinput quirks list` to list model quirks that apply to one or more local
|
||||||
|
devices.
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
$ libinput list-quirks /dev/input/event19
|
$ libinput quirks list /dev/input/event19
|
||||||
Device has no quirks defined
|
Device has no quirks defined
|
||||||
$ libinput list-quirks /dev/input/event0
|
$ libinput quirks list /dev/input/event0
|
||||||
AttrLidSwitchReliability
|
AttrLidSwitchReliability
|
||||||
@endverbatim
|
@endverbatim
|
||||||
|
|
||||||
When called with the `--verbose` argument, `libinput list-quirks` prints
|
When called with the `--verbose` argument, `libinput quirks list` prints
|
||||||
information about all files and its attempts to match the device:
|
information about all files and its attempts to match the device:
|
||||||
|
|
||||||
@verbatim
|
@verbatim
|
||||||
$ libinput list-quirks --verbose /dev/input/event0
|
$ libinput quirks list --verbose /dev/input/event0
|
||||||
quirks debug: /usr/share/share/libinput is data root
|
quirks debug: /usr/share/share/libinput is data root
|
||||||
quirks debug: /usr/share/share/libinput/10-generic-keyboard.quirks
|
quirks debug: /usr/share/share/libinput/10-generic-keyboard.quirks
|
||||||
quirks debug: /usr/share/share/libinput/10-generic-lid.quirks
|
quirks debug: /usr/share/share/libinput/10-generic-lid.quirks
|
||||||
|
|
|
||||||
41
meson.build
41
meson.build
|
|
@ -471,21 +471,34 @@ configure_file(input : 'tools/libinput-debug-events.man',
|
||||||
install_dir : join_paths(get_option('mandir'), 'man1')
|
install_dir : join_paths(get_option('mandir'), 'man1')
|
||||||
)
|
)
|
||||||
|
|
||||||
libinput_list_quirks_sources = [ 'tools/libinput-list-quirks.c' ]
|
libinput_quirks_sources = [ 'tools/libinput-quirks.c' ]
|
||||||
libinput_list_quirks = executable('libinput-list-quirks',
|
libinput_quirks = executable('libinput-quirks',
|
||||||
libinput_list_quirks_sources,
|
libinput_quirks_sources,
|
||||||
dependencies : [dep_libquirks, dep_tools_shared, dep_libinput],
|
dependencies : [dep_libquirks, dep_tools_shared, dep_libinput],
|
||||||
include_directories : [includes_src, includes_include],
|
include_directories : [includes_src, includes_include],
|
||||||
install_dir : libinput_tool_path,
|
install_dir : libinput_tool_path,
|
||||||
install : true
|
install : true
|
||||||
)
|
)
|
||||||
test('validate-quirks',
|
test('validate-quirks',
|
||||||
libinput_list_quirks,
|
libinput_quirks,
|
||||||
args: ['--validate-only', '--data-dir=@0@'.format(join_paths(meson.source_root(), 'data'))]
|
args: ['validate', '--data-dir=@0@'.format(join_paths(meson.source_root(), 'data'))]
|
||||||
)
|
)
|
||||||
|
|
||||||
configure_file(input : 'tools/libinput-list-quirks.man',
|
configure_file(input : 'tools/libinput-quirks.man',
|
||||||
output : 'libinput-list-quirks.1',
|
output : 'libinput-quirks.1',
|
||||||
|
configuration : man_config,
|
||||||
|
install : true,
|
||||||
|
install_dir : join_paths(get_option('mandir'), 'man1')
|
||||||
|
)
|
||||||
|
# Same man page for the subtools to stay consistent with the other tools
|
||||||
|
configure_file(input : 'tools/libinput-quirks.man',
|
||||||
|
output : 'libinput-quirks-list.1',
|
||||||
|
configuration : man_config,
|
||||||
|
install : true,
|
||||||
|
install_dir : join_paths(get_option('mandir'), 'man1')
|
||||||
|
)
|
||||||
|
configure_file(input : 'tools/libinput-quirks.man',
|
||||||
|
output : 'libinput-quirks-validate.1',
|
||||||
configuration : man_config,
|
configuration : man_config,
|
||||||
install : true,
|
install : true,
|
||||||
install_dir : join_paths(get_option('mandir'), 'man1')
|
install_dir : join_paths(get_option('mandir'), 'man1')
|
||||||
|
|
@ -544,7 +557,7 @@ configure_file(input : 'tools/libinput-measure-touchpad-tap.man',
|
||||||
config_builddir = configuration_data()
|
config_builddir = configuration_data()
|
||||||
config_builddir.set('BUILDDIR', meson.build_root())
|
config_builddir.set('BUILDDIR', meson.build_root())
|
||||||
# libinput-measure-touchpad-pressure gets built but we install_data the
|
# libinput-measure-touchpad-pressure gets built but we install_data the
|
||||||
# source instead. The built file is the one that uses the local list-quirks
|
# source instead. The built file is the one that uses the local quirks
|
||||||
# and should be used for debugging.
|
# and should be used for debugging.
|
||||||
install_data('tools/libinput-measure-touchpad-pressure',
|
install_data('tools/libinput-measure-touchpad-pressure',
|
||||||
install_dir : libinput_tool_path)
|
install_dir : libinput_tool_path)
|
||||||
|
|
@ -560,7 +573,7 @@ configure_file(input : 'tools/libinput-measure-touchpad-pressure.man',
|
||||||
install_dir : join_paths(get_option('mandir'), 'man1')
|
install_dir : join_paths(get_option('mandir'), 'man1')
|
||||||
)
|
)
|
||||||
# libinput-measure-touch-size gets built but we install_data the source
|
# libinput-measure-touch-size gets built but we install_data the source
|
||||||
# instead. The built file is the one that uses the local list-quirks and
|
# instead. The built file is the one that uses the local quirks and
|
||||||
# should be used for debugging.
|
# should be used for debugging.
|
||||||
install_data('tools/libinput-measure-touch-size',
|
install_data('tools/libinput-measure-touch-size',
|
||||||
install_dir : libinput_tool_path)
|
install_dir : libinput_tool_path)
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
.TH libinput-list-quirks "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
|
|
||||||
.SH NAME
|
|
||||||
libinput\-list\-quirks \- quirk debug helper for libinput
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B libinput list\-quirks [\-\-data\-dir /path/to/dir] [\-\-verbose\fB] \fI/dev/input/event0\fB
|
|
||||||
.br
|
|
||||||
.B libinput list\-quirks [\-\-data\-dir /path/to/dir] [\-\-verbose\fB] \-\-validate\-only
|
|
||||||
.br
|
|
||||||
.B libinput list\-quirks [\-\-help]
|
|
||||||
.SH DESCRIPTION
|
|
||||||
.PP
|
|
||||||
The
|
|
||||||
.B "libinput list\-quirks"
|
|
||||||
tool parses the quirks file in \fIdata\-dir\fR and prints all quirks applied
|
|
||||||
to the given device.
|
|
||||||
.PP
|
|
||||||
This is a debugging tool only, its output and behavior may change at any
|
|
||||||
time. Do not rely on the output.
|
|
||||||
.SH OPTIONS
|
|
||||||
.TP 8
|
|
||||||
.B \-\-data\-dir \fI/path/to/dir\fR
|
|
||||||
Use the given directory as data directory for quirks files.
|
|
||||||
.TP 8
|
|
||||||
.B \-\-help
|
|
||||||
Print help
|
|
||||||
.TP 8
|
|
||||||
.B \-\-validate\-only
|
|
||||||
Only validate that the quirks files can be parsed. When this option is
|
|
||||||
given, no device file should be supplied.
|
|
||||||
.TP 8
|
|
||||||
.B \-\-verbose
|
|
||||||
Use verbose output, useful for debugging.
|
|
||||||
.SH LIBINPUT
|
|
||||||
Part of the
|
|
||||||
.B libinput(1)
|
|
||||||
suite
|
|
||||||
|
|
@ -224,12 +224,12 @@ class Device(object):
|
||||||
def _init_thresholds_from_quirks(self):
|
def _init_thresholds_from_quirks(self):
|
||||||
# This is replaced for the version in builddir but left as-is for
|
# This is replaced for the version in builddir but left as-is for
|
||||||
# the installed version. For the builddir one we need to run the
|
# the installed version. For the builddir one we need to run the
|
||||||
# builddir list-quirks
|
# builddir quirks list
|
||||||
builddir = '@BUILDDIR@'
|
builddir = '@BUILDDIR@'
|
||||||
if builddir != '@' + 'BUILDDIR' + '@':
|
if builddir != '@' + 'BUILDDIR' + '@':
|
||||||
command = [os.path.join(builddir, 'libinput-list-quirks')]
|
command = [os.path.join(builddir, 'libinput-quirks'), 'list']
|
||||||
else:
|
else:
|
||||||
command = ['libinput', 'list-quirks']
|
command = ['libinput', 'quirks', 'list']
|
||||||
command.append(self.path)
|
command.append(self.path)
|
||||||
cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
if cmd.returncode != 0:
|
if cmd.returncode != 0:
|
||||||
|
|
|
||||||
|
|
@ -202,12 +202,12 @@ class Device(object):
|
||||||
def _init_thresholds_from_quirks(self):
|
def _init_thresholds_from_quirks(self):
|
||||||
# This is replaced for the version in builddir but left as-is for
|
# This is replaced for the version in builddir but left as-is for
|
||||||
# the installed version. For the builddir one we need to run the
|
# the installed version. For the builddir one we need to run the
|
||||||
# builddir list-quirks
|
# builddir quirks list
|
||||||
builddir = '@BUILDDIR@'
|
builddir = '@BUILDDIR@'
|
||||||
if builddir != '@' + 'BUILDDIR' + '@':
|
if builddir != '@' + 'BUILDDIR' + '@':
|
||||||
command = [os.path.join(builddir, 'libinput-list-quirks')]
|
command = [os.path.join(builddir, 'libinput-quirks'), 'list']
|
||||||
else:
|
else:
|
||||||
command = ['libinput', 'list-quirks']
|
command = ['libinput', 'quirks', 'list']
|
||||||
command.append(self.path)
|
command.append(self.path)
|
||||||
cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
if cmd.returncode != 0:
|
if cmd.returncode != 0:
|
||||||
|
|
|
||||||
|
|
@ -74,10 +74,10 @@ static void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
printf("Usage:\n"
|
printf("Usage:\n"
|
||||||
" libinput list-quirks [--data-dir /path/to/data/dir] /dev/input/event0\n"
|
" libinput quirks list [--data-dir /path/to/data/dir] /dev/input/event0\n"
|
||||||
" Print the quirks for the given device\n"
|
" Print the quirks for the given device\n"
|
||||||
"\n"
|
"\n"
|
||||||
" libinput list-quirks [--data-dir /path/to/data/dir] --validate-only\n"
|
" libinput quirks validate [--data-dir /path/to/data/dir]\n"
|
||||||
" Validate the database\n");
|
" Validate the database\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -105,13 +105,11 @@ main(int argc, char **argv)
|
||||||
enum {
|
enum {
|
||||||
OPT_VERBOSE,
|
OPT_VERBOSE,
|
||||||
OPT_DATADIR,
|
OPT_DATADIR,
|
||||||
OPT_VALIDATE,
|
|
||||||
};
|
};
|
||||||
static struct option opts[] = {
|
static struct option opts[] = {
|
||||||
{ "help", no_argument, 0, 'h' },
|
{ "help", no_argument, 0, 'h' },
|
||||||
{ "verbose", no_argument, 0, OPT_VERBOSE },
|
{ "verbose", no_argument, 0, OPT_VERBOSE },
|
||||||
{ "data-dir", required_argument, 0, OPT_DATADIR },
|
{ "data-dir", required_argument, 0, OPT_DATADIR },
|
||||||
{ "validate-only", no_argument, 0, OPT_VALIDATE },
|
|
||||||
{ 0, 0, 0, 0}
|
{ 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -133,20 +131,35 @@ main(int argc, char **argv)
|
||||||
case OPT_DATADIR:
|
case OPT_DATADIR:
|
||||||
data_path = optarg;
|
data_path = optarg;
|
||||||
break;
|
break;
|
||||||
case OPT_VALIDATE:
|
|
||||||
validate = true;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
usage();
|
usage();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (optind >= argc && !validate) {
|
if (optind >= argc) {
|
||||||
usage();
|
usage();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (streq(argv[optind], "list")) {
|
||||||
|
optind++;
|
||||||
|
if (optind >= argc) {
|
||||||
|
usage();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
} else if (streq(argv[optind], "validate")) {
|
||||||
|
optind++;
|
||||||
|
if (optind < argc) {
|
||||||
|
usage();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
validate = true;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "Unnkown action '%s'\n", argv[optind]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Overriding the data dir means no custom override file */
|
/* Overriding the data dir means no custom override file */
|
||||||
if (!data_path) {
|
if (!data_path) {
|
||||||
data_path = LIBINPUT_DATA_DIR;
|
data_path = LIBINPUT_DATA_DIR;
|
||||||
43
tools/libinput-quirks.man
Normal file
43
tools/libinput-quirks.man
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
.TH libinput-quirks "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
|
||||||
|
.SH NAME
|
||||||
|
libinput\-quirks \- quirk debug helper for libinput
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B libinput quirks list [\-\-data\-dir /path/to/dir] [\-\-verbose\fB] \fI/dev/input/event0\fB
|
||||||
|
.br
|
||||||
|
.sp
|
||||||
|
.B libinput quirks validate [\-\-data\-dir /path/to/dir] [\-\-verbose\fB]
|
||||||
|
.br
|
||||||
|
.sp
|
||||||
|
.B libinput quirks \-\-help
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
The
|
||||||
|
.B "libinput quirks"
|
||||||
|
tool interacts with libinput's quirks database.
|
||||||
|
.PP
|
||||||
|
When invoked as
|
||||||
|
.B libinput quirks list,
|
||||||
|
the tool lists all quirks applied to the given device.
|
||||||
|
.PP
|
||||||
|
When invoked as
|
||||||
|
.B libinput quirks validate,
|
||||||
|
the tool checks for parsing errors in the quirks files and fails
|
||||||
|
if a parsing error is encountered.
|
||||||
|
.PP
|
||||||
|
This is a debugging tool only, its output and behavior may change at any
|
||||||
|
time. Do not rely on the output.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP 8
|
||||||
|
.B \-\-data\-dir \fI/path/to/dir\fR
|
||||||
|
Use the given directory as data directory for quirks files. When omitted,
|
||||||
|
the default directories are used.
|
||||||
|
.TP 8
|
||||||
|
.B \-\-help
|
||||||
|
Print help
|
||||||
|
.TP 8
|
||||||
|
.B \-\-verbose
|
||||||
|
Use verbose output, useful for debugging.
|
||||||
|
.SH LIBINPUT
|
||||||
|
Part of the
|
||||||
|
.B libinput(1)
|
||||||
|
suite
|
||||||
Loading…
Add table
Reference in a new issue