Configuring a wacom graphics drawing tablet under Hyprland

Published 2023-11-15

I bought a second hand wacom tablet to try a different way of drawing, but the default configuration was not what I wanted. This is a log of how I configured it to work under the Hyprland window manager in Linux.

The hardware

The tablet I bought was a used CTH-480, but I imagine the process is similar for anything compatible with the linux wacom driver. This particular tablet works with both a stylus and finger 'touch' input, and can distinguish between these input methods. Also it's a nice size for sitting between the two halves of my split keyboard.

Homemade split keyboard and drawing tablet on a desk

Default configuration

If you're using a single monitor, the tablet probably works fine without any additional configuration. Touching the top left of the tablet registers an input at the top left of the screen, and touching the bottom right of the tablet registers as the bottom right of the screen. However, if you have two or more monitors, then the tablet input will be scaled to match the total display space of your screens. So for me using a three monitor setup, the tablet input corresponded to three screens width, making any kind of precise control very difficult.

Trying an alternate driver: OpenTabletDriver

Briefly I experimented with an alternative to the wacom driver, OpenTabletDriver. This had the advantage of having a straightforward gui to configure the various options, but without a lot of extra configuration didn't detect whether I was using the stylus drawing-tip or the style eraser. Plus it uses dotnet which felt like overkill for an option that didn't automagically solve all my problems.

Configuring Hyprland

The Hyprland documentation lists some options for configuring tablet input peripherals. Instead, I want only the tablet stylus input to be mapped to a single screen, ignoring the extra space the other two provide. By setting the 'output' variable to the name of one of the monitors, the 'output space' of the tablet would be mapped to that display.

So first we identify the monitors

$ hyprctl monitors | grep Monitor
Monitor DP-3 (ID 0):
Monitor DVI-D-1 (ID 1):
Monitor HDMI-A-1 (ID 2):

Also the identifier for the tablet

$ hyprctl devices
    Tablet Pad at 544c238492d0 (belongs to 0 -> )
    Tablet at 544c40ffcea0:

In my case HDMI-A-1 is the monitor I want to use for drawing, so we edit the Hyprland config file vim ~/.config/hypr/hyprland.conf, adding the following per-device input configuration:

device:wacom-intuos-pt-s-pen {

This configuration takes effect immediately upon hyprland.conf being saved.

Krita art package screenshot


Tom 'voxel' Purnell