AC_PROG_CC_C99
AC_PROG_CXX # Only used by build C++ test
AC_PROG_GREP
+AC_PROG_SED
# Only used for testing the hwdb
AM_PATH_PYTHON([3.0],, [:])
dep_tools_shared = declare_dependency(link_with : lib_tools_shared,
dependencies : deps_tools_shared)
+man_config = configuration_data()
+man_config.set('LIBINPUT_VERSION', meson.project_version())
+
deps_tools = [ dep_tools_shared, dep_libinput ]
libinput_debug_events_sources = [ 'tools/libinput-debug-events.c' ]
executable('libinput-debug-events',
install_dir : libinput_tool_path,
install : true
)
-install_man('tools/libinput-debug-events.1')
+configure_file(input : 'tools/libinput-debug-events.man',
+ output : 'libinput-debug-events.1',
+ configuration : man_config,
+ install : true,
+ install_dir : join_paths(get_option('mandir'), 'man1')
+ )
libinput_list_devices_sources = [ 'tools/libinput-list-devices.c' ]
executable('libinput-list-devices',
install_dir : libinput_tool_path,
install : true,
)
-install_man('tools/libinput-list-devices.1')
+configure_file(input : 'tools/libinput-list-devices.man',
+ output : 'libinput-list-devices.1',
+ configuration : man_config,
+ install : true,
+ install_dir : join_paths(get_option('mandir'), 'man1')
+ )
libinput_measure_sources = [ 'tools/libinput-measure.c' ]
executable('libinput-measure',
install_dir : libinput_tool_path,
install : true,
)
-install_man('tools/libinput-measure.1')
+configure_file(input : 'tools/libinput-measure.man',
+ output : 'libinput-measure.1',
+ configuration : man_config,
+ install : true,
+ install_dir : join_paths(get_option('mandir'), 'man1')
+ )
libinput_measure_touchpad_tap_sources = [ 'tools/libinput-measure-touchpad-tap.c' ]
executable('libinput-measure-touchpad-tap',
install_dir : libinput_tool_path,
install : true,
)
-install_man('tools/libinput-measure-touchpad-tap.1')
+configure_file(input : 'tools/libinput-measure-touchpad-tap.man',
+ output : 'libinput-measure-touchpad-tap.1',
+ configuration : man_config,
+ install : true,
+ install_dir : join_paths(get_option('mandir'), 'man1')
+ )
if get_option('debug-gui')
dep_gtk = dependency('gtk+-3.0')
install_dir : libinput_tool_path,
install : true
)
- install_man('tools/libinput-debug-gui.1')
+ configure_file(input : 'tools/libinput-debug-gui.man',
+ output : 'libinput-debug-gui.1',
+ configuration : man_config,
+ install : true,
+ install_dir : join_paths(get_option('mandir'), 'man1')
+ )
endif
libinput_sources = [ 'tools/libinput-tool.c' ]
include_directories : include_directories ('src'),
install : true
)
-install_man('tools/libinput.1')
+configure_file(input : 'tools/libinput.man',
+ output : 'libinput.1',
+ configuration : man_config,
+ install : true,
+ install_dir : join_paths(get_option('mandir'), 'man1')
+ )
meson.add_install_script('tools/install-compat-scripts.sh')
uninstall-local:
rm -f $(DESTDIR)$(bindir)/libinput-list-devices
rm -f $(DESTDIR)$(bindir)/libinput-debug-events
+
+SUFFIXES = .man
+.man.1:
+ $(AM_V_GEN)$(SED) -e 's|\@LIBINPUT_VERSION\@|$(PACKAGE_VERSION)|' < $< > $@
+CLEANFILES = *.1
+EXTRA_DIST += $(dist_man1_MANS:.1=.man)
+
+++ /dev/null
-.TH libinput-debug-events "1"
-.SH NAME
-libinput\-debug\-events \- debug helper for libinput
-.SH SYNOPSIS
-libinput debug\-events [\-\-help] [\-\-show\-keycodes] [\-\-udev <seat>|\-\-device /dev/input/event0] [configuration options]
-.SH DESCRIPTION
-.PP
-The
-.B "libinput debug\-events"
-tool creates a libinput context and prints all events from these devices.
-.PP
-This is a debugging tool only, its output may change at any time. Do not
-rely on the output.
-.PP
-This tool usually needs to be run as root to have access to the
-/dev/input/eventX nodes.
-.SH OPTIONS
-.TP 8
-.B \-\-device /dev/input/event0
-Use the given device with the path backend.
-.TP 8
-.B \-\-grab
-Exclusively grab all opened devices. This will prevent events from being
-delivered to the host system.
-.TP 8
-.B \-\-help
-Print help
-.TP 8
-.B \-\-quiet
-Only print libinput messages, don't print anything from this tool. This is
-useful in combination with --verbose for internal state debugging.
-.TP 8
-.B \-\-show\-keycodes
-Key events shown by this tool are partially obfuscated to avoid passwords
-and other sensitive information showing up in the output. Use the
-.B \-\-show\-keycodes
-argument to make all keycodes visible.
-.TP 8
-.B \-\-udev <seat>
-Use the udev backend to listen for device notifications on the given seat.
-The default behavior is equivalent to \-\-udev "seat0".
-.TP 8
-.B \-\-verbose
-Use verbose output
-.SS libinput configuration options
-.TP 8
-.B \-\-enable\-tap|\-\-disable\-tap
-Enable or disable tap-to-click.
-.TP 8
-.B \-\-enable-drag|\-\-disable\-drag
-Enable or disable tap-and-drag
-.TP 8
-.B \-\-enable\-drag-lock|\-\-disable\-drag\-lock
-Enable or disable tap-and-drag.
-.TP 8
-.B \-\-enable\-natural\-scrolling|\-\-disable\-natural\-scrolling
-Enable or disable natural scrolling.
-.TP 8
-.B \-\-enable\-left\-handed|\-\-disable\-left\-handed
-Enable or disable left handed button configuration.
-.TP 8
-.B \-\-enable\-dwt|\-\-disable\-dwt
-Enable or disable disable-while-typing.
-.TP 8
-.B \-\-set\-click\-method=[none|clickfinger|buttons]
-Set the desired click method
-.TP 8
-.B \-\-set\-scroll\-method=[none|twofinger|edge|button]
-Set the desired scroll method.
-.TP 8
-.B \-\-set\-scroll\-button=BTN_MIDDLE
-Set the button to the given button code.
-.TP 8
-.B \-\-set\-profile=[adaptive|flat]
-Set pointer acceleration profile.
-.TP 8
-.B \-\-set\-speed=<value>
-Set pointer acceleration speed. The allowed range is [-1, 1].
-.TP 8
-.B \-\-set\-tap\-map=[lrm|lmr]
-Set button mapping for tapping.
-.SH NOTES
-.PP
-Events shown by this tool may not correspond to the events seen by a
-different user of libinput. This tool initializes a separate context.
-.SH LIBINPUT
-Part of the
-.B libinput(1)
-suite
--- /dev/null
+.TH libinput-debug-events "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput\-debug\-events \- debug helper for libinput
+.SH SYNOPSIS
+libinput debug\-events [\-\-help] [\-\-show\-keycodes] [\-\-udev <seat>|\-\-device /dev/input/event0] [configuration options]
+.SH DESCRIPTION
+.PP
+The
+.B "libinput debug\-events"
+tool creates a libinput context and prints all events from these devices.
+.PP
+This is a debugging tool only, its output may change at any time. Do not
+rely on the output.
+.PP
+This tool usually needs to be run as root to have access to the
+/dev/input/eventX nodes.
+.SH OPTIONS
+.TP 8
+.B \-\-device /dev/input/event0
+Use the given device with the path backend.
+.TP 8
+.B \-\-grab
+Exclusively grab all opened devices. This will prevent events from being
+delivered to the host system.
+.TP 8
+.B \-\-help
+Print help
+.TP 8
+.B \-\-quiet
+Only print libinput messages, don't print anything from this tool. This is
+useful in combination with --verbose for internal state debugging.
+.TP 8
+.B \-\-show\-keycodes
+Key events shown by this tool are partially obfuscated to avoid passwords
+and other sensitive information showing up in the output. Use the
+.B \-\-show\-keycodes
+argument to make all keycodes visible.
+.TP 8
+.B \-\-udev <seat>
+Use the udev backend to listen for device notifications on the given seat.
+The default behavior is equivalent to \-\-udev "seat0".
+.TP 8
+.B \-\-verbose
+Use verbose output
+.SS libinput configuration options
+.TP 8
+.B \-\-enable\-tap|\-\-disable\-tap
+Enable or disable tap-to-click.
+.TP 8
+.B \-\-enable-drag|\-\-disable\-drag
+Enable or disable tap-and-drag
+.TP 8
+.B \-\-enable\-drag-lock|\-\-disable\-drag\-lock
+Enable or disable tap-and-drag.
+.TP 8
+.B \-\-enable\-natural\-scrolling|\-\-disable\-natural\-scrolling
+Enable or disable natural scrolling.
+.TP 8
+.B \-\-enable\-left\-handed|\-\-disable\-left\-handed
+Enable or disable left handed button configuration.
+.TP 8
+.B \-\-enable\-dwt|\-\-disable\-dwt
+Enable or disable disable-while-typing.
+.TP 8
+.B \-\-set\-click\-method=[none|clickfinger|buttons]
+Set the desired click method
+.TP 8
+.B \-\-set\-scroll\-method=[none|twofinger|edge|button]
+Set the desired scroll method.
+.TP 8
+.B \-\-set\-scroll\-button=BTN_MIDDLE
+Set the button to the given button code.
+.TP 8
+.B \-\-set\-profile=[adaptive|flat]
+Set pointer acceleration profile.
+.TP 8
+.B \-\-set\-speed=<value>
+Set pointer acceleration speed. The allowed range is [-1, 1].
+.TP 8
+.B \-\-set\-tap\-map=[lrm|lmr]
+Set button mapping for tapping.
+.SH NOTES
+.PP
+Events shown by this tool may not correspond to the events seen by a
+different user of libinput. This tool initializes a separate context.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
+++ /dev/null
-.TH libinput-debug-gui "1"
-.SH NAME
-libinput\-debug\-gui \- visual debug helper for libinput
-.SH SYNOPSIS
-.B libinput debug\-gui [\-\-help] [\-\-udev <seat>|\-\-device /dev/input/event0] [configuration options]
-.SH DESCRIPTION
-.PP
-The
-.B "libinput debug\-gui"
-tool creates a libinput context and a full-screen GTK window to visualize
-events processed by libinput. This tool exclusively grabs pointing devices
-and stops them from interacting with the rest of the GUI.
-.PP
-.B Hit Esc to exit this tool.
-.PP
-This is a debugging tool only, its output or behavior may change at any
-time. Do not rely on the output or the behavior.
-.PP
-This tool usually needs to be run as root to have access to the
-/dev/input/eventX nodes.
-.SH OPTIONS
-.TP 8
-.B \-\-device /dev/input/event0
-Use the given device with the path backend.
-.TP 8
-.B \-\-grab
-Exclusively grab all opened devices. This will prevent events from being
-delivered to the host system.
-.TP 8
-.B \-\-help
-Print help
-.TP 8
-.B \-\-udev <seat>
-Use the udev backend to listen for device notifications on the given seat.
-The default behavior is equivalent to \-\-udev "seat0".
-.TP 8
-.B \-\-verbose
-Use verbose output
-.PP
-For libinput configuration options, see libinput-debug-events(1)
-.SH NOTES
-.PP
-Events shown by this tool may not correspond to the events seen by a
-different user of libinput. This tool initializes a separate context.
-.SH LIBINPUT
-Part of the
-.B libinput(1)
-suite
--- /dev/null
+.TH libinput-debug-gui "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput\-debug\-gui \- visual debug helper for libinput
+.SH SYNOPSIS
+.B libinput debug\-gui [\-\-help] [\-\-udev <seat>|\-\-device /dev/input/event0] [configuration options]
+.SH DESCRIPTION
+.PP
+The
+.B "libinput debug\-gui"
+tool creates a libinput context and a full-screen GTK window to visualize
+events processed by libinput. This tool exclusively grabs pointing devices
+and stops them from interacting with the rest of the GUI.
+.PP
+.B Hit Esc to exit this tool.
+.PP
+This is a debugging tool only, its output or behavior may change at any
+time. Do not rely on the output or the behavior.
+.PP
+This tool usually needs to be run as root to have access to the
+/dev/input/eventX nodes.
+.SH OPTIONS
+.TP 8
+.B \-\-device /dev/input/event0
+Use the given device with the path backend.
+.TP 8
+.B \-\-grab
+Exclusively grab all opened devices. This will prevent events from being
+delivered to the host system.
+.TP 8
+.B \-\-help
+Print help
+.TP 8
+.B \-\-udev <seat>
+Use the udev backend to listen for device notifications on the given seat.
+The default behavior is equivalent to \-\-udev "seat0".
+.TP 8
+.B \-\-verbose
+Use verbose output
+.PP
+For libinput configuration options, see libinput-debug-events(1)
+.SH NOTES
+.PP
+Events shown by this tool may not correspond to the events seen by a
+different user of libinput. This tool initializes a separate context.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
+++ /dev/null
-.TH libinput-list-devices "1"
-.SH NAME
-libinput\-list\-devices \- list local devices as recognized by libinput
-.SH SYNOPSIS
-.B libinput list\-devices [\-\-help]
-.SH DESCRIPTION
-.PP
-The
-.B "libinput list\-devices"
-tool creates a libinput context on the default seat "seat0" and lists all
-devices recognized by libinput. Each device shows available configurations
-the respective default configuration setting.
-.PP
-For configuration options that allow multiple different settings
-(e.g. scrolling), all available settings are listed. The default setting is
-prefixed by an asterisk (*).
-.PP
-This tool usually needs to be run as root to have access to the
-/dev/input/eventX nodes.
-.SH OPTIONS
-.TP 8
-.B \-\-help
-Print help
-.SH NOTES
-.PP
-Some specific feature may still be available on a device even when
-no configuration is exposed, a lack of a configuration option does not
-necessarily mean that this feature does not work.
-.PP
-A device may be recognized by libinput but not handled by the X.Org libinput
-driver or the Wayland compositor.
-.PP
-An xorg.conf(5) configuration entry or Wayland compositor setting may have
-changed configurations on a device. The
-.B "libinput list\-devices"
-tool only shows the device's default configuration, not the current
-configuration.
-.SH LIBINPUT
-Part of the
-.B libinput(1)
-suite
--- /dev/null
+.TH libinput-list-devices "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput\-list\-devices \- list local devices as recognized by libinput
+.SH SYNOPSIS
+.B libinput list\-devices [\-\-help]
+.SH DESCRIPTION
+.PP
+The
+.B "libinput list\-devices"
+tool creates a libinput context on the default seat "seat0" and lists all
+devices recognized by libinput. Each device shows available configurations
+the respective default configuration setting.
+.PP
+For configuration options that allow multiple different settings
+(e.g. scrolling), all available settings are listed. The default setting is
+prefixed by an asterisk (*).
+.PP
+This tool usually needs to be run as root to have access to the
+/dev/input/eventX nodes.
+.SH OPTIONS
+.TP 8
+.B \-\-help
+Print help
+.SH NOTES
+.PP
+Some specific feature may still be available on a device even when
+no configuration is exposed, a lack of a configuration option does not
+necessarily mean that this feature does not work.
+.PP
+A device may be recognized by libinput but not handled by the X.Org libinput
+driver or the Wayland compositor.
+.PP
+An xorg.conf(5) configuration entry or Wayland compositor setting may have
+changed configurations on a device. The
+.B "libinput list\-devices"
+tool only shows the device's default configuration, not the current
+configuration.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
+++ /dev/null
-.TH libinput-measure-touchpad-tap "1"
-.SH NAME
-libinput\-measure\-touchpad\-tap \- measure tap-to-click properities of devices
-.SH SYNOPSIS
-.B libinput measure touchpad\-tap [\-\-help] [\-\-format=<format>] [/dev/input/event0]
-.SH DESCRIPTION
-.PP
-The
-.B "libinput measure touchpad\-tap"
-tool measures properties of the tap\-to\-click behavior of the user. This is
-an interactive tool. When executed, the tool will prompt the user to
-interact with the touchpad. On termination, the tool prints a summary of the
-tap interactions seen. This data should be attached to any tap\-related bug
-report.
-.PP
-For a full description on how libinput's tap-to-click behavior works, see
-the online documentation here:
-.I https://wayland.freedesktop.org/libinput/doc/latest/tapping.html
-.PP
-This is a debugging tool only, its output may change at any time. Do not
-rely on the output.
-.PP
-This tool usually needs to be run as root to have access to the
-/dev/input/eventX nodes.
-.SH OPTIONS
-If a device node is given, this tool opens that device node. Otherwise, this
-tool searches for the first node that looks like a touchpad and uses that
-node.
-.TP 8
-.B \-\-help
-Print help
-.TP 8
-.B \-\-format=summary|dat
-Specify the data format to be printed. The default (or if
-.B \-\-format
-is omitted) is "summary". See section
-.B DATA FORMATS
-
-.SH DATA FORMATS
-This section describes the data formats printed with the
-.B \-\-format
-commandline argument. Note that any of the output may change at any time.
-.RE
-.PP
-summary
-.RS 4
-The
-.I summary
-format prints a summary of the data collected. This format is useful to
-get a quick overview of a user's tapping behavior and why some taps may or
-may not be detected.
-.RE
-.PP
-dat
-.RS 4
-The
-.I dat
-format prints the touch sequence data (raw and processed) in column-style
-format, suitable for processing by other tools such as
-.B gnuplot(1).
-The data is aligned in one row per touch with each column containing a
-separate data entry.
-.B libinput\-measure\-touchpad\-tap
-prints comments at the top of the file to describe each column.
-.PP
-.B WARNING:
-The data contained in the output is grouped by different sort orders. For
-example, the first few columns may list tap information in the 'natural'
-sort order (i.e. as they occured), the data in the next few columns may list
-tap information sorted by the delta time between touch down and touch up.
-Comparing columns across these group boundaries will compare data of two
-different touch points and result in invalid analysis.
-.SH BUGS
-This tool does not take finger pressure into account. The tap it detects may
-be different to those detected by libinput if libinput's pressure thresholds
-differ significantly to the kernel's pressure thresholds.
-.SH LIBINPUT
-Part of the
-.B libinput(1)
-suite
--- /dev/null
+.TH libinput-measure-touchpad-tap "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput\-measure\-touchpad\-tap \- measure tap-to-click properities of devices
+.SH SYNOPSIS
+.B libinput measure touchpad\-tap [\-\-help] [\-\-format=<format>] [/dev/input/event0]
+.SH DESCRIPTION
+.PP
+The
+.B "libinput measure touchpad\-tap"
+tool measures properties of the tap\-to\-click behavior of the user. This is
+an interactive tool. When executed, the tool will prompt the user to
+interact with the touchpad. On termination, the tool prints a summary of the
+tap interactions seen. This data should be attached to any tap\-related bug
+report.
+.PP
+For a full description on how libinput's tap-to-click behavior works, see
+the online documentation here:
+.I https://wayland.freedesktop.org/libinput/doc/latest/tapping.html
+.PP
+This is a debugging tool only, its output may change at any time. Do not
+rely on the output.
+.PP
+This tool usually needs to be run as root to have access to the
+/dev/input/eventX nodes.
+.SH OPTIONS
+If a device node is given, this tool opens that device node. Otherwise, this
+tool searches for the first node that looks like a touchpad and uses that
+node.
+.TP 8
+.B \-\-help
+Print help
+.TP 8
+.B \-\-format=summary|dat
+Specify the data format to be printed. The default (or if
+.B \-\-format
+is omitted) is "summary". See section
+.B DATA FORMATS
+
+.SH DATA FORMATS
+This section describes the data formats printed with the
+.B \-\-format
+commandline argument. Note that any of the output may change at any time.
+.RE
+.PP
+summary
+.RS 4
+The
+.I summary
+format prints a summary of the data collected. This format is useful to
+get a quick overview of a user's tapping behavior and why some taps may or
+may not be detected.
+.RE
+.PP
+dat
+.RS 4
+The
+.I dat
+format prints the touch sequence data (raw and processed) in column-style
+format, suitable for processing by other tools such as
+.B gnuplot(1).
+The data is aligned in one row per touch with each column containing a
+separate data entry.
+.B libinput\-measure\-touchpad\-tap
+prints comments at the top of the file to describe each column.
+.PP
+.B WARNING:
+The data contained in the output is grouped by different sort orders. For
+example, the first few columns may list tap information in the 'natural'
+sort order (i.e. as they occured), the data in the next few columns may list
+tap information sorted by the delta time between touch down and touch up.
+Comparing columns across these group boundaries will compare data of two
+different touch points and result in invalid analysis.
+.SH BUGS
+This tool does not take finger pressure into account. The tap it detects may
+be different to those detected by libinput if libinput's pressure thresholds
+differ significantly to the kernel's pressure thresholds.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
+++ /dev/null
-.TH libinput-measure "1"
-.SH NAME
-libinput\-measure \- measure properties of devices
-.SH SYNOPSIS
-.B libinput measure [\-\-help] <feature> [<args>]
-.SH DESCRIPTION
-.PP
-The
-.B "libinput measure"
-tool measures properties of one (or more) devices. Depending on what is to
-be measured, this too may not create a libinput context.
-.PP
-This is a debugging tool only, its output may change at any time. Do not
-rely on the output.
-.PP
-This tool usually needs to be run as root to have access to the
-/dev/input/eventX nodes.
-.SH OPTIONS
-.TP 8
-.B \-\-help
-Print help
-.SH FEATURES
-Features that can be measured include
-.TP 8
-.B libinput\-measure\-touchpad\-tap\-time(1)
-Measure tap-to-click time.
-.SH LIBINPUT
-Part of the
-.B libinput(1)
-suite
--- /dev/null
+.TH libinput-measure "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput\-measure \- measure properties of devices
+.SH SYNOPSIS
+.B libinput measure [\-\-help] <feature> [<args>]
+.SH DESCRIPTION
+.PP
+The
+.B "libinput measure"
+tool measures properties of one (or more) devices. Depending on what is to
+be measured, this too may not create a libinput context.
+.PP
+This is a debugging tool only, its output may change at any time. Do not
+rely on the output.
+.PP
+This tool usually needs to be run as root to have access to the
+/dev/input/eventX nodes.
+.SH OPTIONS
+.TP 8
+.B \-\-help
+Print help
+.SH FEATURES
+Features that can be measured include
+.TP 8
+.B libinput\-measure\-touchpad\-tap\-time(1)
+Measure tap-to-click time.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
+++ /dev/null
-.TH libinput "1"
-.SH NAME
-libinput \- tool to interface with libinput
-.SH SYNOPSIS
-.B libinput [\-\-help] [\-\-version] <command> [<args>]
-.SH DESCRIPTION
-.PP
-The
-.B "libinput"
-tool creates a libinput context on the default seat "seat0" and interacts
-with that libinput context.
-.PP
-This tool usually needs to be run as root to have access to the
-/dev/input/eventX nodes.
-.PP
-The context created by this tool is a new libinput context and independent
-of that created by the X.Org libinput driver, the Wayland compositor or any
-other process that utilizes libinput (henceforth called "the caller").
-Configuration options set in this context do not affect any other libinput
-contexts.
-.PP
-Note that a device may be recognized by this tool but not handled by the
-X.Org libinput driver or the Wayland compositor.
-.SH OPTIONS
-.TP 8
-.B \-\-help
-Print help and exit
-.TP 8
-.B \-\-version
-Print the version and exit
-
-.SH COMMANDS
-All commands support a
-.B \-\-help
-argument that prints command\-specific usage
-information, e.g.
-.B "libinput debug\-events \-\-help".
-.TP 8
-.B libinput\-debug\-events(1)
-Print all events as seen by libinput.
-.TP 8
-.B libinput\-debug\-gui(1)
-Show a GUI to visualize libinput's events.
-.TP 8
-.B libinput\-list\-devices(1)
-List all devices recognized by libinput.
-.TP 8
-.B libinput\-measure(1)
-Measure various properties of devices.
-.TP 8
-.B libinput\-measure\-touchpad\-tap(1)
-Measure tap-to-click time.
-.SH LIBINPUT
-Part of the
-.B libinput(1)
-suite
-.PP
-.SH SEE ALSO
-libinput(4)
-.PP
-libinput's online documentation
-.I https://wayland.freedesktop.org/libinput/doc/latest/
--- /dev/null
+.TH libinput "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput \- tool to interface with libinput
+.SH SYNOPSIS
+.B libinput [\-\-help] [\-\-version] <command> [<args>]
+.SH DESCRIPTION
+.PP
+The
+.B "libinput"
+tool creates a libinput context on the default seat "seat0" and interacts
+with that libinput context.
+.PP
+This tool usually needs to be run as root to have access to the
+/dev/input/eventX nodes.
+.PP
+The context created by this tool is a new libinput context and independent
+of that created by the X.Org libinput driver, the Wayland compositor or any
+other process that utilizes libinput (henceforth called "the caller").
+Configuration options set in this context do not affect any other libinput
+contexts.
+.PP
+Note that a device may be recognized by this tool but not handled by the
+X.Org libinput driver or the Wayland compositor.
+.SH OPTIONS
+.TP 8
+.B \-\-help
+Print help and exit
+.TP 8
+.B \-\-version
+Print the version and exit
+
+.SH COMMANDS
+All commands support a
+.B \-\-help
+argument that prints command\-specific usage
+information, e.g.
+.B "libinput debug\-events \-\-help".
+.TP 8
+.B libinput\-debug\-events(1)
+Print all events as seen by libinput.
+.TP 8
+.B libinput\-debug\-gui(1)
+Show a GUI to visualize libinput's events.
+.TP 8
+.B libinput\-list\-devices(1)
+List all devices recognized by libinput.
+.TP 8
+.B libinput\-measure(1)
+Measure various properties of devices.
+.TP 8
+.B libinput\-measure\-touchpad\-tap(1)
+Measure tap-to-click time.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
+.PP
+.SH SEE ALSO
+libinput(4)
+.PP
+libinput's online documentation
+.I https://wayland.freedesktop.org/libinput/doc/latest/