XPPen Artist Pro 19 (Gen 2) - review on GNU/Linux

Published on

Video:

Useful links:

Special Offer/Promo code
10% additional discount for the Artist Pro 19 (Gen 2)
code: DAVID10 (valid from November 15 to December 6).

Intro

Here is my video review of the XPPen Artist Pro 19 (Gen 2) pen display tablet.
Everything about my feelings, and tests about the hardware is in the video above.

This blog post here is a list of my installation method, scripts and tweaks to install the device under a GNU/Linux operating system.

I spent a lot of time to do research on this unit, but at the end of the day, I'm just a tweaker: all the credits for improving the support of this tablet goes to Joshua Goins (restrate), José Expósito, Benjamin Tissoires (bentiss) and Peter Hutterer (whot) (and probably many more I forgot, sorry).

The proprietary driver

I don't use the proprietary driver provided by XPpen for ethical reasons, but I know that many users will be happy to know of its existence and will probably make an exception for this binary in order to "simplify their lives". I don't blame them.

Link: https://www.xp-pen.com/download

Wayland

Wayland is the default session on all major GNU/Linux distributions. Unfortunately, it is currently very difficult to set up this type of tablet in Wayland. In Wayland, all this kind of input and configuration has been delegated to the desktop environment developers. So now you understand that there will never be a single Wayland method to configure a tablet under any desktop environment, but a Gnome-on-Wayland method, a KDE/Plasma-on-Wayland method, a Sway-on-Wayland method, etc.

On a recent Fedora GNOME 41 Gnome or Plasma, you'll get very basic options out-of-the-box and you might even access more thanks to CLI tools like gsetwacom for GNOME or ktabletconfig for Plasma. But you might also hit a wall as soon as you'll want to configure something not exposed to the GUI or this CLI tool.

Great progress is being made and if you install the latest udev-hid-bpf and libwacom you may soon see all the features of this tablet exposed in the system settings (even with the remote control!). However, it is not yet available via the usual packages, and it may take some time for it to spread downstream to all GNU/Linux distributions. So, it is painful to say, but in most cases your best option for Wayland now might be to use XPpen's proprietary driver temporarily:

X11

I'm using a Debian 12 KDE on X11 setup. On it, I could setup the tablet correctly with a collection of xsetwacom command-lines executed at system boot via a script.

Remaining issues

  1. The XPpen ACK05 remote is still a pain to customise, but big progress are made on the udev-hid-bpf project. You can also check my workarounds and way to customise it anyway on my full blog-post about the ACK05.
  2. The thin stylus has a 1.5 or 2mm extra offset between the tip of the stylus and the cursor. This is because the height of the "Tilt compensation" is different on this stylus. Work is in progress on this topic.
  3. The keyboard shortcut of the scroll-wheel on the thick stylus can't be configured yet (default: Ctrl+ and Ctrl-), but it is possible to temporary deactivate it. Work is in progress on this topic.

Fix unwanted Eraser mode on stylus

By default, the second button of the stylus will simulate a stylus flip to eraser while holding it. You'll prefer a right-click to that. For that, you need to apply the rules contained in the udev-hid-bpf project. That one contains a rule to make it work again as a right-click (or any button because it will be exposed to xsetwacom for customization after that).

To install it, download the latest package of udev-hid-bpf (packages, not source code or asset), and unpack it somewhere. Then go to the directory and execute the bash script ./install.sh.

Reboot your system. You can check if everything is correctly loaded with the CLI command line tool tree; the name of the rule is for the "16" but it works also for the "19":

~ »»» sudo tree /sys/fs/bpf/hid/
[sudo] password for deevad: 
/sys/fs/bpf/hid/
└── 0003_28BD_096A_0010
    └── 0019-XPPen__ArtistPro16Gen2_bpf
        ├── hid_fix_rdesc_xppen_artistpro16gen2
        └── xppen_artist_pro_16_device_event

Note: On my GNU/Linux installation based on Debian 12 Bookworm, you'll need a newer kernel to load BPF programs with eBPF. To do this, I install the curl package and then the Liquorix kernel using the one-liner command line provided on their website.

Setup X11 to put xsetwacom in control

For that, we need the ID of the tablet first.
Plug the tablet and run in a terminal:

lsusb

This command will list all usb devices connected to your computer and their ID.
My line looks like that:

Bus 001 Device 006: ID 28bd:096a XP-Pen Artist Pro 19(Gen2)

Copy your ID somewhere, mine here is 28bd:096a, and if we have the exact same model, your might be the same.

Then change directory (cd) to the place where X11 stores its rules:

cd /usr/share/X11/xorg.conf.d/

I'll create a new file in this directory (note it require your system root password because we are editing a system file with 'sudo'). I'm using here the text-editor "micro", but you can use your favorite. "nano" is often installed anywhere, but has less user-friendly keyboard shortcut and color syntax by default.

sudo micro 60-xppen.conf

We can copy/paste the paragraph under at the end of the file; if your USB identifier differs, you'll need to adjust the line starting with MatchUSBID:

Section "InputClass"
  Identifier "XP-Pen Artist Pro 19 (Gen2) Tablet"
  MatchIsTablet "on"
  Driver "wacom"
  MatchUSBID "28bd:096a"
  MatchDevicePath "/dev/input/event*"
EndSection

Save and then reboot your system.
At this point, you should see your XPPen tablet stylus listed if you write in a terminal:

xsetwacom --list

Bravo! Xsetwacom is now in charge of your tablet, and that's a good news because you can setup almost any aspect of your tablet with this CLI tool.

Create an Xsetwacom script

Don't be affraid of the word "script"; it is just a series of command written line by line on a text file so the computer will execute all of them at once. Each line will setup one aspect of your tablet. Line starting by the character # are not interpreted by your computer, so I added some notes on them to guide you in the customisation of the script. Open a non-rich text editor (eg. Micro, Kate, Geany, Gnome text also called Gedit, etc...) and copy/paste the script under, and then read it and try to customise it to your needs. On this script you'll find my own settings as an example:

#! /bin/bash
# ---------------------------
# XP-Pen Artist Pro 19 (Gen2)
# ---------------------------
# License: CC-0/Public-Domain license
# author: deevad

# Tablet definition
# Identifier obtained using the 'xsetwacom --list' command line
# The tablet appears after creating a special rule for Xorg. 
# See blog post on https://www.davidrevoy.com/index.php?tag/hardware for it.
tabletstylus="XPPen Artist Pro 19(Gen2) stylus"
tableteraser="XPPen Artist Pro 19(Gen2) eraser"

# Constrain the stylus to use it's own monitor
# Monitor name here "HDMI-A-0" was obtained
# using the 'xrandr' command-line. Your monitor's name might be different (eg. "HDMI-1", "DisplayPort-3", etc...). 
output="HDMI-A-0"
xsetwacom --set "$tabletstylus" MapToOutput $output
xsetwacom --set "$tableteraser" MapToOutput $output

# Calibration (reset)
# Start by reseting calibration to default area
xsetwacom --set "$tabletstylus" ResetArea
# Default area is '0 0 32767 32767'
# You can obtain it with the command line:
# xsetwacom --get "XPPen Artist Pro 19(Gen2) stylus" Area

# Calibration (set)
# Calibrate your device manually with tweaking the numbers under
# and then re-run the script. Add 50 here, substract 50 there, and see the effects.
# (you can also use a tool like `xinput_calibrator`)
# The number are set like this: "MinX" "MinY" "MaxX" "MaxY"
# default: Area 0 0 32767 32767
xsetwacom --set "$tabletstylus" Area 0 0 32680 32680
xsetwacom --set "$tableteraser" Area 0 0 32680 32680

# Pressure sensitivity calibration
# You can use this widget online here to create your curve
# https://linuxwacom.github.io/bezier.html
# The number are set like this: "X1" "Y1" "X2" "Y2"
# default: PressureCurve 0 0 100 100
xsetwacom --set "$tabletstylus" PressureCurve 95 90 20 100

# Styluse's buttons:
# First button on the stylus
# I like to get the Control key to pick color on this one.
# default: button 2 2
xsetwacom --set "$tabletstylus" button 2 key Ctrl

# Second button on the stylus
# I leave the default right-click
xsetwacom --set "$tabletstylus" button 3 3

# Data trimming and suppression
# Better to not filter or delete any data of this device for increasing its precision
# data pt.s filtered (0-100)
# default is 2
xsetwacom --set "$tabletstylus" Suppress 0 
# data pt.s trimmed (1-20)
# default is 4
xsetwacom --set "$tabletstylus" RawSample 1

# Bonus:
# Deactivate the scroll-wheel on stylus
xinput set-prop "XPPen Artist Pro 19(Gen2) Keyboard" "Device Enabled" 0

Save your script under the name of your choice, I saved mine as xppen_Artist-Pro-19-Gen2.sh (using the extension .sh at the end of the file will ease identifying the file as a Bash script later). To run it, after saving the file you need to give this text file execution permission. You can do so with many desktop environment by right clicking on the file, go to the property of the files, and in a permission tab add the "execute" checkbox. Another way to do it is via command line in the same directory:

chmod +x xppen_Artist-Pro-19-Gen2.sh

Now, if you run:

./xppen_Artist-Pro-16-Gen2.sh

The script should run and apply your preference. If your desktop environment is modern enough; you should have a way to add a script at autostart (usually in Settings > Autostart). This way, the preferences will be applied each time you start your computer. You can of course change options, and execute the script as many time you want to test and adjust.

You might also create a shortcut on your main menu to execute quickly the script.

Monitor Luminosity/Brightness and OSD

In the video, I setup my monitor "Brightness" to 75 to reduce the heat of the device, I also demo how you can hold down 'Brightness +' and press 'Power' to enter into the OSD menu. It's a very good option because I wasn't able to access this display via ddcutil ("DDC communication failed") so far.

Conclusion: contribute?

That's all, this guide can be of course continued or updated!

You can send me your tips via comments, or on various Gitlab or Githubs thread mentionned in this article or via email.


2 comments

link Strypey   - Reply
strypey@mastodon.nzoss.nz


> there will never be a single Wayland method to configure a tablet under any desktop environment, but a Gnome-on-Wayland method, a KDE/Plasma-on-Wayland method, a Sway-on-Wayland method, etc

> I'm using a Debian 12 KDE on X11 setup. On it, I could setup the tablet correctly with a collection of xsetwacom command-lines executed at system boot via a script

Sounds like Wayland kind of sucks.

#Wayland #X11

link David Revoy Author, - Reply
davidrevoy

@strypey For art, it's a massive regression, yes. I explain more on Chapter 2, A1 here davidrevoy.com/article1030/deb


Post a reply

The comments are synchronised every 4h with the replies to this post on Mastodon:


How to use this? (click here to unfold)
Open a new Mastodon account on the server of your choice. Then, Copy/Paste the adress above in your Mastodon 'Search' field. The post will appear and you'll be able to fully interact with it. You'll have full control of your posts: edit, remove, etc. After that, your message will appear here.

Just please note that it may take up to 4 hours for your changes to be reflected here.