[PATCH xf86-input-libinput] Allow symbolic link device path

Kögler Christian Christian.Koegler at esg.de
Wed Apr 26 08:40:27 UTC 2017

Assign calibration to a specific device.

LIBINPUT_CALIBRATION_MATRIX is not used, because the used context creation
function libinput_path_create_context do not recognize Udev variables.
The documented approach is to set the option "CalibrationMatrix" and
"Device" in xorg.conf for assigning a calibration information to a device.
To be able to choose a specific device, an udev rule creates a device unique
path to that device (e.g. /dev/input/by-id/...). This path can not be
used, because Udev calls open_restricted with the base name.

This patch resolves the real name of the given "Device" option during
 src/xf86libinput.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/xf86libinput.c b/src/xf86libinput.c
index f09f57e..ec39258 100644
--- a/src/xf86libinput.c
+++ b/src/xf86libinput.c
@@ -2214,6 +2214,19 @@ open_restricted(const char *path, int flags, void *data)
+if (device != NULL) {
+char* realdevice = realpath(device, NULL);
+if (realdevice != NULL) {
+if (strcmp(path, realdevice) == 0) {


ESG Elektroniksystem- und Logistik-GmbH

Rechtsform / Legal Form: Gesellschaft mit beschränkter Haftung
Sitz / Registered Office: München
Handelsregister / Commercial Register: Registergericht München, HRB 219422
Vorsitzender des Aufsichtsrats / Chairman of the Supervisory Board: Alexander Schemann
Geschäftsführer / CEO: Kai Horten

More information about the wayland-devel mailing list