summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/device-quirks.dox14
-rw-r--r--meson.build41
-rw-r--r--tools/libinput-list-quirks.man36
-rwxr-xr-xtools/libinput-measure-touch-size6
-rwxr-xr-xtools/libinput-measure-touchpad-pressure6
-rw-r--r--tools/libinput-quirks.c (renamed from tools/libinput-list-quirks.c)29
-rw-r--r--tools/libinput-quirks.man43
7 files changed, 105 insertions, 70 deletions
diff --git a/doc/device-quirks.dox b/doc/device-quirks.dox
index 35e78215..d4368664 100644
--- a/doc/device-quirks.dox
+++ b/doc/device-quirks.dox
@@ -54,21 +54,23 @@ Once the required section has been added, use the information from section
@section device-quirks-debugging Debugging device quirks
-libinput provides the `libinput list-quirks` tool to list and debug model
-quirks that apply to one or more local devices.
+libinput provides the `libinput quirks` tool to debug the quirks database.
+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
-$ libinput list-quirks /dev/input/event19
+$ libinput quirks list /dev/input/event19
Device has no quirks defined
-$ libinput list-quirks /dev/input/event0
+$ libinput quirks list /dev/input/event0
AttrLidSwitchReliability
@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:
@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/10-generic-keyboard.quirks
quirks debug: /usr/share/share/libinput/10-generic-lid.quirks
diff --git a/meson.build b/meson.build
index d01c4af9..58e909b6 100644
--- a/meson.build
+++ b/meson.build
@@ -471,21 +471,34 @@ configure_file(input : 'tools/libinput-debug-events.man',
install_dir : join_paths(get_option('mandir'), 'man1')
)
-libinput_list_quirks_sources = [ 'tools/libinput-list-quirks.c' ]
-libinput_list_quirks = executable('libinput-list-quirks',
- libinput_list_quirks_sources,
- dependencies : [dep_libquirks, dep_tools_shared, dep_libinput],
- include_directories : [includes_src, includes_include],
- install_dir : libinput_tool_path,
- install : true
- )
+libinput_quirks_sources = [ 'tools/libinput-quirks.c' ]
+libinput_quirks = executable('libinput-quirks',
+ libinput_quirks_sources,
+ dependencies : [dep_libquirks, dep_tools_shared, dep_libinput],
+ include_directories : [includes_src, includes_include],
+ install_dir : libinput_tool_path,
+ install : true
+ )
test('validate-quirks',
- libinput_list_quirks,
- args: ['--validate-only', '--data-dir=@0@'.format(join_paths(meson.source_root(), 'data'))]
+ libinput_quirks,
+ args: ['validate', '--data-dir=@0@'.format(join_paths(meson.source_root(), 'data'))]
)
-configure_file(input : 'tools/libinput-list-quirks.man',
- output : 'libinput-list-quirks.1',
+configure_file(input : 'tools/libinput-quirks.man',
+ 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,
install : true,
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.set('BUILDDIR', meson.build_root())
# 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.
install_data('tools/libinput-measure-touchpad-pressure',
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')
)
# 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.
install_data('tools/libinput-measure-touch-size',
install_dir : libinput_tool_path)
diff --git a/tools/libinput-list-quirks.man b/tools/libinput-list-quirks.man
deleted file mode 100644
index e18495f3..00000000
--- a/tools/libinput-list-quirks.man
+++ /dev/null
@@ -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
diff --git a/tools/libinput-measure-touch-size b/tools/libinput-measure-touch-size
index 990a72a7..a2624354 100755
--- a/tools/libinput-measure-touch-size
+++ b/tools/libinput-measure-touch-size
@@ -224,12 +224,12 @@ class Device(object):
def _init_thresholds_from_quirks(self):
# 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
- # builddir list-quirks
+ # builddir quirks list
builddir = '@BUILDDIR@'
if builddir != '@' + 'BUILDDIR' + '@':
- command = [os.path.join(builddir, 'libinput-list-quirks')]
+ command = [os.path.join(builddir, 'libinput-quirks'), 'list']
else:
- command = ['libinput', 'list-quirks']
+ command = ['libinput', 'quirks', 'list']
command.append(self.path)
cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if cmd.returncode != 0:
diff --git a/tools/libinput-measure-touchpad-pressure b/tools/libinput-measure-touchpad-pressure
index 23ec513b..b842cbd2 100755
--- a/tools/libinput-measure-touchpad-pressure
+++ b/tools/libinput-measure-touchpad-pressure
@@ -202,12 +202,12 @@ class Device(object):
def _init_thresholds_from_quirks(self):
# 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
- # builddir list-quirks
+ # builddir quirks list
builddir = '@BUILDDIR@'
if builddir != '@' + 'BUILDDIR' + '@':
- command = [os.path.join(builddir, 'libinput-list-quirks')]
+ command = [os.path.join(builddir, 'libinput-quirks'), 'list']
else:
- command = ['libinput', 'list-quirks']
+ command = ['libinput', 'quirks', 'list']
command.append(self.path)
cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if cmd.returncode != 0:
diff --git a/tools/libinput-list-quirks.c b/tools/libinput-quirks.c
index 050b505b..88c860e4 100644
--- a/tools/libinput-list-quirks.c
+++ b/tools/libinput-quirks.c
@@ -74,10 +74,10 @@ static void
usage(void)
{
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"
"\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");
}
@@ -105,13 +105,11 @@ main(int argc, char **argv)
enum {
OPT_VERBOSE,
OPT_DATADIR,
- OPT_VALIDATE,
};
static struct option opts[] = {
{ "help", no_argument, 0, 'h' },
{ "verbose", no_argument, 0, OPT_VERBOSE },
{ "data-dir", required_argument, 0, OPT_DATADIR },
- { "validate-only", no_argument, 0, OPT_VALIDATE },
{ 0, 0, 0, 0}
};
@@ -133,20 +131,35 @@ main(int argc, char **argv)
case OPT_DATADIR:
data_path = optarg;
break;
- case OPT_VALIDATE:
- validate = true;
- break;
default:
usage();
return 1;
}
}
- if (optind >= argc && !validate) {
+ if (optind >= argc) {
usage();
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 */
if (!data_path) {
data_path = LIBINPUT_DATA_DIR;
diff --git a/tools/libinput-quirks.man b/tools/libinput-quirks.man
new file mode 100644
index 00000000..097dabea
--- /dev/null
+++ b/tools/libinput-quirks.man
@@ -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