xsetwacom is a commandline utility to change wacom driver settings at runtime. This includes direct settings of driver properties but also several 'indirect' settings (i.e. the xsetwacom command does not relate directly to a single property). For a detailed description of xsetwacom's commands and options, please refer to the man page. Also see Tablet Configuration for examples of how to use xsetwacom. This page provides a general overview and describes some of the quirks you may encounter.
Any setting changed by xsetwacom will be reset to default (or a statically configured setting) whenever the device is unplugged, disabled or the X Server is restarted.
To list the applicable devices.
Which produces output similar to this:
$> xsetwacom list Wacom Intuos4 6x9 eraser id: 12 type: ERASER Wacom Intuos4 6x9 cursor id: 13 type: CURSOR Wacom Intuos4 6x9 pad id: 14 type: PAD Wacom Intuos4 6x9 stylus id: 15 type: STYLUS
On the left is the device name, used as parameter in all other xsetwacom commands. The device ID and device type is provided as well.
The usual invocation to get a parameter is:
xsetwacom get "Wacom Intuos4 6x9 stylus" Button 1
Replace the device name with the one applicable in your case. This will print the current value of the parameter, in this case the current mapping for button 1.
xsetwacom set "Wacom Intuos4 6x9 stylus" Button 1 3
sets the button 1 to logical button 3 - a right click. Note that parameters are per-tool and you will need to set the parameter for each tool if you want them to apply tablet-wide.
Finally, to get a list of parameters just type
xsetwacom list parameters
xsetwacom Command Parameter Usage
Remember entering "man xsetwacom" (without the quotes) in a console will bring up the xsetwacom manual and give you a quick overview of xsetwacom.
The wacom driver does not support multi-monitor setups directly - handling of such setups is handled by the X Server. xsetwacom does however provide a parameter to easily map a tablet to a screen
The MapToOutput parameter maps the wacom tablet to a specific screen. MapToOutput takes an output name as parameter and then adjusts the coordinate transformation matrix to the screen size of that output. The monitor names can be obtained with the xrandr tool (e.g. VGA1).
To map a tool to the VGA monitor, simply run
xsetwacom set "Wacom Intuos4 6x9 stylus" MapToOutput VGA1
See MapToOutput for more detail. If you use the NVIDIA binary driver or are running an earlier version of xf86-input-wacom, you can manually calculate the matrix and set the property with the xinput tool. See Coordinate Transformation Matrix.
The Mode parameter sets the device mode as either Relative, the default for cursor (the Wacom tablet mouse) and tablet touch or Absolute, the default for the stylus, eraser, and tablet PC touch. Relative Mode means pointer tracking for the device will function like a mouse, whereas Absolute Mode means the pointer corresponds to the device's actual position on the tablet or tablet PC screen. An example of the command would be:
xsetwacom set "device name" Mode "Absolute"
Note that using the Mode parameter in an xsetwacom command will prevent you from pulling a Guideline in Gimp with your mouse due to a long standing GTK bug.
The PressureCurve parameter used by xsetwacom is a Bezier curve of third order or a Bezier Cubic Spline. So it is a cubic equation with four points, composed of two endpoints or anchor points (0,0 & 100,100) and two control points (x1,y1 & x2,y2) that define the curve's shape. What that all means is xf86-input-wacom's X driver offers you superb control over your stylus and eraser's feel.
With the default curve the two control points have the same values as the anchor points,
xsetwacom set "device name" PressureCurve 0 0 100 100
which means it is linear, i.e. reflecting the tablet's designed pressure response (e.g. 0-1023). Think of it as a 100x100 grid with the Bezier curve a straight line from the lower left corner (0,0) to the upper right corner (100,100). To get a different feel, you can change the values of the control points. Example values are:
0 100 0 100 # ridiculously soft 0 50 50 100 # very soft 0 0 100 100 # linear, the default 50 0 100 50 # very firm 100 0 100 0 # unbelievably firm
You can also combine changes to the inner and outer pairs simultaneously (altering the control points relative to each other) to achieve the feel you prefer with your stylus and eraser.
The wacom driver supports rotation by 90 degree angles. The Rotate parameter can be applied at runtime with xsetwacom or statically (through the configuration files). The four valid settings are:
- none: the tablet is not rotated in software and uses its natural rotation.
- half: the tablet is rotated by 180 degrees (upside-down)
- cw: the tablet is rotated 90 degrees clockwise
- ccw: the tablet is rotated 90 degrees counter-clockwise
Note that rotation is a tablet-wide option. If you rotate one input tool all other tools associated with the same tablet are rotated to the same orientation. To rotate a tool use:
xsetwacom set "device name" Rotate half
and one of the four valid settings. For more detail see Rotation.
The Tablet PC Button behaviour.
- If TabletPCButton is on, the stylus must be in contact with the screen for any stylus button to work.
- if TabletPCButton is off, stylus buttons will work once the stylus is in proximity of the tablet (regardless of whether it is touching the screen).
TabletPCButton is on by default for Tablet PCs and off for all other models. An example xsetwacom command to set the behaviour is:
xsetwacom set "device name" TabletPCButton "on"
Note that the TabletPCButton parameter is only available in xf86-input-wacom-0.10.10 or later.
Table of New Parameter Names
xsetwacom's parameter names have changed over several revisions (the biggest change happened in xf86-input-wacom-0.10.11, released Feb 16, 2011). Reasons for changing parameters in xsetwacom include UI improvements or improved maintainability of the code.
|Old Parameter Name||New Parameter Name|
|TopX, TopY, BottomX, & BottomY||Area x1 y1 x2 y2|
|Button1 ...||Button 1 ...|
|Rotate values: NONE, CW, CCW, HALF||Rotate values: none, cw, ccw, half|