3.8 KiB
title | date | draft | tags | summary | series | mastodon_url | bluesky_url | draft | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
The XP-Pen Artist 22R Pro just works on Linux now | 2025-07-03 | false |
|
placeholder |
|
true |
title: "The XP-Pen Artist 22R Pro just works on Linux now" date: 2025-07-03 draft: false tags:
- Linux
- Open Source
- Kernel
- KDE summary: placeholder series:
- Fixing the XP-Pen Artist 22R Pro tablet on Linux mastodon_url: "" bluesky_url: "" draft: true
It's been almost two years since the last update, what changed? And if you aren't familiar with this project, here's a quick recap of...
The hardware in question
This is the graphics tablet that I do most of my art on, the XP-Pen Artist 22R Pro:
imghere
It's been serving me well for years (well, except when the first one died and I had to buy a new one.) It has one fatal flaw though, it doesn't work that well on Linux! To be more specific, it "works" but has a few problems:
- It's not possible to rebind the pad buttons, because it starts in a "compatibility mode" that can only send pre-defined keyboard buttons.
- Using the second stylus button completely kills the stylus input1.
- The two dials do not function, and if they did they wouldn't be rebindable anyway.
That is not great, especially since it's not the cheapest graphics tablet on the market. Ideally, it would work just as well on Linux as it does on Windows. And that's somewhat possible to achieve, if you use XP-Pen's proprietary user-space driver. But I want something better! I want this thing to work out of the box, just using free software ❤️
Linux
As alluded to in my previous posts, I have completed the patch for the kernel to add support for this specific tablet2. After sitting it on it for a year (and of course, rigorously testing it) I'm happy to announce it's merged and available in Linux 6.17 🎉
imghere
This makes it my second Linux patch merged, and my first original one I wrote3.
libwacom
I added a descriptor to libwacom for this tablet, which means it's properly configurable under KDE Plasma and GNOME. Like showing the correct number of buttons, dials, and the layout (where used.)
libinput
I merged support for tablet dials in libinput, which allows compositors to expose this information to clients - or use it themselves for grabbing the dial's events. This has huge implications outside of this specific tablet, for example certain HUION devices also benefit from this.
Wayland
Thanks to work by Peter Hutterer, the Tablet protocol in Wayland now has support for tablet dials. What this means in real-world terms is that applications can now
KDE Plasma
Thanks to work by Nicolas Fella, we now pick up relative dials from libinput and send them to clients via the Wayland protocol in Plasma 6.4.
I added support for rebinding them in the existing infrastructure in KWin. And also added them to the KCM, allowing you to configure them easily:
These rebinding features will show up in Plasma 6.5.
Conclusion
And with that, you can now buy a brand-new XP-PEN 22R Pro right now and use it on Linux right now out of the box. Not only that, but it also works in the Wayland ecosystem flawlessly. Isn't that awesome?
To Nicolas Fella and Peter Hutterer, you can redeem your beer or drink of choice at your earliest convenience 🍻
-
If this happens to your tablet, we have different ways to workaround this having to ship a new device in the uclogic driver. For example, this MR to udev-hid-bpf which amends the descriptor. ↩︎
-
This specific UGEEv2 device and it's protocol, which may be the same as the 24 Pro just with a different USB ID. That is yet to be tested, so keep an eye out 😉 ↩︎
-
Not even technically that, as it was partially based off of previous work by XYZ. I had to refactor it a bit to include dial support, properly map all the buttons, and whatnot but the original frame packets were theirs. ↩︎