Skip to content

Tablet Definition Files

Joshua Goins edited this page Oct 15, 2024 · 14 revisions

To add support for a new tablet, libwacom will need a tablet definition file for the device. .svg files illustrating the ExpressKey layout of the tablet may be necessary as well. These files are located in libwacom/data. The files are added to this library by creating new .tablet files (using an existing file as a template) and creating a pull request that includes the files.

For descriptions and usage for definition keys, see data/wacom.example.

Example tablet file

The definition file wacom-intuos4-8x13.tablet demonstrates a "completed" one:

# Wacom
# Intuos4 Large
# PTK-840
#
# Button Map:
# (A=1, B=2, C=3, ...)
#
#    *-----------------------*
#    |                       |
#  B |                       |
#  C |                       |
#  D |                       |
#  E |                       |
#  A |        TABLET         |
#  F |                       |
#  G |                       |
#  H |                       |
#  I |                       |
#    |                       |
#    *-----------------------*
#
# LED Map:
# (XY=Bank X, LED Y)
#
#     *-----------------------*
#     |                       |
#  00 |                       |
#  01 |                       |
#  02 |        TABLET         |
#  03 |                       |
#     |                       |
#     *-----------------------*
#

[Device]
Name=Wacom Intuos4 8x13
ModelName=PTK-840
DeviceMatch=usb|056a|00ba
Class=Intuos4
Width=13
Height=8
Layout=wacom-intuos4-8x13.svg
IntegratedIn=
Styli=@intuos4-puck;@intuos5;@intuos4;@propengen2;

[Features]
Reversible=true
Stylus=true
NumRings=1
StatusLEDs=Ring

[Buttons]
Left=A;B;C;D;E;F;G;H;I

OLEDs=B;C;D;E;F;G;H;I

Ring=A
RingNumModes=4

The above is just an example, look at git log -p data/ for previous patches (e.g. this commit) and emulate what they do.

For devices that already exist in libwacom but have a new VID/PID, adding a new DeviceMatch to the existing file is sufficient.

Submit your patch as a pull request on Github.