Joy of the Wacom Cintiq
Feb 9 2008
Today I enjoyed being 6 year old again as I opened up a huge package revealing the godly Wacom Cintiq tablet.
To install the device in Mac OS X, you need to put the CD in, run an installer and eject the CD. Setting it up in Linux is just as easy … NOT! But the most important thing is that is works and works impressively well.
What follows are the steps I needed to take to get this thing running on opensuse 10.3 on a macbook pro using the binary blob from ATI.
The good online documentation for the wacom driver and its manpage should give you good guidance if your setup differs.
The kernel bits worked without any tinkering. You may want to ignore the suggestions to use the
/dev/input/eventX devices as those change depending on what you plugged in and in what order. Some people suggest creating an alias for
udev, but I’ve found using /dev/input/by-id/ more straight forward.
The documentation of the wacom drivers is very nice and explains things well and provides examples. Essentially you need to provide input section for the stylus, and the eraser in the xorg.conf:
Section "InputDevice" Driver "wacom" Identifier "stylus" Option "Device" "/dev/input/by-id/usb-Tablet_DTZ-2100-event-mouse" Option "Type" "stylus" Option "USB" "on" #additional options for dualhead needed. See below. EndSection
If you add a
pad device, you will be able to use the buttons and trackpads on the tablet too. More on that later.
The issue I had initially was that the tablet mapped the combined screen estate of my two screens into its drawing area. First, I have experimented with the
xsetwacom utility to set it to TwinView mode:
xsetwacom set stylus TwinView "horizontal"
This seemed to have worked, but only for the cursor, GIMP and Inkscape remained to take ‘screen’ as the combined area of my two monitors when painting. The trick seems to be the
ScreenNo option in the
InputDevice section of the
xorg.conf, where you specify the index of the screen the tablet should be using.
Buttons and Scrollpads
The Cintiq has 8 buttons and two scrolling trackpads on the sides. Fullscreen editing is a kick arse feature of GIMP so I wanted one of the buttons to toggle fullscreen and the other to toggle the docks (F11 and Tab by default). If you set up the pad xinput device, you should be able to map the pad buttons to regular keystrokes like this:
xsetwacom set pad button8 "core key F11"
The really slick thing is that you can make the sliders/trackpads on the sides send these events too. I wanted the left slider to zoom in and out and the right one to control the size of a brush in GIMP. Both GIMP and Inkscape use + and - by default for zooming. As a bonus, I can now easily create ascii rulers in my email by swiping the trackpad :). Make sure you have the pad device disabled in GIMP’s xinput preferences, otherwise it will start changing the active tool when you swipe the trackpads.
To see a list of all events you can generate, do a
xsetwacom list mod. You can get my .xinitrc to see all the mappings I set up.
There is a utility called wacomcpl (Wacom Control Panel). If it actually works I don’t know, as my environment appeared calibrated by default and I didn’t want to try my chances. Don’t fix what’s not broken applies very well in Linux.
The device is extremely fun to use, everything feels very physical (although you can probably get the same sensation on the iphone for quite a bit less ;). GIMP is keeping up in drawing, the device is very responsive, you get visible jaggies only when doing really fast movements. The pressure sensitivity is very fine. I may even use some other drawing tools than the beziers in Inkscape now :)
- My complete xorg.conf.