Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / lib / libinput
Commits:
-
106f0fd4
by Peter Hutterer at 2018-07-09T05:14:53Z
-
8e7ff11b
by Peter Hutterer at 2018-07-19T03:48:17Z
-
9478050e
by Peter Hutterer at 2018-07-19T03:48:24Z
-
e913edd1
by Peter Hutterer at 2018-07-19T03:50:12Z
-
02398ba5
by Peter Hutterer at 2018-07-19T04:07:04Z
-
fa4e1efc
by Peter Hutterer at 2018-07-24T23:53:08Z
-
a9338412
by Peter Hutterer at 2018-07-24T23:53:18Z
-
5781f296
by Peter Hutterer at 2018-07-24T23:53:26Z
-
8062f419
by Jeremy at 2018-07-24T23:54:54Z
-
7f6c1fc4
by Peter Hutterer at 2018-07-24T23:57:00Z
9 changed files:
- README.md
- doc/faqs.dox
- doc/page-hierarchy.dox
- doc/switches.dox
- doc/tools.dox
- meson.build
- tools/libinput-replay
- tools/shared.c
- udev/90-libinput-model-quirks.hwdb
Changes:
... | ... | @@ -11,6 +11,17 @@ provide the common set of functionality that users expect. Input event |
11 | 11 |
processing includes scaling touch coordinates, generating
|
12 | 12 |
relative pointer events from touchpads, pointer acceleration, etc.
|
13 | 13 |
|
14 |
+User documentation
|
|
15 |
+------------------
|
|
16 |
+ |
|
17 |
+Documentation explaining features available in libinput is available
|
|
18 |
+[here](https://wayland.freedesktop.org/libinput/doc/latest/pages.html).
|
|
19 |
+ |
|
20 |
+This includes the [FAQ](https://wayland.freedesktop.org/libinput/doc/latest/faq.html)
|
|
21 |
+and the instructions on
|
|
22 |
+[reporting bugs](https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html).
|
|
23 |
+ |
|
24 |
+ |
|
14 | 25 |
Architecture
|
15 | 26 |
------------
|
16 | 27 |
|
... | ... | @@ -220,4 +220,27 @@ The warning has no immediate effect on libinput's behavior but some of the |
220 | 220 |
functionality that relies on the timer may be impeded (e.g. palms are not
|
221 | 221 |
detected as they should be).
|
222 | 222 |
|
223 |
+@section faq_wayland Is libinput required for Wayland?
|
|
224 |
+ |
|
225 |
+Technically - no. But for your use-case - probably.
|
|
226 |
+ |
|
227 |
+Wayland is a display server communication protocol. libinput is a low-level
|
|
228 |
+library to simplify handling input devices and their events. They have no
|
|
229 |
+direct connection. As a technical analogy, the question is similar to "is
|
|
230 |
+glibc required for HTTP", or (stretching the analogy a bit further) "Is a
|
|
231 |
+pen required to write English". No, it isn't.
|
|
232 |
+ |
|
233 |
+You can use libinput without a Wayland compositor, you can
|
|
234 |
+write a Wayland compositor without libinput. Until 2018 the most common use
|
|
235 |
+of libinput is with the X.Org X server through the xf86-input-libinput
|
|
236 |
+driver. As Wayland compositors become more commonplace they will eventually
|
|
237 |
+overtake X.
|
|
238 |
+ |
|
239 |
+So why "for your use-case - probably"? All general-purpose Wayland
|
|
240 |
+compositors use libinput for their input stack. Wayland compositors that
|
|
241 |
+are more specialized (e.g. in-vehicle infotainment or IVI) can handle input
|
|
242 |
+devices directly but the compositor you want to use
|
|
243 |
+on your desktop needs an input stack that is more complex. And right now,
|
|
244 |
+libinput is the only input stack that exists for this use-case.
|
|
245 |
+ |
|
223 | 246 |
*/
|
... | ... | @@ -35,6 +35,10 @@ |
35 | 35 |
|
36 | 36 |
- @subpage tablet-support
|
37 | 37 |
|
38 |
+@page other_devices Other devices
|
|
39 |
+ |
|
40 |
+- @subpage switches
|
|
41 |
+ |
|
38 | 42 |
@page general General
|
39 | 43 |
|
40 | 44 |
- @subpage udev_config
|
1 | 1 |
/**
|
2 | 2 |
@page switches Switches
|
3 | 3 |
|
4 |
-libinput supports a couple of switches. Unlike button events that come in
|
|
5 |
-press and release pairs, switches are usually toggled once and left at the
|
|
6 |
-setting for an extended period of time.
|
|
4 |
+libinput supports the lid and tablet-mode switches. Unlike button events
|
|
5 |
+that come in press and release pairs, switches are usually toggled once and
|
|
6 |
+left at the setting for an extended period of time.
|
|
7 | 7 |
|
8 | 8 |
Only some switches are handled by libinput, see @ref libinput_switch for a
|
9 | 9 |
list of supported switches. Switch events are exposed to the caller, but
|
... | ... | @@ -202,6 +202,35 @@ have captured the bug. |
202 | 202 |
More arguments are available, see the **libinput-record(1)** and
|
203 | 203 |
**libinput-replay(1)** man pages.
|
204 | 204 |
|
205 |
+@subsection libinput-record-autorestart libinput record's autorestart feature
|
|
206 |
+ |
|
207 |
+`libinput record` often collects thousands of events per minute. However,
|
|
208 |
+the output of `libinput record` usually needs to be visually inspected
|
|
209 |
+or replayed in realtime on a developer machine. It is thus imperative that
|
|
210 |
+the event log is kept as short as possible.
|
|
211 |
+ |
|
212 |
+For bugs that are difficult to reproduce use
|
|
213 |
+`libinput record --autorestart=2 --output-file=recording.yml`.
|
|
214 |
+All events will be recorded to a file named
|
|
215 |
+`recording.yml.<current-date-and-time>` and whenever the device does not
|
|
216 |
+send events for 2 seconds, a new file is created. This helps to keep
|
|
217 |
+individual recordings short.
|
|
218 |
+ |
|
219 |
+To use the `--autorestart` option correctly:
|
|
220 |
+- run `libinput record --autorestart=2 --output-file=<somefilename>.yml`.
|
|
221 |
+ You may provide a timeout other than 2 if needed.
|
|
222 |
+- use the device to reproduce the bug, pausing frequently for 2s and longer
|
|
223 |
+ to rotate the logs
|
|
224 |
+- when the bug triggers, **immediately stop using the device** and wait
|
|
225 |
+ several seconds for the log to rotate
|
|
226 |
+- Ctrl+C the `libinput record` process without using the device
|
|
227 |
+ again. Attach the **last recording** to the bug report.
|
|
228 |
+ |
|
229 |
+If you have to use the recorded device to stop `libinput record` (e.g. to
|
|
230 |
+switch windows), remember that this will cause a new recording to be
|
|
231 |
+created. Thus, attach the **second-to-last recording** to the bug report
|
|
232 |
+because this one contains the bug trigger.
|
|
233 |
+ |
|
205 | 234 |
@subsection libinput-record-multiple Recording multiple devices at once
|
206 | 235 |
|
207 | 236 |
In some cases, an interaction between multiple devices is the cause for a
|
... | ... | @@ -226,7 +255,7 @@ Replaying events is the same as for a single recording: |
226 | 255 |
$ sudo libinput replay touchpad-bug.log
|
227 | 256 |
@endverbatim
|
228 | 257 |
|
229 |
-@subsection libinput-measure Measuring device properties with libinput measure
|
|
258 |
+@section libinput-measure Measuring device properties with libinput measure
|
|
230 | 259 |
|
231 | 260 |
The `libinput measure` tool is a multiplexer for various sub-tools that can
|
232 | 261 |
measure specific properties on the device. These tools generally measure one
|
1 | 1 |
project('libinput', 'c', 'cpp',
|
2 |
- version : '1.11.2',
|
|
2 |
+ version : '1.11.3',
|
|
3 | 3 |
license : 'MIT/Expat',
|
4 | 4 |
default_options : [ 'c_std=gnu99', 'warning_level=2' ],
|
5 | 5 |
meson_version : '>= 0.40.0')
|
... | ... | @@ -89,6 +89,10 @@ def create(device): |
89 | 89 |
data = 20
|
90 | 90 |
d.enable(libevdev.evbit(evtype, code), data=data)
|
91 | 91 |
|
92 |
+ properties = fetch(evdev, 'properties')
|
|
93 |
+ for prop in properties:
|
|
94 |
+ d.enable(libevdev.propbit(prop))
|
|
95 |
+ |
|
92 | 96 |
uinput = d.create_uinput_device()
|
93 | 97 |
return uinput
|
94 | 98 |
|
... | ... | @@ -267,10 +267,9 @@ tools_open_udev(const char *seat, bool verbose, bool *grab) |
267 | 267 |
goto out;
|
268 | 268 |
}
|
269 | 269 |
|
270 |
- if (verbose) {
|
|
271 |
- libinput_log_set_handler(li, log_handler);
|
|
270 |
+ libinput_log_set_handler(li, log_handler);
|
|
271 |
+ if (verbose)
|
|
272 | 272 |
libinput_log_set_priority(li, LIBINPUT_LOG_PRIORITY_DEBUG);
|
273 |
- }
|
|
274 | 273 |
|
275 | 274 |
if (libinput_udev_assign_seat(li, seat)) {
|
276 | 275 |
fprintf(stderr, "Failed to set seat\n");
|
... | ... | @@ -175,6 +175,10 @@ libinput:name:Cypress APA Trackpad ?cyapa?:dmi:* |
175 | 175 |
# HP
|
176 | 176 |
##########################################
|
177 | 177 |
|
178 |
+# HP Chromebook 14
|
|
179 |
+libinput:name:*Cypress APA Trackpad *cyapa*:dmi:*svnHewlett-Packard*:pnFalco*
|
|
180 |
+ LIBINPUT_ATTR_PRESSURE_RANGE=12:8
|
|
181 |
+ |
|
178 | 182 |
# HP Compaq6910p
|
179 | 183 |
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:*pnHPCompaq6910p*
|
180 | 184 |
LIBINPUT_MODEL_HP6910_TOUCHPAD=1
|