Introduction
This post assumes you already have the tablet working and the xsetwacom
command already exists on your linux installation.
For this post I’ll be mapping the buttons on my HS611 Tablet. A HS611 tablet has 8 buttons on the pad and 2 buttons on the stylus.
Setting Things Up
Let us get the name of the graphics tablet:
$ xsetwacom --list
The command above gives the output below if the connected tablet is a HS611
HUION Huion Tablet_HS611 stylus id: 15 type: STYLUS
HUION Huion Tablet_HS611 Pad pad id: 16 type: PAD
HUION Huion Tablet_HS611 Touch Strip pad id: 17 type: PAD
Of importance to us are HUION Huion Tablet_HS611 stylus
and HUION Huion Tablet_HS611 Pad pad
Mapping
Fire up your favorite text editor, and create bash script file with a name of your choice. For this post I’ll choose set_keys.sh
in set_keys.sh
:
#!/bin/sh
# PAD MAPPINGS
#top set
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 1 "key ctrl shift z"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 2 "key ctrl z"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 3 "key ctrl p"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 8 "key ctrl shift ="
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 9 "key ctrl -"
#bottom set
# https://askubuntu.com/a/1193029
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 10 "key +ISO_Level3_Shift +9"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 11 "key 4"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 12 "key del"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 13 "key 6"
xsetwacom --set 'HUION Huion Tablet_HS611 Pad pad' Button 14 "key +ISO_Level3_Shift +8"
# STYLUS MAPPINGS
# xsetwacom --set 'HUION Huion Tablet_HS611 stylus' Button 1 "key h" # on click
# button 1 on the stylus is triggerd when you tap the stylus tip on the tab. Simulates a "click" by default.
xsetwacom --set 'HUION Huion Tablet_HS611 stylus' Button 2 "key b"
xsetwacom --set 'HUION Huion Tablet_HS611 stylus' Button 3 "key e"
The mappings are configured with Krita in mind:
Pad Mappings:
Button | Mapping | Function |
---|---|---|
Button 1 | Ctrl + Shift + Z | Redo |
Button 2 | Ctrl + Z | Undo |
Button 3 | Ctrl + P | Pan Mode |
Button 8 | Ctrl + Shift + = (equivalent to ctrl + + ) | Zoom In |
Button 9 | Ctrl + - | Zoom Out |
– | – | – |
Button 10 | +ISO_Level3_Shift + +9 (aka altgr + 9 or ] ) | Increase brush size |
Button 11 | 4 | Rotate Left |
Button 12 | del | Clear Canvas |
Button 13 | 6 | Rotate Right |
Button 14 | +ISO_Level3_Shift + +8 (aka altgr + 8 or [ ) | Decrease brush size |
Stylus Mappings:
Button | Mapping | Function |
---|---|---|
Button 1 | b | Brush Tool |
Button 2 | e | Eraser Tool |
With that done, let us now give execution permissions to our script file:
$ chmod +x set_keys.sh
Now we can run the file every time we connect the tablet so as to map the keys:
$ ./set_keys.sh
Once you’ve mapped the keys, you can fire open Krita and draw to your heart’s content :).
Tips
You can view all mappable keys/modifires with the command below. Sometimes they don’t map as we expect (example [
, ]
and +
), but with a bit of Googling you will find your solution:
$ xsetwacom --list modifiers
To test in a terminal which key is being input by the button after mapping, you could monitor either using the xev
command or showkey -a
.
Happy drawing :)