Find a file
Peter Hutterer 578151da61 tools: add a libinput-replay tool
Similar in style to evemu-play but parses the YAML printed by
libinput-record. Note that this tool requires python-libevdev which is a new
package and may not be packaged by your distribution. Install with pip3 or
alternatively, just ignore libinput-replay, it's a developer tool only anyway.

User-visible differences to evemu-play:
* supports replaying multiple devices at the same time.
* no replaying on a specific device, we can add this if we ever need it
* --verbose prints the event to stdout as we are replaying them. This is
  particularly useful on long recordings - once the bug occurs we can ctrl+c
  and match up the last few lines with the recordings file. This allows us to
  e.g. drop the rest of the file.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-03-01 11:50:46 +10:00
doc evdev: add a quirk to disable debouncing on the MS Nano Transcievers 2018-02-13 15:58:48 +10:00
include/linux include: sync linux kernel header files with 4.12 2017-09-21 09:07:21 +10:00
src touchpad: don't do speed-based thumb detection on single-touch or semi-mts 2018-03-01 11:23:07 +10:00
test test: fix an incomplete comment 2018-02-28 17:43:30 +10:00
tools tools: add a libinput-replay tool 2018-03-01 11:50:46 +10:00
udev udev: fix flake8-3 complaint in parse_hwdb.py 2018-02-27 14:36:08 +10:00
.dir-locals.el indentation: add .dir-locals.el for emacs 2018-02-26 18:44:00 +10:00
.gitignore Drop autotools 2017-07-04 13:44:07 +10:00
.vimdir Add .vimdir for libinput-specific settings 2015-05-25 09:17:29 +10:00
circle.yml circleci: update to use Ubuntu 17.10 2018-01-19 09:24:47 +10:00
CODING_STYLE Add more rules to CODING_STYLE 2015-07-08 09:19:05 +10:00
COPYING COPYING: Update boilerplate from MIT X11 to MIT Expat license 2015-06-16 14:36:04 +10:00
meson.build tools: add a libinput-replay tool 2018-03-01 11:50:46 +10:00
meson_options.txt Fix meson options default values 2017-10-10 08:21:10 +10:00
README.md README: tidy up the documentation links 2017-07-03 14:43:26 +10:00

libinput

libinput is a library that handles input devices for display servers and other applications that need to directly deal with input devices.

It provides device detection, device handling, input device event processing and abstraction so minimize the amount of custom input code the user of libinput need to provide the common set of functionality that users expect. Input event processing includes scaling touch coordinates, generating pointer events from touchpads, pointer acceleration, etc.

libinput originates from weston, the Wayland reference compositor.

Architecture

libinput is not used directly by applications, rather it is used by the xf86-input-libinput X.Org driver or wayland compositors. The typical software stack for a system running Wayland is:

@dotfile libinput-stack-wayland.gv

Where the Wayland compositor may be Weston, mutter, KWin, etc. Note that Wayland encourages the use of toolkits, so the Wayland client (your application) does not usually talk directly to the compositor but rather employs a toolkit (e.g. GTK) to do so.

The simplified software stack for a system running X.Org is:

@dotfile libinput-stack-xorg.gv

Again, on a modern system the application does not usually talk directly to the X server using Xlib but rather employs a toolkit to do so.

Source code

The source code of libinput can be found at: http://cgit.freedesktop.org/wayland/libinput

For a list of current and past releases visit: http://www.freedesktop.org/wiki/Software/libinput/

Build instructions: http://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html

Reporting Bugs

Bugs can be filed in the libinput component of Wayland: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=libinput

Where possible, please provide an evemu recording of the input device and/or the event sequence in question.

See @ref reporting_bugs for more info.

Documentation

Examples of how to use libinput are the debugging tools in the libinput repository. Developers are encouraged to look at those tools for a real-world (yet simple) example on how to use libinput.

License

libinput is licensed under the MIT license.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: [...]

See the COPYING file for the full license information.