Add draft blog post
This commit is contained in:
parent
67baeaa573
commit
f7d74cfc4e
4 changed files with 81 additions and 0 deletions
|
@ -8,6 +8,8 @@ tags:
|
||||||
- Kernel
|
- Kernel
|
||||||
- KDE
|
- KDE
|
||||||
toc: true
|
toc: true
|
||||||
|
series:
|
||||||
|
- Fixing the XP-Pen Artist 22R Pro tablet on Linux
|
||||||
mastodon_url: "https://mastodon.art/@redstrate/109569701558215513"
|
mastodon_url: "https://mastodon.art/@redstrate/109569701558215513"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,8 @@ tags:
|
||||||
- Open Source
|
- Open Source
|
||||||
- Kernel
|
- Kernel
|
||||||
- KDE
|
- KDE
|
||||||
|
series:
|
||||||
|
- Fixing the XP-Pen Artist 22R Pro tablet on Linux
|
||||||
toc: true
|
toc: true
|
||||||
mastodon_url: "https://mastodon.art/@redstrate/109586402318585854"
|
mastodon_url: "https://mastodon.art/@redstrate/109586402318585854"
|
||||||
---
|
---
|
||||||
|
|
72
content/blog/fixing-22r3/index.md
Normal file
72
content/blog/fixing-22r3/index.md
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
---
|
||||||
|
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](linkhere) 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 input[^1].
|
||||||
|
* 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](linkhere). 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 tablet[^2]. 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 wrote[^3].
|
||||||
|
|
||||||
|
# libwacom
|
||||||
|
|
||||||
|
I [added a descriptor to libwacom](https://github.com/linuxwacom/libwacom/pull/786) 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 🍻
|
||||||
|
|
||||||
|
[^1]: 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](https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/169) which amends the descriptor.
|
||||||
|
|
||||||
|
[^2]: 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 😉
|
||||||
|
|
||||||
|
[^3]: 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.
|
|
@ -683,6 +683,11 @@ pre {
|
||||||
background-color: var(--extra-color);
|
background-color: var(--extra-color);
|
||||||
color: var(--text-color) !important;
|
color: var(--text-color) !important;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.new-banner {
|
.new-banner {
|
||||||
|
|
Loading…
Add table
Reference in a new issue