Debian: Applying your screen aspect ratio on Wacom Tablet

Xorg configures itself in Debian Squeeze. This is great for the most part, because most people (including myself) don't want to spend time setting graphic displays and devices.

However, there are times when this automated configuration can have downsides: I recently purchased a Wacom Intuos3 6x8 tablet from a friend to use on my laptop. I have a 15.6" screen though, which is a different ratio than the tablet.

The actual dimensions of the screen are 7.5"x13.5". Quite different from 6x8, but the tablet settings are ignoring this difference in ratio and applying the screen ratio to the tablet. This can result in defects in your drawing, such as circles looking like ovals or gnus looking like penguins (!).

In order to fix this issue, we'll first need to generate a classic xorg.conf file to override the auto configuration.

Here's how to do it:

       sudo Xorg :1 -configure

This will write the default config into a file, located at /root/xorg.conf.new You can take a quick look at the file before copying over. If all looks good:

    sudo cp /root/xorg.conf.new /etc/X11/xorg.conf

After rebooting, the new xorg.conf file should be applied.

Now is time to add the Wacom settings. One of the useful settings that you can find when running man wacom is KeepShape: <cite> Option "KeepShape" "on"|"off" When this option is enabled, the active zone begins according to TopX and TopY. The bottom corner is adjusted to keep the ratio width/height of the active zone the same as the screen while maximizing the area described by TopX, TopY, BottomX, BottomY. </cite>

If you apply this to the wacom device, it will limit its dimensions to match the ones of the screen, and thus cut part of its real estate to preserve the aspect ratio. Here are my settings for the Wacom Intuos3 6x8, entered at the bottom of /etc/X11/xorg.conf:

##### Part dedicated to Wacom Tablet #####

Section "InputDevice"

Identifier  "stylus"

Driver      "wacom"

Option      "Type"      "stylus"

Option      "Device"    "/dev/input/wacom"

Option      "KeepShape" "on"

EndSection

Section "InputDevice"

Identifier  "eraser"

Driver      "wacom"

Option      "Type"      "eraser"

Option      "Device"    "/dev/input/wacom"

Option      "KeepShape" "on"

EndSection

Section "InputDevice"

Identifier  "cursor"

Driver      "wacom"

Option      "Type"      "cursor"

Option      "Device"    "/dev/input/wacom"

Option      "KeepShape" "on"

EndSection

Section "InputDevice"

Identifier  "pad"

Driver      "wacom"

Option      "Device"    "/dev/input/wacom"

Option      "Type"      "pad"

Option      "USB"       "on"

Option      "KeepShape" "on"

EndSection

Please note that, in order for the KeepShape option to work properly, the mode for stylus and eraser should be "Absolute", which is the default one anyway.

In order to apply these new Wacom setting to be applied, you will also need to register the input devices in the ServerLayout section. This section of xorg.conf should have been generated using the Xorg -configure command. After the bottom of the section, enter the inputDevices:

Section "ServerLayout"

Identifier     "X.org Configured"

Screen      0  "Screen0" 0 0

InputDevice    "Mouse0" "CorePointer"

InputDevice    "Keyboard0" "CoreKeyboard"

InputDevice "stylus"    "SendCoreEvents"

InputDevice "eraser"    "SendCoreEvents"

InputDevice "cursor"    "SendCoreEvents"

InputDevice "pad"       ""

EndSection

The big downside of this method is that it removes part of the usable area on the tablet rather than on the screen. I'd prefer to cut the active area on the screen rather than on the tablet so that I could benefit from the entire 6x8 tablet. I haven't figured this part out yet.