libwacom is a tablet description library
libwacom is a library to identify Wacom tablets and their model-specific features. It provides easy access to information such as "is this a built-in on-screen tablet", "what is the size of this model", etc.
This functionality is currently used by e.g. GNOME to map built-in tablets to the correct screen.
A common indicator that a device is not supported by libwacom is that it works normally in a GNOME session, but the device is not correctly mapped to the screen.
libwacom-list-local-devicestool to list all local devices recognized by libwacom. If your device is not listed, but it is available as an event device in the kernel (see
/proc/bus/input/devices) and in the X session (see
xinput list), the device is missing from libwacom's database. Use the
libwacom-list-devicestool to list all known devices and verify the tablet is not in that list.
data/wacom.examplein the source for a guideline on how to add a new tablet. For an installed version of libwacom, see the existing data files (e.g.
.tabletsuffix. Once installed the tablet is part of libwacom's database, no rebuild is neccessary
You must update udev after installing the file, see below.
If the system-provided libwacom does not include a
.tabletfile, it is possible to "backport" that
.tabletfile to the system-provided libwacom.
/etc/libwacomand run the
$ cp my-tablet-file-from-upstream.tablet /etc/libwacom/ $ libwacom-update-db /etc/libwacom
The tool will take care of updating udev, the hwdb, etc.
For versions of libwacom <= 1.9, the file must be copied to
/usr/share/libwacom. It may be overwritten on updates.
You must update udev after installing the file. The simplest (and broadest) way to do this is outlined below:
# create the hwdb file $ cat /etc/udev/hwdb.d/66-libwacom.hwdb # WARNING: change "Your Device Name" to the actual name of your device libwacom:name:Your Device Name*:input:* ID_INPUT=1 ID_INPUT_TABLET=1 ID_INPUT_JOYSTICK=0
libwacom:name:Your Device Name Pad:input:* ID_INPUT_TABLET_PAD=1
Use this if the device is an external tablet
libwacom:name:Your Device Name Finger:input:* ID_INPUT_TOUCHPAD=1
Use this if the device is a screen tablet
libwacom:name:Your Device Name Finger:input:* ID_INPUT_TOUCHSCREEN=1
EOF $ systemd-hwdb --update
Now disconnect and reconnect the device and it should be detected by libwacom.
The API documentation is available at https://linuxwacom.github.io/libwacom/