Compare commits

...

6 commits
main ... 1.4.1

Author SHA1 Message Date
Peter Hutterer
23388c99c3 libinput 1.4.1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2016-08-05 11:30:41 +10:00
Peter Hutterer
657c087286 doc: add some info about configuring devices in wayland/xorg
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit ae30353a73)
2016-08-05 11:29:22 +10:00
Peter Hutterer
6614604e9a touchpad: use the udev ID_INPUT_TOUCHPAD_INTEGRATION property if available
udev now labels touchpads as "internal" or "external" for us, use that value
where available and only fall back onto our own labelling if it's missing or
unknown.

systemd commit: https://github.com/systemd/systemd/pull/3638

https://bugs.freedesktop.org/show_bug.cgi?id=96735

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 64e3941189)
2016-08-05 08:58:34 +10:00
Peter Hutterer
d7d64d9871 doc: add links to the two debugging tools as examples
These are the simplest examples on how to use libinput and should be enough to
get any potential user started.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 14d0cd9d38)
2016-08-05 08:58:28 +10:00
Peter Hutterer
33a6613671 udev: don't overwrite a previously set device group
In some cases a device may need a device group assigned by a custom udev rule
or hwdb entry. Don't overwrite that with our generated one.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
(cherry picked from commit 188bad4866)
2016-08-05 08:58:17 +10:00
Peter Hutterer
92be97b045 evdev: prefix "tablet unknown to libwacom" error with the device name
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 45a574a785)
2016-08-05 08:58:13 +10:00
6 changed files with 87 additions and 3 deletions

View file

@ -67,6 +67,23 @@ http://wayland.freedesktop.org/libinput/doc/latest/modules.html
High-level documentation about libinput's features:
http://wayland.freedesktop.org/libinput/doc/latest/pages.html
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.
- A commandline debugging tool: https://cgit.freedesktop.org/wayland/libinput/tree/tools/event-debug.c
- A GTK application that draws cursor/touch/tablet positions: https://cgit.freedesktop.org/wayland/libinput/tree/tools/event-gui.c
libinput provides a
[pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/) file.
Usually a program will use the `PKG_CHECK_MODULES` autoconf macro.
Otherwise, the most rudimentary way to compile and link a program against
libinput is:
gcc -o myprogram myprogram.c `pkg-config --cflags --libs libinput`
For further information on using pkgconfig see the pkg-config documentation.
License
-------

View file

@ -2,7 +2,7 @@ AC_PREREQ([2.64])
m4_define([libinput_major_version], [1])
m4_define([libinput_minor_version], [4])
m4_define([libinput_micro_version], [0])
m4_define([libinput_micro_version], [1])
m4_define([libinput_version],
[libinput_major_version.libinput_minor_version.libinput_micro_version])
@ -35,7 +35,7 @@ AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
# b) If interfaces have been changed or added, but binary compatibility has
# been preserved, change to C+1:0:A+1
# c) If the interface is the same as the previous version, change to C:R+1:A
LIBINPUT_LT_VERSION=19:1:9
LIBINPUT_LT_VERSION=19:2:9
AC_SUBST(LIBINPUT_LT_VERSION)
AM_SILENT_RULES([yes])

View file

@ -54,6 +54,52 @@ option is not exposed by the intermediary, it cannot be configured by the
client. Also some configuration options that are provided by the
intermediary may not be libinput-specific configuration options.
@section faq_configure_wayland How do I configure my device on Wayland?
See @ref faq_config_options Use the configuration tool provided by your
desktop environment (e.g. gnome-control-center) or direct access to your
desktop environment's configuration storage (e.g. gsettings).
@section faq_configure_xorg How do I configure my device on X?
See @ref faq_config_options If your desktop environment does not provide a
graphical configuration tool you can use an
<a href="https://www.x.org/archive/current/doc/man/man5/xorg.conf.5.xhtml">xorg.conf.d snippet</a>.
Usually, such a snippet looks like this:
<pre>
$> cat /etc/X11/xorg.conf.d/99-libinput-custom-config.conf
Section "InputClass"
Identifier "something to identify this snippet"
MatchDriver "libinput"
MatchProduct "substring of the device name"
Option "some option name" "the option value"
EndSection
</pre>
The identifier is merely a human-readable string that shows up in the log
file. The MatchProduct line should contain the device name or a substring of
the device name that the snippet should apply to. For a full list of option
names and permitted values, see the
<a href="https://www.mankier.com/4/libinput">libinput man page</a>.
xorg.conf.d snippets like the above apply to hotplugged devices but can be
overwritten at runtime by desktop tools. Multiple snippets may be placed
into the same file.
For run-time configuration and testing, the
<a href="https://www.x.org/archive/X11R7.5/doc/man/man1/xinput.1.html">xinput</a>
debugging tool can modify a devices' properties. See the
<a href="https://www.mankier.com/4/libinput">libinput man page</a>
for supported property names and values. Usually, an invocation looks like
this:
<pre>
$> xinput set-prop "the device name" "the property name" value [value2] [value3]
</pre>
@note
Changes performed by xinput do not persist across device hotplugs. xinput is
considered a debugging and testing tool only and should not be used for
permanent configurations.
@section faq_hwdb_changes How to apply hwdb changes
Sometimes users are asked to test updates to the <a

View file

@ -1589,6 +1589,24 @@ evdev_tag_touchpad(struct evdev_device *device,
struct udev_device *udev_device)
{
int bustype, vendor;
const char *prop;
prop = udev_device_get_property_value(udev_device,
"ID_INPUT_TOUCHPAD_INTEGRATION");
if (prop) {
if (streq(prop, "internal")) {
evdev_tag_touchpad_internal(device);
return;
} else if (streq(prop, "external")) {
evdev_tag_touchpad_external(device);
return;
} else {
log_info(evdev_libinput_context(device),
"%s: tagged as unknown value %s\n",
device->devname,
prop);
}
}
/* simple approach: touchpads on USB or Bluetooth are considered
* external, anything else is internal. Exception is Apple -

View file

@ -3038,7 +3038,9 @@ evdev_tablet_has_left_handed(struct evdev_device *device)
if (libwacom_is_reversible(d))
has_left_handed = true;
} else if (libwacom_error_get_code(error) == WERROR_UNKNOWN_MODEL) {
log_info(libinput, "Tablet unknown to libwacom\n");
log_info(libinput,
"%s: tablet unknown to libwacom\n",
device->devname);
} else {
log_error(libinput,
"libwacom error: %s\n",

View file

@ -2,6 +2,7 @@ ACTION!="add|change", GOTO="libinput_device_group_end"
KERNEL!="event[0-9]*", GOTO="libinput_device_group_end"
ATTRS{phys}=="?*", \
ENV{LIBINPUT_DEVICE_GROUP}=="", \
PROGRAM="@UDEV_TEST_PATH@libinput-device-group %S%p", \
ENV{LIBINPUT_DEVICE_GROUP}="%c"