Multitouch displays
Since Linux Kernel 3.2, multitouch devices are handled by the hid-multitouch
module, see Kernel modules.
Configuration (USB devices)
Find the vendor ID (VID) and product ID (PID) for your touchscreen using lsusb
:
$ lsusb
... Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd ...
Here, VID=0eef (eGalax) and PID=725e. Now, get the MT_CLASS_* definitions from [1]. Currently vendor specific classes are available for 3M Cypress and eGalax. If none of this matches your device, you can try to experiment with the other MT_CLS_*. In this example
#define MT_CLS_EGALAX 0x0103
You need to convert MT_CLS_* to decimal (In this case, 0x0103 is 259 in decimal).
After loading the hid-multitouch
, see Kernel modules, you need to pass the devices' options with
# echo BUS VID PID MT_CLASS_* > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
In this example, the touchscreen is an USB device, so BUS=3 and the previous command looks like this:
# echo 3 0eef 725e 259 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
Reboot. If the touchscreen is detected you should submit your devices' details (relevant lsusb
line) to the linux-input mailing list.
If the touchscreen is not working properly, you may need to install a specific driver for your touchscreen, see #Drivers.
Rotating the touch screen
Store and mark [2] executable (call the script to see its input options).
Drivers
eGalax
The driver for eGalax touchscreens is available from the eGalax website. Also, it is availbale as xf86-input-egalaxAUR from the Arch User Repository.
Invert Y-axis
If after installing the eGalax driver the Y-axis of the touchscreen is inverted, edit the file /etc/eGTouchd.ini
an change the value of Direction
from 0 to 2:
/etc/eGtouchd.ini
... DetectRotation 0 Direction 2 Orientation 0 ...
Gestures
If you want gestures in your window manager, install toucheggAUR from the Arch User Repository and read its docs.