WRITTEN_BY David REVOY -
-
14 comments
[youtube]trXxX3ZY5FM[/youtube]
**Video**:
- On Youtube: https://youtu.be/trXxX3ZY5FM
- On Peertube: https://peertube.touhoppai.moe/w/ceBuGLnUs8JBf9RgpzrGSa
This article accompanies my video review of the XpPen Deco 01v3, a medium-sized screenless pen tablet. The video provides my in-depth look at the device's hardware. This blog post, on the other hand, focuses on the information and technical aspects of installing and configuring the device on a GNU/Linux operating system.
**Official links**:
- [Official product page](https://www.xp-pen.com/product/deco-01-v3.html)
- [Buy on official store](https://www.storexppen.net/buy/deco-01-v3.html)
**Special Offer/Promo code**
20% OFF on the Deco 01 V3 tablet with code “DAVID20”, **valid in March 2025**, cannot be combined with other promotions.
- FR : https://bit.ly/41HXzZ2
- UK:https://bit.ly/3QJ1Xkc
- DE: https://bit.ly/4ihb6wk
- IE: https://bit.ly/4bpNdjC
- ES : https://bit.ly/4h40EqV
- PT : https://bit.ly/4hYIJ66
- US: https://bit.ly/3D4xbiI
- CA: https://bit.ly/41iLJD6
**Update**:
- 2025-03-07: Update GNOME .tablet files and .svg files and screenshots.
## Out of the box situation
What features are available out of the box? Basically, **all primary functions are operational**. In the absence of a dedicated driver, the XpPen Deco 01v3 emulates two standard devices: a generic pen, similar to those used with laptop-tablet PCs, and a standard keyboard for key input.
Modern versions of GNOME and KDE, running under Wayland, can accurately detect the stylus coordinates and set the screen aspect ratio. Under X11, the xsetwacom command line utility can achieve similar results.
The limitation of this emulation is that most of the shortcuts for the stylus buttons and pad **buttons are hard-coded and cannot be changed** without a dedicated driver. The default key mapping is shown in the figure below (see image). While not ideal, the default shortcuts are still useful. However, you will need to get used to using a pen without a right-click button, as an "eraser mode" is activated by holding down the button instead.
[](data/images/blog/2025/2025-03-04_device-default.jpg)
_Default buttons layout when connected to a GNU/Linux machine_
## The proprietary driver
I have not tested or used the Linux proprietary driver provided by XP-Pen, for ethical reasons. However, I am aware that many users may find its existence beneficial and may choose to make an exception to use this binary blob, prioritizing convenience. I do not judge their choice.
Link: https://www.xp-pen.com/download
## The FLOSS driver (udev-hid-bpf)
On GNU/Linux, all drivers are built into the Linux kernel, but forcing users to wait for the next kernel to get their hardware working would be madness. To address this issue, projects such as [udev-hid-bpf](https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/) provides a solution by allowing users to load Human Interface Device (HID) drivers in the kernel. Presently, this is where the development of new tablet drivers is taking place.
So I reported the device specifications to [Peter Hutterer (whot)](https://gitlab.freedesktop.org/whot) and [Benjamin Tissoires (bentiss)](https://gitlab.freedesktop.org/bentiss) who manage the project. I opened a new [thread with all the Deco 01V3 specifications](https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/issues/54). Peter then wrote [the merge request 185](https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/merge_requests/185) with the code to support the tablet. And waiting the code to join the main release of udev-hid-bpf (and maybe later the Linux kernel), you can install the code of the merge request using [the tutorial provided by the documentation of udev-hid-bpf](https://libevdev.pages.freedesktop.org/udev-hid-bpf/installing-from-ci.html).
Note: the merge request is still in progress, while all buttons of the pad are now ready to be customized, **the top button of the stylus still reports an eraser mode**. The buttons might appear on the GUI of Plasma on Wayland, GNOME on Wayland, or X11 xsetwacom, but it will not be possible to change this hardcoded eraser mode.
## Customization
### On Plasma Wayland
Once the udev-hid-bpf rules are correctly installed, the Plasma 6.3 system preference on Wayland will detect all buttons. Below is a screenshot of the three panels (click to enlarge).
[](data/images/blog/2025/2025-03-04_kde-6-3-gui-all.jpg)
_screenshot of the tablet system settings of Plasma 6.3_
### On GNOME Wayland
Once the udev-hid-bpf rules are correctly installed, GNOME will still need more info: a .tablet file and a .svg layout from https://github.com/linuxwacom/libwacom/tree/master/data because the graphical user interface requires such files. Future release of libwacom will get those files by default, but waiting for the future release, you can install them manually. Because without it, the tablet in the system settings will [look like that](data/images/blog/2025/2025-03-04_gnome_ui.jpg) and it's not useful.
- Download [the .tablet file here](https://github.com/linuxwacom/libwacom/blob/450748bb1c37b34823644fa781ee4264c7f86334/data/xp-pen-deco01-v3.tablet)
- Download [the layout .svg here](https://github.com/linuxwacom/libwacom/blob/450748bb1c37b34823644fa781ee4264c7f86334/data/layouts/xp-pen-deco01-v2.svg)
Then copy the .tablet file in `/usr/share/libwacom/` and the layout in `/usr/share/libwacom/layout/` , after a reboot you'll get the control for your tablet.
**Notes:**
- It works for the **Wayland session only** and on GNOME superior to 47.4
- The GNOME user inteface for tablet configuration is basic: no possibilities to assign a Ctrl, Alt or Shift modifier to the stylus button and there is no pressure curves.
[](data/images/blog/2025/2025-03-07_gnome-ui_update1_net.jpg)
_The GUI overlay to edit button, the SVG layout is required for this._
[](data/images/blog/2025/2025-03-07_gnome-ui_update2.jpg)
_Assigning a keystroke to a stylus button_
[](data/images/blog/2025/2025-03-07_gnome-ui_update3.jpg)
_screenshot of the tablet system settings of GNOME 47.4 Wayland (Fedora)_
### On X11
That's the method I used for the demo video on [My Debian KDE Plasma 12](https://www.davidrevoy.com/article1030/debian-12-kde-plasma-2024-install-guide), and what I would recommend. But it's not user friendly with the command line and the creation of the script, and X11 is in end of life so I understand if newcomers to GNU/Linux don't feel motivated to learn a practice that might become totally obsolete in the next two years from now.
Once the udev-hid-bpf rules are correctly installed, you'll be able to control the basic features of the tablet by command lines using xsetwacom utility. First, find the ID of your device:
```
$ lsusb
Bus 001 Device 008: ID 28bd:0947 XP-Pen Deco 01 V3
```
Then create (or edit) the file `/usr/share/X11/xorg.conf.d/60-xppen.conf` and put inside this paragraph, with the `MatchUSBID` identifier you found previously.
```
Section "InputClass"
Identifier "XP-Pen Deco 01 V3"
MatchIsTablet "on"
Driver "wacom"
MatchUSBID "28bd:0947"
MatchDevicePath "/dev/input/event*"
EndSection
```
Then reboot.
At this point, you should see your XPPen tablet stylus and pad listed if you write in a terminal:
```
$ xsetwacom --list
```
Bravo! Xsetwacom utility is now in charge of your tablet.
### Create an Xsetwacom script
Open a non-rich text editor (eg. Micro, Kate, Geany, Gnome text also called Gedit, etc...) and copy/paste/adjust the script under:
```
#! /bin/bash
# ----------------
# XP-Pen Deco 01v3
# ----------------
# 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="UGTABLET Deco 01 V3 Pen stylus"
tableteraser="UGTABLET Deco 01 V3 Pen eraser"
tabletpad="UGTABLET Deco 01 V3 pad"
# 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...).
# Note: you might need to make some math here if the ratio is not the same than your monitor
output="HDMI-A-0"
xsetwacom --set "$tabletstylus" MapToOutput $output
xsetwacom --set "$tableteraser" MapToOutput $output
# 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 50 45 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 (not: it doesn't work right now, it will be an eraser mode)
#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
# Buttons from top to bottom:
# +-----+
# | 1 |
# +-----+
# | 2 |
# +-----+
# | 3 |
# +-----+
# | 8 |
# +-----+
#
# +-----+
# | 9 |
# +-----+
# | 10 |
# +-----+
# | 11 |
# +-----+
# | 12 |
# +-----+
xsetwacom set "$tabletpad" button 1 "key Control_L" # Ctrl = color picker
xsetwacom set "$tabletpad" button 2 "key KP_Divide" # / = Switch to previous used brush preset
xsetwacom set "$tabletpad" button 3 "key Shift_L" # Shift = Resize brush
xsetwacom set "$tabletpad" button 8 "key v" # v = line
xsetwacom set "$tabletpad" button 9 "key m" # m = mirror
xsetwacom set "$tabletpad" button 10 "key e" # e = eraser
xsetwacom set "$tabletpad" button 11 "key r" # r = pick layer
xsetwacom set "$tabletpad" button 12 "key Ctrl z" # Ctrl+z = undo
```
Save your script under the name of your choice, I saved mine as xppen_Deco-01-v3.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_Deco-01-v3.sh
```
Now, if you run:
```
./xppen_Deco-01-v3.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.
## 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 threads mentionned in this article or via email.
**Idea of contribution:**
- A better .svg file for libwacom project: the current one is basic, and a drawing of the device and rounded button could look so much better.
WRITTEN_BY David REVOY -
-
200 comments
After using their browser for over 20 years, it's painful to admit, but I've grown tired of Mozilla. The recent debacle around their [TOS update](https://arstechnica.com/tech-policy/2025/02/firefox-deletes-promise-to-never-sell-personal-data-asks-users-not-to-panic/), their [departure from the Fediverse](https://techcrunch.com/2024/09/17/mozilla-exits-the-fediverse-and-will-shutter-its-mastodon-server-in-december/), and their apparent embrace of AI bro culture and corporate marketing have made my Firefox icon feel increasingly out of place on my GNU/Linux OS.
I decided to search for alternatives, but unfortunately, there aren't many options available. You're mostly limited to Chrome derivatives or Firefox derivatives. However, I stumbled upon [LibreWolf](https://librewolf.net/), a fork of Firefox that caught my attention. LibreWolf is described as "A custom version of Firefox, focused on privacy, security and freedom" which resonates with me.
Installing LibreWolf on [my Debian](https://www.davidrevoy.com/article1030/debian-12-kde-plasma-2024-install-guide) was surprisingly simple, and migrating my profile was as easy as copying the contents of my ~/.mozilla/firefox preferences into the active profile of ~/.librewolf. It felt like home, as it's essentially Firefox.
However, I encountered an issue while configuring it to my liking, and after struggling for more than 1 hour, I was on the verge of giving up. Fortunately, I found [a solution](https://codeberg.org/librewolf/issues/issues/1434#issuecomment-2908567) to my DRM issue thanks to the help of Cherryband in the Pepper&Carrot chat room.
One thing to keep in mind if you're considering trying LibreWolf is that it has all security and privacy options enabled by default, which may not be the most user-friendly experience. You won't be pampered with a one-click installation for all. Instead, you'll need to take the time to review the documentation and set up the security and privacy features that you're willing to trade off for comfort and convenience.
So far, the experience has been educational, and I'll see if I decide to stick with LibreWolf in the long term.
[Comic source here](https://www.peppercarrot.com/en/viewer/misc__2025-02-27_How-my-Firefox-became-a-LibreWolf_by-David-Revoy.html)