Relocation of: Wacom Bamboo Pen and Touch tablet HOW TO
Also can be used to set up other Wacom Tablets.
Last Updated: November 7, 2013
Sources
Developers responsible for the Bamboo P&T drivers:
From Ubuntu forums: Ayuthia, obe1kenobi, and multiple testers
From the LWP: Chris Bagwell, Ping Cheng, Peter Hutterer
New Wacom Bamboo not working
New Wacom Bamboo not working post #384
Wacom Bamboo Pen and Touch Series Development
LinuxWacom HOW TO.
Loic2's Wacom wiki.
The Linux Wacom Tablet Project sourceforge site.
The Linux Wacom Project's mediawiki main page
The Linux Wacom Project's mediawiki xf86-input-wacom HOWTO's.
The Linux Wacom Project's mediawiki linuxwacom HOWTO's by Ping Cheng.
Mint/Ubuntu Release Specific Notes
Petra (Mint 16)/Saucy Salamander (13.10): Stop gap support for the new Intuos Pen and Touch tablets in post #3 below.
Olivia (Mint 15)/Raring Ringtail (13.04): Stop gap support for the new Intuos Pen and Touch tablets in post #3 below.
Nadia (Mint 14)/Quantal Quetzal (12.10): The 3.5 kernel's wacom.ko supports all current BambooPT's out of the box. Compiling input-wacom (part I.) is not necessary.
Maya (Mint 13)/Precise Pangolin (12.04): The original Bamboo Pen and Touches (introduced Oct. 2009) work out of the box with the 3.2 kernel's wacom.ko and the current default xf86-input-wacom-0.14.0 X driver. The second and third generation models require an updated wacom.ko from input-wacom.
Warning 1 - There is an issue with compiling xf86-input-wacom. Debian/Ubuntu/Mint has customized their input ABI (X Server 1.11 and 1.12 hybrid) and it is no longer compatible with some upstream packages including xf86-input-wacom. Consequently if you compile xf86-input-wacom in Precise it will cause your system to not start if you have your Wacom tablet plugged in, or to crash/freeze if you plug it in after it has started. Subsequently you need to patch xf86-input-wacom with the attached build_against_frankenserver.patch to make it compatible with the hybrid X Server. See "II. Install Xorg's xf86-input-wacom tar or clone the git repository".
Warning 2 - Ubuntu Precise 12.04.2 was updated to include the Quantal kernel and X Server (which means you no longer need to run the frankenserver patch). Precise 12.04.3 has the Raring kernel and X Server (kernel 3.8 & X Server 1.13). If while compiling input-wacom when you run sudo apt-get install build-essential etc. the output asks if you want to remove a list of drivers and libraries ending with the suffixes -lts-quantal or -lts-raring, STOP! That will disable your system. The output would look similar to this bug report: https://bugs.launchpad.net/ubuntu/+sour ... ug/1137247The problem may be due to this bug: https://bugs.launchpad.net/ubuntu/+sour ... ug/1190148 Still not clear if this is a basic issue of these point release updates or perhaps due to similar instances of package cache corruption.
Lisa (Mint 12)/Oneiric Ocelot (11.10): The original Bamboo Pen and Touches (introduced Oct. 2009) work out of the box with the 3.0 kernel's wacom.ko and the current default xf86-input-wacom-0.11.0 X driver. The third generation models require at least input-wacom-0.12.0 and touch for the second generation models requires input-wacom-0.12.1. Gimp is currently broken for all tablets, see this Launchpad bug report. Use Aapo Rantalainen's PPA to get a usable Gimp.
Katya (Mint 11)/Natty Narwhal (11.04): The original Bamboo Pen and Touches work out of the box with the 2.6.38 kernel's wacom.ko and the current default xf86-input-wacom-0.10.11 X driver. I would suggest upgrading xf86-input-wacom. The second and third generation models require input-wacom-0.12.1.
Isadora (Mint 9)/Lucid Lynx (10.04): Because the default wacom.ko does not work for the Bamboo Pen and Touches you need to compile a newer wacom.ko. We're currently getting that from input-wacom. Additionally a current xf86-input-wacom has better gesture support and more capabilities and bug fixes so we compile and install that also. You do need to update Lucid's xorg-macros 1.5 version to v. 1.8 before compiling either input-wacom or xf86-input-wacom.
Miscellaneous Notes
Sample xsetwacom scripts for other tablets and tablet pc's attached to post #2 below.
The X.org xf86-input-wacom and LinuxWacom input-wacom driver tars are available at the usual sourceforge linuxwacom driver site.
Wacom Bamboo and Intuos Pen & Touch models
Fourth Generation models (released October 2013):
Code: Select all
Intuos Pen stylus
(CTL480; Product ID = 0x30E)
Intuos Pen and Touch small stylus, eraser; touch, pad
(CTH480; Product ID = 0x302)
Intuos Pen and Touch medium stylus, eraser; touch, pad
(CTH680; Product ID = 0x303)
* See "X. Multitouch for Wacom Tablets with More than Two Finger Touch" below for 3 & 4 finger gesture support.
*All IntuosPT styli have two buttons (rocker switch).
Third Generation models (released October 2011):
Code: Select all
Bamboo Connect (Pen) stylus
(CTL470/K; Product ID = 0xdd)
Bamboo Capture (Pen & Touch) stylus; touch, pad
(CTH470; Product ID = 0xde)
Bamboo Create stylus, eraser; touch, pad
(CTH670; Product ID = 0xdf)
* Support was initially only available for Kaya/Natty & Lisa/Oneiric (11.10) as mt.h is required. Chris Bagwell came up with another patch set to support non-mt.h kernels (Isador/Lucid) which is available in input-wacom-0.14.0
* See "X. Multitouch for Wacom Tablets with More than Two Finger Touch" below for 3 & 4 finger gesture support.
*All BambooPT styli have two buttons (rocker switch).
Second Generation models (released October 2010):
Code: Select all
Bamboo Pen Medium stylus
(CTL660/K; Product ID = 0xd5)
Bamboo Pen & Touch stylus, eraser; touch, pad
(CTH460/K; Product ID = 0xd6)
Bamboo Fun Small stylus, eraser; touch, pad
(CTH461/S; Product ID = 0xd7)
Bamboo Comic Medium stylus, eraser; touch, pad
(CTH661/S1; Product ID = 0xd8)
Bamboo P & T Special Edition Small stylus, eraser; touch, pad
(CTH461/L; Product ID = 0xdA)
Bamboo P & T Special Edition Medium stylus, eraser; touch, pad
(CTH661/L; Product ID = 0xdB)
First Generation models (released October 2009):
Code: Select all
Bamboo Touch touch, pad
(CTT460; Product ID = 0xd0)
* Touch only model should also be able to use the Synaptic driver, see X. below.
Bamboo Pen & Touch stylus, eraser; touch, pad
(CTH460; Product ID = 0xd1)
Bamboo Craft stylus, eraser; touch, pad
(CTH461; Product ID = 0xd2)
Bamboo Fun stylus, eraser; touch, pad
(CTH661; Product ID = 0xd3)
Bamboo Pen stylus
(CTL460; Product ID = 0xd4)
Note: If you do not want to compile the drivers in part I. and II. below you could try one of the available PPAs. Lekensteyn's Wacom Tablet Drivers PPA has input-wacom-0.12.1 (the wacom.ko) for Lisa/Oneiric & Katya/Natty, which is useful for second and third generation tablets. And input-wacom-0.13.0 is available for Maya/Precise. Irie Shinsuke's PPA for latest Wacom driver was updated 9-7-12 to xf86-input-wacom-0.17.0. Martin Owen's Upgraded Wacom PPA covers Isadora/Lucid through Katya/Natty but hasn't been updated since 3-10-11. The upshot is you have to pay attention to what versions of wacom.ko and linuxwacom or xf86-input-wacom they install and whether that's what your tablet needs. Also a DKMS implementation of the wacom.ko will overwrite any new wacom.ko you compile unless you remove the PPA/DKMS. I haven't tested any of them, direct questions to the authors.
I. Install input-wacom's wacom.ko (the USB kernel driver); with a first generation BambooPT (October 2009) you can skip this step if you have Katya/Natty or later, it's not needed unless your model or a feature is not supported by the default wacom.ko
Currently input-wacom-0.19.1 is the most recently released tar. Check: http://sourceforge.net/projects/linuxwa ... put-wacom/
Please read the Release Specific Notes for your release before proceeding.
Copy and paste each line into a terminal you've opened. Careful, some lines wrap. Be sure you copy the entire line. Now download, compile, and install the wacom.ko.:
Code: Select all
cd Desktop
wget http://prdownloads.sourceforge.net/linuxwacom/input-wacom-0.19.1.tar.bz2
sudo apt-get update
(For Ubuntu use libx11-dev instead of libX11-dev in the following command)
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev autoconf libtool
sudo apt-get upgrade
uname -r
(If you have the generic kernel which most do.)
sudo apt-get install linux-headers-generic
(If you have the rt or pae kernel.)
sudo apt-get install linux-headers-rt
or
sudo apt-get install linux-headers-generic-pae
tar xjvf input-wacom-0.19.1.tar.bz2
cd input-wacom-0.19.1
./configure --prefix=/usr
(If you are in Isadora/Lucid or Julia/Maverick.)
sudo cp ./2.6.30/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
or
(If you are in Katya/Natty or Lisa/Oneiric or Maya/Precise or Nadia/Quantal.)
sudo cp ./2.6.38/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
or
(If you are in Olivia/Raring.)
sudo cp ./3.7/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
sudo depmod -a
After rebooting if not working check if the wacom.ko is auto-loading with lsmod.
Code: Select all
lsmod | grep wacom
If you want to see a little more on what you're doing and why look at Section 1 in the linuxwacom HOW TO. Problems? See Troubleshooting below.
II. Install Xorg's xf86-input-wacom tar or clone the git repository (the X driver)
Currently xf86-input-wacom-0.23.0 is the most recently released tar. Check: http://sourceforge.net/projects/linuxwa ... put-wacom/ The instructions for cloning the git are at steps b) and c) for those who would rather do that.
Warning: xf86-input-wacom-0.10.11+ breaks the Sample xsetwacom scripts. The parameter names have changed. Use the 'xsetwacom get "device name" command and xsetwacom will point out where name has changed and what the new name is. Also there is a table of the new parameter names v.s. the old ones on the LWP's mediawiki xsetwacom page. This has happen before but is more extensive this time. And it's likely to happen again.
Warning for Maya/Precise: follow the instructions for a) the tar or c) cloning below until you get to the ./configure --prefix=/usr or ./autogen.sh --prefix=/usr command. Stop there and don't enter it. Instead download the attached build_against_frankenserver.patch tar (for xf86-input-wacom-0.17.0 or earlier) onto your Desktop. For xf86-input-wacom-0.18.0 or later use the build_against_frankenserver_for0.18.patch tar attached to post #3 below. Extract (uncompress) it and apply the patch with a -p1 strip:
Code: Select all
patch -p1 < ~/Desktop/build_against_frankenserver.patch
(or for xf86-input-wacom-0.18.0 and later)
patch -p1 < ~/Desktop/build_against_frankenserver_for0.18.patch
After you see it you can proceed with ./configure --prefix=/usr or ./autogen.sh --prefix=/usr and the rest of the commands.patching file src/wcmValidateDevice.c
patching file test/fake-symbols.c
patching file test/fake-symbols.h
a) Now compile the xf86-input-wacom tar (download, compile, and install xf86-input-wacom):
Copy and paste each line into a terminal you've opened and hit enter after each line (except the ones in parenthesis). Careful, some lines wrap. Be sure you copy the entire line.
Code: Select all
cd ./Desktop
wget http://sourceforge.net/projects/linuxwacom/files/xf86-input-wacom/xf86-input-wacom-0.23.0.tar.bz2
sudo apt-get update
(For Ubuntu or LMDE use libx11-dev instead of libX11-dev in the following command)
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libxinerama-dev libncurses5-dev xutils-dev autoconf libtool pkg-config libudev-dev
sudo apt-get upgrade
tar xjvf xf86-input-wacom-0.23.0.tar.bz2
cd xf86-input-wacom-0.23.0
./configure --prefix=/usr
make
sudo make install
b) Install git (you only need to do this once) if you intend to clone the xf86-input-wacom git repository. Otherwise you can skip this step. Open a terminal and enter (copy & paste):
Code: Select all
sudo apt-get install git-core
Code: Select all
wget http://xorg.freedesktop.org/releases/individual/util/util-macros-1.8.0.tar.bz2
sudo cp /usr/share/aclocal/xorg-macros.m4 /usr/share/aclocal/xorg-macros.m4.bak
tar xjvf util-macros-1.8.0.tar.bz2
cd util-macros-1.8.0
./configure --prefix=/usr
make
sudo make install
cd ..
Code: Select all
cd ./Desktop
git clone git://git.code.sf.net/p/linuxwacom/xf86-input-wacom
sudo apt-get update
(For Ubuntu or LMDE use libx11-dev instead of libX11-dev in the following command)
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libxinerama-dev libncurses5-dev xutils-dev autoconf libtool pkg-config libudev-dev
sudo apt-get upgrade
cd xf86-input-wacom
./autogen.sh --prefix=/usr
make
sudo make install
You do not need to download the git repository again to update xf86-input-wacom. Instead change directory into the xf86-input-wacom folder and run a git pull:
Code: Select all
cd Desktop
cd xf86-input-wacom
git pull
III. Configure the Wacom Bamboo P&T tablet
You should usually be able to skip this step as the default wacom.conf should work for most. It's included mainly so you can see the two static configuration methods available.
a) Configuring through 10-wacom.conf (Isadora/Lucid) or 50-wacom.conf (Julia/Maverick and later): You can use the default 10-wacom.conf located at /usr/lib/X11/xorg.conf.d in Isadora or the 50-wacom.conf at /usr/share/X11/xorg.conf.d for Julia. No modifications are necessary to get your tablet working and the default wacom.conf allows hot plugging your tablet. Because HAL has been removed you can't use a .fdi. Then use the appropriate xsetwacom script attached below if you want to configure your tablet further (see IV.).
Note: Because Isadora/Lucid has its 10-wacom.conf in a non-standard location (due to hybrid 1.7/1.8 X Server) compiling and installing xf86-input-wacom will not install a wacom.conf there as it will with Julia/Maverick and later. So if your 10-wacom.conf is removed or damaged for any reason in Isadora you will need to re-add it manually. You can use the example wacom.conf USB snippet below along with the gedit command for Isadora. To see the entire wacom.conf look in your xf86-input-wacom source code folder for /conf/50-wacom.conf.
The BambooPT's are USB tablets so only the USB snippet in the wacom.conf concerns us and you can ignore the other snippets. The current USB snippet is:
Code: Select all
Section "InputClass"
Identifier "Wacom class"
MatchProduct "Wacom|WACOM|Hanwang|PTK-540WL"
MatchDevicePath "/dev/input/event*"
Driver "wacom"
EndSection
Code: Select all
gksudo gedit /usr/lib/X11/xorg.conf.d/10-wacom.conf
Code: Select all
gksudo gedit /usr/share/X11/xorg.conf.d/50-wacom.conf
Code: Select all
Section "InputClass"
Identifier "Wacom eraser class"
MatchDriver "wacom"
MatchProduct "eraser"
# Apply custom Options to this device below.
Option "Foo" "bar"
EndSection
*Current 50-wacom.conf: http://linuxwacom.git.sourceforge.net/g ... nf;hb=HEAD
b) Configuring through xorg.conf: You could also use the xorg.conf, but at the cost of losing hot plugging.
i) Another way to tell the Xserver you have a Wacom tablet, rather than a wacom.conf in xorg.conf.d, is to use the xorg.conf and add Wacom input sections. Normally xorg.conf.d is preferred. The xorg.conf, if you have one, is located in /etc/X11. If it is not there you would have to create one and then add the relevant Wacom sections. Please study the sample test3 xorg.conf and compare it carefully to your xorg.conf before making any changes. Do not change any video sections already present in your xorg.conf! And be sure to back up your xorg.conf first!:
Code: Select all
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
Code: Select all
sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
Code: Select all
gksudo gedit /etc/X11/xorg.conf
After you restart the stylus and touch should work. If it does not, restart again. Make sure you cover the entire tablet to see if the pointer moves to the stylus and your finger. Now xinput list and xsetwacom list entered in a terminal should agree with each other and return the linuxwacom device names stylus, eraser, touch, and pad (tablet buttons).
ii) To use the test3 xorg.conf you will need to have a symlink rule for your Pen & Touch in the table contained in 69-xserver-xorg-input-wacom.rules at /lib/udev/rules.d. This avoids having to use the usb pci by-path. If the Mint/Ubuntu default 69-xserver-xorg-input-wacom.rules does not have your model tablet in it there is an updated wacom.rules with all 10 Bamboo Pen & Touch models at the mediawiki's Fixed device files with udev page. Just put your rule in or replace your default contents with the mediawiki's 60-wacom.rules. How to add a new symlink rule is also discussed. If the "69-xserver-xorg-input-wacom.rules" is not there you can install it by using Appendix 5 in the Linux Wacom HOW TO.
Due to the 3 attachment limit on Mint forums I've elected to refer you to post #384, also linked above. It is attached there along with some .fdi files for HAL and udev rules.
IV. Use of a xsetwacom script file instead of wacomcpl and wacomcpl's .xinitrc for further tablet configuration (attached below)
This is less important now that recent releases have the Gnome or KDE Wacom tablet configuration gui. But since the Gnome gui (at least) doesn't support the BambooPT buttons if you want to assign keys to the tablet buttons you still need an xsetwacom script as the static configuration methods in III. above only allow you to set the buttons to integer values. Please also see the mediawiki's xsetwacom and Tablet Configuration pages.
Warning: Many parameter names changed with xf86-input-wacom-0.10.11. Use xsetwacom get "device name" Parameter to find the new name. Additionally the the defaults for RawSample and Suppress swapped in 0.10.11+ with commits on 3-9-11. Suppress is now 2 and RawSample 4. Also the range for RawSample is now 1 to 100. Correct your scripts if using these versions of xf86-input-wacom.
To set it up to auto-start, download the attached file, and rename it .xsetwacom.sh (or whatever you want) and place it in your home directory. Remember it will be a hidden file. You can remove the . in front so the file isn't hidden if placing it in a bin directory. Making it hidden is just to prevent directory clutter. To enable the xsetwacom commands in the .xsetwacom.sh file to apply to Xserver through a reboot you enter in a terminal:
Code: Select all
chmod +x ~/.xsetwacom.sh
If you are happy with a current driver default comment it out (a # in front of the line) in your script. No need to run the default again in the script. But comment it out rather than remove it so you have a list of valid xsetwacom parameters for a given input tool in your script in case you want to modify that parameter at a later date.
Note: In the example script below both "device name" and ID # are used. Be sure to check for yours using xinput list in a terminal and use them. When you use a xorg.conf the "device names" will be stylus, eraser, touch, and pad. If you are hot plugging your tablet or other devices be sure to use "device name" as the ID # can change.
With xf86-input-wacom 0.10.8 or better you should be able to enter 'man xsetwacom' in a terminal for useful information. To find out what commands and keys are available try these commands in a terminal:
Code: Select all
(lists available commands and switches)
xsetwacom
(Lists available parameters)
xsetwacom list param
(Lists modifiers and special keys available)
xsetwacom list mod
V. Tablet (Pad) buttons
The Pad's physical buttons are numbered (with the pad set up right handed) 1 to 4 from top to bottom. With the xsetwacom set commands the physical button number does not necessarily coincide with the button number the Xserver is assigning to the button. This is because for some versions of the Xserver xinput reserves buttons 4 through 7 for scroll. It also depends on what button number the kernel is assigning as the default to the button. So the xsetwacom set command needs the X button number not the physical button number.
With Isadora/Lucid's 2.6.32 & Julia/Maverick's 2.6.35 kernels you only need to account for the reserved scroll buttons offset:
Code: Select all
WinXP Isadora & Julia
physical Button 1 Touch toggle Middle click
physical Button 2 BackSpace Right click
physical Button 3 Right click Pg Up
physical Button 4 Left click Pg Dn X Button 8
Code: Select all
Katya, Lisa & Maya
physical Button 1 BTN_RIGHT/Right click X Button 3
physical Button 2 BTN_BACK X Button 8
physical Button 3 BTN_FORWARD X Button 9
physical Button 4 BTN_LEFT/Left click X Button 1
Code: Select all
Button C code used in kernel
number mouse pad stylus
1 BTN_LEFT BTN_0 BTN_TOUCH
2 BTN_MIDDLE BTN_1 BTN_STYLUS
3 BTN_RIGHT BTN_2 BTN_STYLUS2
8 BTN_SIDE BTN_3
9 BTN_EXTRA BTN_4
10 BTN_FORWARD BTN_5
11 BTN_BACK BTN_6
12 BTN_TASK BTN_7
13 BTN_8 14 BTN_9
* from an evdev driver commit: http://cgit.freedesktop.org/xorg/driver ... f16fb0a202
The X Server reserves buttons 4 through 7 for scroll. I think the following is correct:
Code: Select all
X Button X scroll
number direction
4 up
5 down
6 left
7 right
VI. Touch & Gesture Tips for the BambooPT and other Wacom Multitouch Tablets
Gestures are two finger of course. You have to be patient because there is somewhat of a learning curve. It does not have the same "feel" as a laptop touchpad. Once you develop a feel for the Bamboo you can slowly try varying some of the xsetwacom parameters in the script. I am able to do anything I can on my laptop's Synaptic touchpad or single (1FG) touchscreen on my tablet PC plus I have scroll (vertical and horizontal), pinch zoom (can be a little slow to respond), and 2FG double tap for right click.
In addition to the xsetwacom touch parameters (see 'man wacom' or attached script) you can also change the "feel" of your tablet's touch by adjusting the more generalized xinput Acceleration Profile and its Device Acceleration parameters. While you tend to think of those applying to the mouse pointer they are just as valid for the touch pointer. Chris Bagwell provided a good link to a X.org wiki article, PointerAcceleration, on this.
The most important parameter is the Device Acceleration Profile since that selects the algorithm that is applied to the pointer. The other three parameters (Constant Deceleration, Adaptive Deceleration, and Velocity Scaling) then modify the algorithm. See the "AccelerationProfile [integer]" section in the wiki article linked above. The default Device Accel Profile is 0. But if you want to get out in the weeds you can try different values. Temar09 in post #1053 for instance feels Profile 2 is much better.
a) Pointer arrow over acceleration: If you find the pointer arrow over accelerated with the default Device Accel Profile of 0, Peter Hutterer suggested using xinput's "Device Accel Constant Deceleration" to compensate.
The defaults are 1, 1, and 10 for Constant Deceleration, Adaptive Deceleration, and Velocity Scaling. But you can check your defaults by entering in a terminal xinput list-props "Wacom BambooFun 2FG 4x5 Finger touch". Using your "device name" for touch of course. Try adjusting the settings to get the feel you are looking for. For example:the overacceleration issue in the bamboo is caused by a few other things. when the bamboo is initialised as relative device, the X server doesn't have an axis range to help scaling the movement. the bamboo, as you're probably aware, has a higher resolution than the average mouse, so it sends more events with higher data. so the default settings dont' work too well, it's too fast. increasing ConstantDeceleration for the device should slow it down to your preference.
Code: Select all
xinput set-prop "Wacom BambooFun 2FG 4x5 Finger touch" --type=float "Device Accel Constant Deceleration" 1.250000
xinput set-prop "Wacom BambooFun 2FG 4x5 Finger touch" --type=float "Device Accel Adaptive Deceleration" 1.150000
xinput set-prop "Wacom BambooFun 2FG 4x5 Finger touch" --type=float "Device Accel Velocity Scaling" 10.000000
For other takes on touch settings see Temar09's post #1053 and civetta's post #932.
b) Gestures: Are the best they've ever been with xf86-input-wacom-0.13.0 released 1-16-12. Thanks to Chris Bagwell's efforts and some new contributions from Alexey Osipov. Feel free to post suggestions for changing the gesture default settings or whatever.
c) More than 2FGT Gestures: See X. Multitouch for Wacom Tablets with More than Two Finger Touch below.Single finger (1FG)
Left click - tap, actual click happens after TapTime period elapses.
Left click drag - tap to select, quickly (within TapTime period) touch selection again. Then drag.
Two finger (2FG)
Right click - one finger down + tap second finger
Vertical scroll - two fingers side by side (e.g. index + second), move up or down holding constant distance between fingers.
Horizontal scroll - two fingers side by side (e.g. index + second), move left or right holding constant distance between fingers.
Zoom in - two separated fingers side by side (e.g. thumb + index), bring together i.e. pinch.
Zoom out - two fingers side by side (e.g. thumb + index), spread.
Note: Wacom scrolling direction is reversed from Synaptic touchpad scrolling. Visualize it as grabbing the page with two fingers then sliding it up or down or left and right.
VII. Touch toggle script with notification (attached below)
Rename it .toggle-touch.sh (or whatever you want) and place it in your home directory. Remember it will be a hidden file. Also please remember you have to chmod it to make it executable, or right click on it, like you did for .xsetwacom.sh above. Then you have to make a key binding for it in order to use it through a tablet button. If you haven't already, install the CompizConfig Settings Manager through Synaptic Package Manager.
-click on the General option
-click on Commands
-in Command line 0 (or whatever line you want) add the path to .toggle-touch.sh, e.g.: /home/yourusername/.toggle-touch.sh
-click on Key Bindings and then to edit the corresponding Run command 0 click on the Disabled button.
-next use a key combination not already in use, e.g. <Control>t, by pressing the Grab key combination button and pressing the key combination. The ctrl-t combination is the one in the sample xsetwacom script bound to Button1. You can also just press ctrl-t.
Note: If you use 'ctrl t' to add a new Tab to Firefox change the touch toggle key combination to say "key ctrl shift t".
-you're done
For notification install libnotify-bin by entering in a terminal:
Code: Select all
sudo apt-get install libnotify-bin
VIII. Flip the tablet for the left-handed
You use these commands in the appropriate parts of the .xsetwacom.sh (remember to determine your "device names"):
Code: Select all
xsetwacom set stylus Rotate half
xsetwacom set eraser Rotate half
xsetwacom set touch Rotate half
Note: Starting with xf86-input-wacom-0.11.0 the Rotate parameter has been made tablet wide. Rotating a parent device or one of its dependent devices will rotate all input tool devices. What that means in practice is you could eliminate the eraser line.
IX. Dual and Multi-Monitor Set Up
To confine your tablet's stylus and eraser to a specific monitor see Graphics tablet on multi-monitors HOW TO or Dual and Multi-Monitor Set UP.
X. Multitouch for Wacom Tablets with More than Two Finger Touch - Katya/Natty Narwhal or later
This information applies to the third generation BambooPT and Intuous5 touch tablets, both of which have 16FGT. There is a new Cintiq touch also. These are dependent-touch devices v.s. direct-touch devices as described by Peter Hutterer. Essentially dependent-touch devices are multitouch touchpads as opposed to direct-touch tablet PCs. Each type is handled differently. Multitouch is still in a state of flux and with Maya/Precise and the advent of the multitouch code added to the 1.12 X Server the touch stack was changed again. So this information has to be viewed as tentative and subject to change. Feedback appreciated. A good reference and overview source is the ubuntu.com wiki Multitouch page.
Note only kernel 2.6.38 and up and associated releases are dealt with because they have the MT kernel code (mt.h or multi-touch header).
a) Unity multitouch gestures with the Wacom driver. The Wacom X driver xf86-input-wacom driver includes 2FGT gesture support in driver. However the driver does not pass through 3 and 4 finger touches which means that 3 and 4 finger gestures are not available to Unity. Starting with xf86-input-wacom-0.18.0 you are now able to disable xf86-input-wacom's default in-driver 2FGT support to pass all the hardware-tracked fingers up to the X server. That allows all of the hardware reported touch contacts to be handled by the new Multitouch through X Server features (XI2.2; ABI >= 16) and supporting drivers. Simply disable the Gesture parameter in a custom .conf file as in part III.:
Code: Select all
Option "Gesture" "off"
Code: Select all
xsetwacom set "Wacom Bamboo 16FG 4x5 Finger touch" Gesture off
A list of the currently active Unity system gestures, which are 3 and 4 finger touch, is under Supported Gestures on the Multitouch wiki page.1 finger tap > left click (by xf86-input-wacom)
1 finger tap to select & drag > left click drag
2 fingers disabled
3 finger press and drag > move window
(3 finger tap shows grab handles)
4 finger swipe left/right > reveal/hide launcher (if the dock autohide is enabled)
4 finger tap > open or close dash
It does not appear Touchégg can be used to add back the 2FGT gestures. When running in a terminal Touchégg does not detect 2FG touches and so gestures such as two finger scroll do not work. Although Unity does not have 2FG system gestures it may be it consumes 2FG touches anyway. This line of thought is bolstered by the Unity Gesture UI Guidelines Initial Gestures section discussion of (unimplemented) 1 and 2 finger touch gestures. Because ginn is seemingly not compatible with the Unity Desktop in Precise or later it isn't available to investigate 2FGT further. See the launchpad bug report linked in c) below. Given the lack of two finger touch availability the only practical option for 1 through 4 finger touch is to place touch on the Synaptic driver as below.
b) Unity multitouch gestures with the Synaptics driver. The xf86-input-synaptics driver also includes 2FGT gesture support. The difference is 3 and 4 finger gestures are available to Unity automatically without the need for disabling anything with a command. The following assumes you have your Wacom tablet attached to a Desktop computer that does not have a Synaptic touchpad.
To use the Synaptics driver first confirm you have the xorg.conf.d directory in /etc/X11. If not create it:
Code: Select all
sudo mkdir /etc/X11/xorg.conf.d
Code: Select all
gksudo gedit /etc/X11/xorg.conf.d/54-WacomMT-synaptics.conf
Code: Select all
Section "InputClass"
Identifier "Wacom MT on synaptics"
MatchIsTouchpad "on"
MatchProduct "Finger"
MatchDevicePath "/dev/input/event*"
Driver "synaptics"
EndSection
For one and two finger touch open System Settings and open Mouse and Touchpad. Go to the Touchpad tab, which now should be present. Under General uncheck "Disable touchpad while typing" and make sure "Enable mouse clicks with touchpad" is checked. Under Scrolling select "Two-finger scrolling" and "Enable horizontal scrolling". Under Pointer Speed set Acceleration and Sensitivity to your preferences.
The following is a list of touch Gestures with xf86-input-synaptics in Unity.
Button functions in xf86-input-synaptics as set by the kernel driver wacom.ko.1 finger tap > left click
2 finger dbl. tap > right click
2 fingers horizontal up or down > vertical scroll
2 fingers vertical left or right > horizontal scroll
3 finger press and drag > move window
(3 finger tap shows grab handles)
4 finger swipe left/right > reveal/hide launcher (if the dock autohide is enabled)
4 finger tap > open or close dash
Note that one and two finger touch is being processed in the synaptics driver and so a X Server multitouch aware application would not see the one and two finger touches. In that case you have to disable "Enable mouse clicks with touchpad" and either disable scrolling or select Edge scrolling in Mouse and Touchpad for the application to see the X Server one and two finger touches. This is explained on the wiki page Touchpad Support.Button 1 left click
Button 2 up
Button 3 down
Button 4 right click
The Synaptics driver has a zillion configuration options, some of which look promising, that I haven't explored. See man synaptics and man synclient in a terminal.
c) Multitouch Gesture Engines for MATE, Cinnamon, KDE, and GNOME Shell.
Obviously if you don't use Unity you'll need something else for 2, 3, and 4 finger gestures. Ginn is installed by default through Maya/Precise. Note however ginn appears incompatible with the version of the Unity Desktop in Precise and later. See launchpad bug report #985121. Because ginn is no longer installed by default after Precise and has been moved to the Universe repository touchegg is probably the way to go for Quantal and later. Especially since there is now a gesture configuration gui for it. The touchegg in Precise's repository is broken and a newer version needs to be compiled to get it working in Precise, another reason to stick with ginn for Precise (without the Unity Desktop) and earlier.
1) ginn (Gesture Injector: No-GEIS, No-Toolkits). Available at this launchpad site. Instructions for editing the ginn configuration file wishes.xml (located at /etc/ginn/wishes.xml) to add custom gestures is available in man ginn entered in a terminal. Also see the ginn wiki page.
Ginn, once installed from the repsoitory, works in Kubuntu Precise (12.04) with xf86-input-wacom-0.18.0 or higher as soon as the xsetwacom command Gesture off is run. Presumably it will also work in Gnome Shell and Mint 13 Maya with Cinnamon and MATE. Remember to use the frankenserver patch when compiling xf86-input-wacom in Maya/Precise.
Not able to get ginn working in Lisa/Oneiric even with xf86-input-wacom-0.18.0 yet. May be a Wacom specific issue, perhaps with how input-wacom is sending touch events from the kernel with wacom.ko? With touch on the Synaptics driver I am able to see touch events on ginn in the terminal.
2) Touchégg. Downloads available at the touchegg site along with a wiki with instructions. "OS X-like multitouch gestures for Macbook Pro running Ubuntu 12.10" appears to be a good tutorial.
The default touchégg in the Precise repositories does not work, it seg faults. The touchegg-1.1 CHANGELOG says:
So you need to download v. 1.1. from the site and compile it. As far as I know the Quantal touchégg is fine.[+] Touchégg v1.1 (2012/07/22)
- Added Ubuntu Precise compatibility
In Oneiric 11.10 and later to get the needed dependencies to compile run the following command.
Code: Select all
sudo apt-get build-dep touchegg
Code: Select all
sudo apt-get install build-essential libqt4-dev utouch libx11-6 libxtst-dev
Note: touchegg site's instructions on compiling did not work for me in Precise. I used sudo apt-get build-dep touchegg which installed libgeis-dev libqt4-dev libqt4-qt3support qt4-linguist-tools qt4-qmake. Got an error on make which required installing libutouch-geis-dev.
To compile touchegg in Maya/Precise the following should work. Download Touchégg v1.1 onto your Desktop and extract it. Then:
Code: Select all
sudo apt-get install build-essential libgeis-dev libutouch-geis-dev libqt4-dev libqt4-qt3support qt4-linguist-tools qt4-qmake
cd Desktop/touchegg-1.1
qmake
make
sudo make install
Code: Select all
cd Desktop
git clone https://github.com/Raffarti/Touchegg-gce.git
cd Touchegg-gce
qmake
make
Touchégg, once compiled and installed, works in Kubuntu Precise (12.04), Gnome Shell Quantal (12.10), and Mint 14 Cinnamon with xf86-input-wacom-0.18.0 or higher, as soon as the xsetwacom command Gesture off is run. Presumably it will also work in Mint 13 Maya with Cinnamon and MATE. Remember to use the frankenserver patch when compiling xf86-input-wacom in Maya/Precise.
d) Turning Unity Gestures off so other Gesture Engines can be Used.
For UI consistency reasons Unity makes no provision for modifying its stock gestures or adding gestures. Also by design Unity does not allow disabling its system gestures which is necessary to use another gesture engine to customize gestures. See "Unity Gesture UI Guidelines". On askubuntu "How can I disable arbitrary default multitouch gestures in Unity?" is a good discussion of what's needed. The gesture code has to be disabled and then Unity re-compiled.
TODO: Move part X. to a seperate multitouch HOW TO?
Troubleshooting
In I. note not every kernel is -generic so you may need a different kernel header. To check:
Code: Select all
uname -r
Code: Select all
2.6.32-22-rt
or
2.6.35-25-generic-pae
Code: Select all
sudo apt-get install linux-headers-rt
or
sudo apt-get install linux-headers-generic-pae
Code: Select all
./configure --enable-wacom --prefix=/usr --libdir=/usr/lib64
Code: Select all
./autogen.sh --prefix=/usr --libdir=/usr/lib64
*thanks to dr4ziw
Appendix 1: HOW TO Clone the input-wacom git repository
Useful if support for a model or feature has been added since the last point release. To determine that see: http://linuxwacom.git.sourceforge.net/g ... a=shortlog
Code: Select all
cd Desktop
git clone git://git.code.sf.net/p/linuxwacom/input-wacom input-wacom
sudo apt-get update
(For Ubuntu use libx11-dev instead of libX11-dev in the following command)
sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev autoconf libtool
sudo apt-get upgrade
uname -r
(If you have the generic kernel which most do.)
sudo apt-get install linux-headers-generic
(If you have the rt or pae kernel.)
sudo apt-get install linux-headers-rt
or
sudo apt-get install linux-headers-generic-pae
cd input-wacom
./autogen.sh --prefix=/usr
(If you are in Isador/Lucid or Julia/Maverick.)
sudo cp ./2.6.30/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
or
(If you are in Katya/Natty or Lisa/Oneiric or Maya/Precise or Nadia/Quantal.)
sudo cp ./2.6.38/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
or
(If you are in Olivia/Raring.)
sudo cp ./3.7/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko
sudo depmod -a
Edit (11-18-10): With xf86-input-wacom the default ClickForce for the stylus, eraser and touch is 27 (FILTER_PRESSURE_MAX/75, usually around 27). And the range is 0-2047 because pressure levels are normalized to 2048 levels for all devices since commit "Normalize-pressure-sensitivity.patch". So for e.g. for the stylus it should look something like:
Code: Select all
xsetwacom set "Wacom BambooFun 2FG 4x5 Pen stylus" ClickForce "27" # default is 27, 0-2047
Code: Select all
xsetwacom set "Wacom BambooFun 2FG 4x5 Pen stylus" Threshold "27" # default is 27, 0-2047