Wednesday, September 25, 2013

Bamboo Wireless Fun Pen&Touch and Gnome Control Center

After quite some fighting with Gnome Control Center I finally got my four exress keys to work properly.

Short story

In short, the /usr/share/libwacom/bamboo-wireless-16fg-6x8.tablet file must contain the following section:

[...]
[Buttons]
# This is weird too. These labels are totally unrelated with the button IDs
# used with xsetwacom.
Left=A;C;D;E

I couldn't figure out why the strange labelling. If you know, drop me a comment!


First of all turn off your tablet. Then create the file /usr/share/libwacom/bamboo-wireless-16fg-6x8.tablet:

# Wacom
# Bamboo Wireless Fun Pen&Touch Medium
# CTH-670S

[Device]
Name=Wacom Wireless Bamboo Fun Pen & Touch 6x8
DeviceMatch=usb:056a:0084
Class=Bamboo
Width=8
Height=6
Layout=bamboo-2fg-6x8.svg


[Features]
Reversible=True
Stylus=True
# This is strange. I have four physical buttons. XInput reports 9 of them.
# And in the end, since I'm labelling them up to E, I need to put 5 buttons.
# But 9 would have probably been fine
Buttons=5 
Touch=True

[Buttons]
# This is weird too. These labels are totally unrelated with the button IDs
# used with xsetwacom.
Left=A;C;D;E

Finally in "Gnome Control Center > Wacom Tablet > Map Buttons..." you can now map all four buttons to the desired behaviour.

Not crystal clear but it works. I spent two days learning the code to finally decide to do one last random test and there... it worked.

For those interested, the relevant code is distributed a across the following libraries (with some notes documenting my understanding of their use and the git clone command).

  • libwacom:
    • Creates a database of WacomDevices out of textual description of the tablets. Tablets are connected to tablet descriptions by their bus-ids.
    • git clone git://git.code.sf.net/p/linuxwacom/libwacom
  • GnomeControlCenter/panels/wacom:
    • Lets the user configure the tablets and modifies dconf keys accordingly.
    • git clone git://git.gnome.org/gnome-control-center
  • GnomeSettingsDaemon/plugins/wacom:
    • Starts a GsdWacomDeviceManager that creates GsdWacomDevices out of the dconf descriptions AND out of what libwacom provides.
    • Ties a filter_button_events to the root window to attach our behaviour to tablet button events.
    • git clone git://git.gnome.org/gnome-settings-daemon
Note that I haven't been able yet to understand how button ids as reported by xinput test-xi2 and used by xsetwacom relate to the button labels used in libwacom's tablet files. In KDE, the relation is simple as the ids used to attach actions to the buttons in the kcm_wacomtablet GUI are those used for xsetwacom.

1 comment:

  1. I'm having similar problems with a Bamboo p&t cth661. The third expresskey won't work, and their order is all messed.
    I've tried different BUTTONS and LEFT values, with no success.
    Actually, those properties don't seem to be doing anything. After making any changes to it and then tried dconf reset, the shortcuts will indeed be reset, but the order won't change.

    ReplyDelete