Graphics tablet pen buttons are not working correctly after upgrading to Fedora 41

I have a USB graphics tablet, XP-Pen Deco Fun L. Recently, I have upgraded to Fedora Workstation 41 which is using Gnome 47. Currently, mutter version is 47.1. Now, both of the two tablet pen buttons are assigned to mouse left click. Remapping them with OpenTabletDriver or XP-Pen’s official driver doesn’t do anything. Remapping buttons worked fine before upgrading. Currently, I don’t know where and what is the problem. I also don’t know what to do now.

3 Likes

After an update today. One of the two buttons started working.

I think I have the same problem with a Lenovo Digital Pen 2 on the Touchscreen HID 52C7. Since upgrading to Fedora 41, Button 1 seems to be remapped to a click or a slight pressure event.

1 Like

I have the same issue. I agree with your analysis: the buttons trigger a slight press event. If I hover my cursor over a button on my screen and click the button on my pen, it triggers the action. If I am drawing and I hold the button, the pen stops leaving a trail. If I release the button, everything returns to normal instantly.

I have a Huion graphical tablet, and both of the buttons remain affected with the newest update.

I’m using a Galaxy Book 3 360 and encountered the same issue with the S Pen button mapping not working correctly. I managed to fix it with a workaround:

  1. Log out of your account.
  2. On the login screen, click the bottom-right corner and select GNOME with Xorg as your session type and log back in.

This resolved the issue for me. However, there are a couple of drawbacks:

  • GNOME with Xorg may have reduced performance compared to Wayland (although I haven’t personally noticed any issues yet).
  • You’ll need to install an extention like X11 Gestures to regain touchpad gesture functionality.

While not a perfect solution, it works for now!

1 Like

@whot maybe knows more, he’s involved with components relevant to this

first thing to check: which button does the kernel provide when you click it? libinput record will show that, e.g. as BTN_STYLUS or BTN_STYLUS2.

If that’s the case then at least the kernel driver is working, if not then that’s where the underlying issue.

Second stop is libinput: libinput debug-events - check if the button is forwarded correctly. If that works, then the issue is with the remapping in mutter.

The gsetwacom tool can help dump the configuration so it’s easier to analyse: run gsetwacom list-styli and then gsetwacom stylus XXXX show with XXX being your stylus identifier (probably default-1234:abcd or your serial number but the huions/xp-pens don’t have those)

With that we’ll know what’s configured which means we’ll then know where the button mapping goes wrong.

Here is what I get after running the commands.

Command = libinput record

Output
Recording to 'stdout'.
# libinput record
version: 1
ndevices: 1
libinput:
  version: "1.27.0"
  git: "unknown"
system:
  os: "fedora:41"
  kernel: "6.11.10-300.fc41.x86_64"
  dmi: "dmi:bvnHP:bvrS71Ver.01.22.01:bd08/23/2024:br22.1:efr2.61:svnHP:pnHPProBook440G7:pvrSBKPF:rvnHP:rn869D:rvrKBCVersion02.3D.00:cvnHP:ct10:cvr:sku2S7D2PC#UUF:"
devices:
- node: /dev/input/event7
  evdev:
    # Name: UGTABLET 10 inch PenTablet
    # ID: bus 0x0003 (usb) vendor 0x28bd product 0x0932 version 0x0100
    # Size in mm: 254x159
    # Supported Events:
    # Event type 0 (EV_SYN)
    # Event type 1 (EV_KEY)
    #   Event code 320 (BTN_TOOL_PEN)
    #   Event code 321 (BTN_TOOL_RUBBER)
    #   Event code 330 (BTN_TOUCH)
    #   Event code 331 (BTN_STYLUS)
    # Event type 3 (EV_ABS)
    #   Event code 0 (ABS_X)
    #       Value       13440
    #       Min             0
    #       Max         32767
    #       Fuzz            0
    #       Flat            0
    #       Resolution    129
    #   Event code 1 (ABS_Y)
    #       Value        8905
    #       Min             0
    #       Max         32767
    #       Fuzz            0
    #       Flat            0
    #       Resolution    206
    #   Event code 24 (ABS_PRESSURE)
    #       Value           0
    #       Min             0
    #       Max          8191
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 26 (ABS_TILT_X)
    #       Value          60
    #       Min          -127
    #       Max           127
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 27 (ABS_TILT_Y)
    #       Value          60
    #       Min          -127
    #       Max           127
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    # Event type 4 (EV_MSC)
    #   Event code 4 (MSC_SCAN)
    # Properties:
    #    Property 1 (INPUT_PROP_DIRECT)
    name: "UGTABLET 10 inch PenTablet"
    id: [3, 10429, 2354, 256]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      1: [320, 321, 330, 331] # EV_KEY
      3: [0, 1, 24, 26, 27] # EV_ABS
      4: [4] # EV_MSC
    absinfo:
      0: [0, 32767, 0, 0, 129]
      1: [0, 32767, 0, 0, 206]
      24: [0, 8191, 0, 0, 0]
      26: [-127, 127, 0, 0, 0]
      27: [-127, 127, 0, 0, 0]
    properties: [1]
  hid: [
    0x05, 0x0d, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x07, 0x09, 0x20, 0xa1, 0x00, 0x09, 0x42, 0x09, 0x44, 
    0x09, 0x45, 0x09, 0x3c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x04, 0x81, 0x02, 0x95, 0x01, 
    0x81, 0x03, 0x09, 0x32, 0x95, 0x01, 0x81, 0x02, 0x95, 0x02, 0x81, 0x03, 0x75, 0x10, 0x95, 0x01, 
    0x35, 0x00, 0xa4, 0x05, 0x01, 0x09, 0x30, 0x65, 0x13, 0x55, 0x0d, 0x46, 0x24, 0x27, 0x26, 0xff, 
    0x7f, 0x81, 0x02, 0x09, 0x31, 0x46, 0x80, 0x18, 0x26, 0xff, 0x7f, 0x81, 0x02, 0xb4, 0x09, 0x30, 
    0x45, 0x00, 0x26, 0xff, 0x1f, 0x81, 0x42, 0x09, 0x3d, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 
    0x01, 0x81, 0x02, 0x09, 0x3e, 0x15, 0x81, 0x25, 0x7f, 0x81, 0x02, 0xc0, 0xc0
  ]
  udev:
    properties:
    - ID_INPUT=1
    - ID_INPUT_HEIGHT_MM=159
    - ID_INPUT_TABLET=1
    - ID_INPUT_WIDTH_MM=254
    - LIBINPUT_DEVICE_GROUP=3/28bd/932:usb-0000:00:14.0-1
    - DRIVER=hid-generic
  quirks:
  events:
  # Current time is 23:31:58
  - evdev:
    - [  0,      0,   3,   0,   13407] # EV_ABS / ABS_X                 13407 (-33)
    - [  0,      0,   3,   1,    8900] # EV_ABS / ABS_Y                  8900 (-5)
    - [  0,      0,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0,   8097,   3,   0,   13374] # EV_ABS / ABS_X                 13374 (-33)
    - [  0,   8097,   3,   1,    8885] # EV_ABS / ABS_Y                  8885 (-15)
    - [  0,   8097,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  0,  12032,   1, 320,       0] # EV_KEY / BTN_TOOL_PEN              0
    - [  0,  12032,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  12044,   3,  26,       0] # EV_ABS / ABS_TILT_X                0 (-60)
    - [  0,  12044,   3,  27,       0] # EV_ABS / ABS_TILT_Y                0 (-60)
    - [  0,  12044,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0,  76337,   1, 320,       1] # EV_KEY / BTN_TOOL_PEN              1
    - [  0,  76337,   3,   0,   13390] # EV_ABS / ABS_X                 13390 (+16)
    - [  0,  76337,   3,   1,    8879] # EV_ABS / ABS_Y                  8879 (-6)
    - [  0,  76337,   3,  26,      60] # EV_ABS / ABS_TILT_X               60 (+60)
    - [  0,  76337,   3,  27,      60] # EV_ABS / ABS_TILT_Y               60 (+60)
    - [  0,  76337,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +64ms
  - evdev:
    - [  0,  88039,   3,   0,   13406] # EV_ABS / ABS_X                 13406 (+16)
    - [  0,  88039,   3,   1,    8885] # EV_ABS / ABS_Y                  8885 (+6)
    - [  0,  88039,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +12ms
  - evdev:
    - [  0, 108050,   3,   0,   13424] # EV_ABS / ABS_X                 13424 (+18)
    - [  0, 108050,   3,   1,    8882] # EV_ABS / ABS_Y                  8882 (-3)
    - [  0, 108050,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +20ms
  - evdev:
    - [  0, 124042,   3,   0,   13434] # EV_ABS / ABS_X                 13434 (+10)
    - [  0, 124042,   3,   1,    8867] # EV_ABS / ABS_Y                  8867 (-15)
    - [  0, 124042,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  0, 344240,   3,   0,   13437] # EV_ABS / ABS_X                 13437 (+3)
    - [  0, 344240,   3,   1,    8897] # EV_ABS / ABS_Y                  8897 (+30)
    - [  0, 344240,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +220ms
  # Current time is 23:32:01
  - evdev:
    - [  5,  72269,   1, 320,       0] # EV_KEY / BTN_TOOL_PEN              0
    - [  5,  72269,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4728ms
  - evdev:
    - [  5,  72290,   3,  26,       0] # EV_ABS / ABS_TILT_X                0 (-60)
    - [  5,  72290,   3,  27,       0] # EV_ABS / ABS_TILT_Y                0 (-60)
    - [  5,  72290,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  5, 196298,   1, 320,       1] # EV_KEY / BTN_TOOL_PEN              1
    - [  5, 196298,   3,   0,   13389] # EV_ABS / ABS_X                 13389 (-48)
    - [  5, 196298,   3,   1,    8880] # EV_ABS / ABS_Y                  8880 (-17)
    - [  5, 196298,   3,  26,      60] # EV_ABS / ABS_TILT_X               60 (+60)
    - [  5, 196298,   3,  27,      60] # EV_ABS / ABS_TILT_Y               60 (+60)
    - [  5, 196298,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +124ms
  - evdev:
    - [  5, 208024,   3,   0,   13403] # EV_ABS / ABS_X                 13403 (+14)
    - [  5, 208024,   3,   1,    8886] # EV_ABS / ABS_Y                  8886 (+6)
    - [  5, 208024,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +12ms
  - evdev:
    - [  5, 228196,   3,   0,   13421] # EV_ABS / ABS_X                 13421 (+18)
    - [  5, 228196,   3,   1,    8884] # EV_ABS / ABS_Y                  8884 (-2)
    - [  5, 228196,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +20ms
  - evdev:
    - [  5, 240050,   3,   0,   13430] # EV_ABS / ABS_X                 13430 (+9)
    - [  5, 240050,   3,   1,    8874] # EV_ABS / ABS_Y                  8874 (-10)
    - [  5, 240050,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +12ms
  - evdev:
    - [  5, 252059,   3,   0,   13433] # EV_ABS / ABS_X                 13433 (+3)
    - [  5, 252059,   3,   1,    8858] # EV_ABS / ABS_Y                  8858 (-16)
    - [  5, 252059,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +12ms
  - evdev:
    - [  5, 368090,   3,   0,   13434] # EV_ABS / ABS_X                 13434 (+1)
    - [  5, 368090,   3,   1,    8890] # EV_ABS / ABS_Y                  8890 (+32)
    - [  5, 368090,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +116ms
  # Current time is 23:32:06

Command = libinput debug-events

Output
-event3   DEVICE_ADDED                Power Button                      seat0 default group1  cap:k
-event10  DEVICE_ADDED                Video Bus                         seat0 default group2  cap:k
-event2   DEVICE_ADDED                Power Button                      seat0 default group3  cap:k
-event1   DEVICE_ADDED                Lid Switch                        seat0 default group4  cap:S
-event0   DEVICE_ADDED                Sleep Button                      seat0 default group5  cap:k
-event5   DEVICE_ADDED                UGTABLET 10 inch PenTablet Mouse  seat0 default group6  cap:p left scroll-nat calib
-event6   DEVICE_ADDED                UGTABLET 10 inch PenTablet Keyboard seat0 default group6  cap:k
-event7   DEVICE_ADDED                UGTABLET 10 inch PenTablet        seat0 default group6  cap:T  size 254x159mm left calib
-event8   DEVICE_ADDED                SYNA30A5:00 06CB:CDEB Mouse       seat0 default group7  cap:p left scroll-nat scroll-button
-event9   DEVICE_ADDED                SYNA30A5:00 06CB:CDEB Touchpad    seat0 default group7  cap:pg  size 106x61mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on dwtp-on
-event4   DEVICE_ADDED                AT Translated Set 2 keyboard      seat0 default group8  cap:k
-event11  DEVICE_ADDED                Wireless hotkeys                  seat0 default group9  cap:k
-event13  DEVICE_ADDED                HP WMI hotkeys                    seat0 default group10 cap:k
-event7   TABLET_TOOL_PROXIMITY       +0.000s		0.00/0.00	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_PROXIMITY       +0.000s		0.00/0.00	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +0.000s		97.26*/53.13*	tilt: 30.24*/30.24*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_PROXIMITY       +0.004s		97.26/53.13	tilt: 30.24/30.24	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +0.076s		97.28*/68.87*	tilt: 30.24*/30.24*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_BUTTON          +0.076s	331 (BTN_STYLUS) pressed, seat count: 1
 event7   TABLET_TOOL_AXIS            +0.080s		97.28/68.87	tilt: 30.24/29.61*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          2 +0.084s		97.28/68.87	tilt: 30.24/27.59*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          3 +0.092s		97.28/68.87	tilt: 30.24/24.69*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          4 +0.096s		97.28/68.87	tilt: 30.24/21.29*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          5 +0.100s		97.28/68.87	tilt: 30.24/18.02*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          6 +0.104s		97.28/68.87	tilt: 30.24/15.62*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          7 +0.108s		97.28/68.87	tilt: 30.24/13.73*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          8 +0.112s		97.28/68.87	tilt: 30.24/11.97*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          9 +0.116s		97.28/68.87	tilt: 30.24/10.08*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         10 +0.120s		97.28/68.87	tilt: 30.24/8.31*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         11 +0.128s		97.28/68.87	tilt: 30.24/6.68*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         12 +0.132s		97.28/68.87	tilt: 30.24/5.17*	pressure: 0.00
 event7   TABLET_TOOL_BUTTON          +0.156s	331 (BTN_STYLUS) released, seat count: 0
 event7   TABLET_TOOL_PROXIMITY       +0.156s		97.28/68.87	tilt: 30.24/3.53	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +0.196s		117.49*/68.83*	tilt: 30.24*/1.51*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_AXIS            +0.200s		117.70*/68.83*	tilt: 30.24/1.13*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          2 +0.204s		117.96*/68.83*	tilt: 30.24/0.76	pressure: 0.00
 event7   TABLET_TOOL_AXIS          3 +0.208s		118.23*/68.83	tilt: 29.61*/0.38	pressure: 0.00
 event7   TABLET_TOOL_AXIS          4 +0.212s		118.53*/68.83*	tilt: 27.84*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          5 +0.220s		118.64*/68.84*	tilt: 24.82*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          6 +0.224s		118.67*/68.84	tilt: 20.91*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          7 +0.228s		118.71*/68.84*	tilt: 16.76*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          8 +0.232s		118.73*/68.85*	tilt: 12.72*/0.00	pressure: 0.00
 event7   TABLET_TOOL_PROXIMITY       +0.236s		118.82/68.88	tilt: 7.06/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +0.300s		97.38*/68.67*	tilt: 18.14*/0.00*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_AXIS            +0.304s		99.86*/68.69*	tilt: 20.16*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          2 +0.308s		103.33*/68.71*	tilt: 20.91*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          3 +0.312s		107.46*/68.74*	tilt: 20.66*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          4 +0.316s		111.91*/68.78*	tilt: 19.53*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          5 +0.320s		114.05*/68.80*	tilt: 15.50*/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS          6 +0.324s		115.34*/68.81*	tilt: 12.47*/-0.25*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          7 +0.328s		116.06*/68.82*	tilt: 12.22*/-5.67*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          8 +0.332s		116.53*/68.83*	tilt: 11.97*/-13.23*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          9 +0.340s		115.07*/66.87*	tilt: 11.72*/-20.79	pressure: 0.00
 event7   TABLET_TOOL_AXIS         10 +0.344s		112.45*/63.68*	tilt: 14.24*/-27.97*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         11 +0.348s		109.05*/59.69*	tilt: 16.76*/-28.09*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         12 +0.352s		105.10*/55.16*	tilt: 21.17*/-24.94*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         13 +0.356s		102.57*/52.26*	tilt: 26.46/-21.04*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         14 +0.360s		100.92*/50.40*	tilt: 29.23/-16.38*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         15 +0.364s		99.86*/49.25*	tilt: 30.24/-12.47*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         16 +0.368s		99.20*/48.56*	tilt: 30.24/-8.69*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         17 +0.372s		98.81*/48.18*	tilt: 30.24/-5.04*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         18 +0.376s		98.55*/47.93*	tilt: 30.24/-2.27	pressure: 0.00
 event7   TABLET_TOOL_AXIS         19 +0.384s		98.36*/47.75*	tilt: 30.24/-0.63	pressure: 0.00
 event7   TABLET_TOOL_AXIS         20 +0.388s		98.22*/47.61*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         21 +0.392s		98.09*/47.49*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         22 +0.396s		97.99*/47.37*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         23 +0.400s		97.90*/47.27*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         24 +0.404s		97.82*/47.18*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         25 +0.408s		97.75*/47.10*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         26 +0.424s		97.67*/47.01*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         27 +0.444s		97.59*/46.93*	tilt: 30.24/0.00	pressure: 0.00
 event7   TABLET_TOOL_AXIS         28 +0.460s		97.52*/46.85*	tilt: 30.24/0.25*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         29 +0.468s		97.47*/46.80*	tilt: 30.24/5.04*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         30 +0.472s		97.45*/46.77*	tilt: 30.24/12.22*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         31 +0.476s		97.45/46.77	tilt: 30.24/19.78*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         32 +0.480s		97.42*/46.75*	tilt: 30.24/27.09	pressure: 0.00
 event7   TABLET_TOOL_AXIS         33 +0.572s		97.38*/46.69*	tilt: 30.24/29.86	pressure: 0.00
 event7   TABLET_TOOL_AXIS         34 +1.596s		96.67*/48.25*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_PROXIMITY       +1.600s		94.64/52.99	tilt: 30.24/30.24	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +1.660s		96.93*/68.70*	tilt: 30.24*/30.24*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_AXIS            +1.664s		99.47*/65.88*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS          2 +1.672s		101.12*/63.72*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS          3 +1.676s		102.24*/62.29*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_PROXIMITY       +1.708s		101.41/62.95	tilt: 30.24/30.24	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +1.740s		97.07*/68.81*	tilt: 30.24*/30.24*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event7   TABLET_TOOL_AXIS            +1.744s		99.62*/68.81*	tilt: 30.24/29.61*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          2 +1.748s		103.16*/68.82*	tilt: 30.24/27.34*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          3 +1.752s		107.35*/68.83*	tilt: 30.24/24.19*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          4 +1.756s		111.86*/68.83*	tilt: 29.23*/20.41*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          5 +1.764s		114.01*/68.84*	tilt: 26.83*/16.38*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          6 +1.768s		115.29*/68.84*	tilt: 23.43*/13.23*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          7 +1.772s		116.02*/68.85*	tilt: 19.15*/9.95*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          8 +1.776s		116.49*/68.86*	tilt: 15.12*/6.55*	pressure: 0.00
 event7   TABLET_TOOL_AXIS          9 +1.780s		116.83*/68.87*	tilt: 11.46*/3.65*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         10 +1.784s		115.29*/66.90*	tilt: 7.94*/3.15*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         11 +1.788s		112.61*/63.72*	tilt: 8.69*/6.55*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         12 +1.792s		109.16*/59.73*	tilt: 12.22*/12.85*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         13 +1.796s		105.14*/55.20*	tilt: 17.89*/20.41*	pressure: 0.00
 event7   TABLET_TOOL_AXIS         14 +1.800s		102.56*/52.31*	tilt: 24.82*/26.33	pressure: 0.00
 event7   TABLET_TOOL_AXIS         15 +1.808s		100.87*/50.46*	tilt: 28.35/29.35	pressure: 0.00
 event7   TABLET_TOOL_AXIS         16 +1.812s		99.79*/49.30*	tilt: 29.86/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         17 +1.816s		99.12*/48.61*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         18 +1.820s		98.74*/48.22*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         19 +1.824s		98.50*/47.97*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         20 +1.828s		98.32*/47.78*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         21 +1.832s		98.17*/47.63*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         22 +1.836s		98.05*/47.50*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         23 +1.840s		97.95*/47.39*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         24 +1.848s		97.87*/47.28*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         25 +1.852s		97.79*/47.19*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         26 +1.860s		97.72*/47.10*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         27 +1.872s		97.64*/47.01*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         28 +1.900s		97.57*/46.91*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         29 +1.940s		97.48*/46.81*	tilt: 30.24/30.24	pressure: 0.00
 event7   TABLET_TOOL_AXIS         30 +2.120s		97.39*/46.70*	tilt: 30.24/30.24	pressure: 0.00
-event4   KEYBOARD_KEY                +3.646s	*** (-1) pressed
 event4   KEYBOARD_KEY                +4.001s	*** (-1) pressed

Command = gsetwacom list-styli

Output
No styli found

Command = gsetwacom stylus 28bd:0932 show

Output
settings:
  pressure-curve: [0, 0, 100, 100]
  eraser-pressure-curve: [0, 0, 100, 100]
  pressure-range: [0, 100]
  eraser-pressure-range: [0, 100]
  button-action: 'right'
  secondary-button-action: 'middle'
  tertiary-button-action: 'default'
  button-keybinding: ''
  secondary-button-keybinding: ''
  tertiary-button-keybinding: ''

Looks like the pen button doesn’t send any events at all then because I can’t see anything but tablet axis (==motion) and proximity events in the libinput record output. This indicates that either the device broke or something in the kernel is now broken.

Please file a bug with udev-hid-bpf and we can see if we can fix this at the kernel level.

I don’t think it’s the kernel because in the first output above you can see

- evdev:
    - [  0,  12032,   1, 320,       0] # EV_KEY / BTN_TOOL_PEN              0
    - [  0,  12032,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms

and moreover the debug-events one does show the button being pressed at the very end of some lines, for instance

 event7   TABLET_TOOL_PROXIMITY       +1.600s		94.64/52.99	tilt: 30.24/30.24	pressure: 0.00	pen      (0, id 0) proximity-out 
 event7   TABLET_TOOL_PROXIMITY       +1.660s		96.93*/68.70*	tilt: 30.24*/30.24*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S

In my machine, running libinput debug-events, the eraser gets labeled as TABLET_TOOL_PROXIMITY, and the secondary button gets labeled as TABLET_TOOL_BUTTON, even though the eraser works as expected but the secondary button does not.

BTN_TOOL_PEN is a fake button set by the kernel and set on every proximity in event. It simply denotes that the current thing in proximity is a pen as opposed to e.g. BTN_TOOL_FINGER which is set by touchpads for example.

The buttons on your pen are BTN_STYLUS and BTN_STYLUS2 if they are true buttons. On many pens one of the buttons is the eraser and causes an emulated sequence of proximity-out, proximity-back-in-as-eraser when pressed thanks to the MS specs.

Hi, It seems that I have a similar problem on my XPPen Artist (2nd gen).
Everything works fine except the button 2 since an update on Fedora 41 on Gnome settings or proprietary driver :confused:
I can’t remap it and it acts like an eraser in some apps.

Has anyone found a solution? Should I report the issue somewhere? :slight_smile:
(It seems to be labeled as TABLET_TOOL_PROXIMITY on libinput debug-events)

Command = libinput record

Output
libinput:
  version: "1.27.0"
  git: "unknown"
system:
  os: "fedora:41"
  kernel: "6.12.4-200.fc41.x86_64"
  dmi: "dmi:bvnAmericanMegatrendsInternational,LLC.:bvr1.10:bd05/24/2023:br5.26:svnTOPACHAT:pnCUSTOM:pvrV1:rvnMicro-StarInternationalCo.,Ltd.:rnPROB650M-P(MS-7E27):rvr1.0:cvnMicro-StarInternationalCo.,Ltd.:ct3:cvr1.0:skuCUSTOM:"
devices:
- node: /dev/input/event4
  evdev:
    # Name: UGTABLET 21.5 inch PenDisplay Stylus
    # ID: bus 0x0003 (usb) vendor 0x28bd product 0x092f version 0x0100
    # Size in mm: 476x267
    # Supported Events:
    # Event type 0 (EV_SYN)
    # Event type 1 (EV_KEY)
    #   Event code 320 (BTN_TOOL_PEN)
    #   Event code 321 (BTN_TOOL_RUBBER)
    #   Event code 330 (BTN_TOUCH)
    #   Event code 331 (BTN_STYLUS)
    # Event type 3 (EV_ABS)
    #   Event code 0 (ABS_X)
    #       Value       14423
    #       Min             0
    #       Max         47664
    #       Fuzz            0
    #       Flat            0
    #       Resolution    100
    #   Event code 1 (ABS_Y)
    #       Value       21358
    #       Min             0
    #       Max         26778
    #       Fuzz            0
    #       Flat            0
    #       Resolution    100
    #   Event code 24 (ABS_PRESSURE)
    #       Value           0
    #       Min             0
    #       Max          8191
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 26 (ABS_TILT_X)
    #       Value           0
    #       Min          -127
    #       Max           127
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 27 (ABS_TILT_Y)
    #       Value           0
    #       Min          -127
    #       Max           127
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    # Event type 4 (EV_MSC)
    #   Event code 4 (MSC_SCAN)
    # Properties:
    #    Property 1 (INPUT_PROP_DIRECT)
    name: "UGTABLET 21.5 inch PenDisplay Stylus"
    id: [3, 10429, 2351, 256]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      1: [320, 321, 330, 331] # EV_KEY
      3: [0, 1, 24, 26, 27] # EV_ABS
      4: [4] # EV_MSC
    absinfo:
      0: [0, 47664, 0, 0, 100]
      1: [0, 26778, 0, 0, 100]
      24: [0, 8191, 0, 0, 0]
      26: [-127, 127, 0, 0, 0]
      27: [-127, 127, 0, 0, 0]
    properties: [1]
  hid: [
    0x05, 0x0d, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x07, 0x09, 0x20, 0xa1, 0x00, 0x09, 0x42, 0x09, 0x44, 
    0x09, 0x45, 0x09, 0x3c, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x04, 0x81, 0x02, 0x95, 0x01, 
    0x81, 0x03, 0x09, 0x32, 0x95, 0x01, 0x81, 0x02, 0x95, 0x02, 0x81, 0x03, 0x75, 0x10, 0x95, 0x01, 
    0x35, 0x00, 0xa4, 0x05, 0x01, 0x09, 0x30, 0x65, 0x13, 0x55, 0x0d, 0x46, 0x3e, 0x49, 0x27, 0x30, 
    0xba, 0x00, 0x00, 0x81, 0x02, 0x09, 0x31, 0x46, 0x36, 0x29, 0x26, 0x9a, 0x68, 0x81, 0x02, 0xb4, 
    0x09, 0x30, 0x45, 0x00, 0x26, 0xff, 0x1f, 0x81, 0x42, 0x09, 0x3d, 0x15, 0x81, 0x25, 0x7f, 0x75, 
    0x08, 0x95, 0x01, 0x81, 0x02, 0x09, 0x3e, 0x15, 0x81, 0x25, 0x7f, 0x81, 0x02, 0xc0, 0xc0, 0x06, 
    0x03, 0xff, 0x09, 0x00, 0xa1, 0x01, 0x85, 0x0b, 0x15, 0x00, 0x26, 0xff, 0x00, 0x09, 0x00, 0x75, 
    0x08, 0x95, 0x3f, 0x81, 0x02, 0xc0
  ]
  udev:
    properties:
    - ID_INPUT=1
    - ID_INPUT_HEIGHT_MM=267
    - ID_INPUT_TABLET=1
    - ID_INPUT_WIDTH_MM=476
    - LIBINPUT_DEVICE_GROUP=3/28bd/92f:usb-0000:12:00.4-2
    - DRIVER=hid-generic
  quirks:
  events:
  # Current time is 20:25:29
  - evdev:
    - [  0,      0,   1, 320,       1] # EV_KEY / BTN_TOOL_PEN              1
    - [  0,      0,   3,   0,   19073] # EV_ABS / ABS_X                 19073 (+4650)
    - [  0,      0,   3,   1,   19405] # EV_ABS / ABS_Y                 19405 (-1953)
    - [  0,      0,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0,   3981,   3,   0,   19089] # EV_ABS / ABS_X                 19089 (+16)
    - [  0,   3981,   3,   1,   19395] # EV_ABS / ABS_Y                 19395 (-10)
    - [  0,   3981,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +3ms
  - evdev:
    - [  0,   7970,   3,   0,   19097] # EV_ABS / ABS_X                 19097 (+8)
    - [  0,   7970,   3,   1,   19386] # EV_ABS / ABS_Y                 19386 (-9)
    - [  0,   7970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  11969,   3,   0,   19104] # EV_ABS / ABS_X                 19104 (+7)
    - [  0,  11969,   3,   1,   19382] # EV_ABS / ABS_Y                 19382 (-4)
    - [  0,  11969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  15968,   3,   0,   19113] # EV_ABS / ABS_X                 19113 (+9)
    - [  0,  15968,   3,   1,   19378] # EV_ABS / ABS_Y                 19378 (-4)
    - [  0,  15968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  19970,   3,   0,   19119] # EV_ABS / ABS_X                 19119 (+6)
    - [  0,  19970,   3,   1,   19376] # EV_ABS / ABS_Y                 19376 (-2)
    - [  0,  19970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  23966,   3,   0,   19125] # EV_ABS / ABS_X                 19125 (+6)
    - [  0,  23966,   3,   1,   19375] # EV_ABS / ABS_Y                 19375 (-1)
    - [  0,  23966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  31977,   3,   0,   19130] # EV_ABS / ABS_X                 19130 (+5)
    - [  0,  31977,   3,   1,   19374] # EV_ABS / ABS_Y                 19374 (-1)
    - [  0,  31977,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  0,  35975,   3,   0,   19135] # EV_ABS / ABS_X                 19135 (+5)
    - [  0,  35975,   3,   1,   19375] # EV_ABS / ABS_Y                 19375 (+1)
    - [  0,  35975,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  39967,   3,   0,   19138] # EV_ABS / ABS_X                 19138 (+3)
    - [  0,  39967,   3,   1,   19377] # EV_ABS / ABS_Y                 19377 (+2)
    - [  0,  39967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  55978,   3,   0,   19147] # EV_ABS / ABS_X                 19147 (+9)
    - [  0,  55978,   3,   1,   19403] # EV_ABS / ABS_Y                 19403 (+26)
    - [  0,  55978,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  0,  71975,   3,   0,   19149] # EV_ABS / ABS_X                 19149 (+2)
    - [  0,  71975,   3,   1,   19438] # EV_ABS / ABS_Y                 19438 (+35)
    - [  0,  71975,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  0,  84192,   3,   0,   19152] # EV_ABS / ABS_X                 19152 (+3)
    - [  0,  84192,   3,   1,   19473] # EV_ABS / ABS_Y                 19473 (+35)
    - [  0,  84192,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +13ms
  - evdev:
    - [  0, 100026,   3,   0,   19158] # EV_ABS / ABS_X                 19158 (+6)
    - [  0, 100026,   3,   1,   19503] # EV_ABS / ABS_Y                 19503 (+30)
    - [  0, 100026,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  0, 111968,   3,   0,   19168] # EV_ABS / ABS_X                 19168 (+10)
    - [  0, 111968,   3,   1,   19532] # EV_ABS / ABS_Y                 19532 (+29)
    - [  0, 111968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +11ms
  - evdev:
    - [  0, 127978,   3,   0,   19178] # EV_ABS / ABS_X                 19178 (+10)
    - [  0, 127978,   3,   1,   19555] # EV_ABS / ABS_Y                 19555 (+23)
    - [  0, 127978,   3,  26,       1] # EV_ABS / ABS_TILT_X                1 (+1)
    - [  0, 127978,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  0, 131967,   3,  26,       2] # EV_ABS / ABS_TILT_X                2 (+1)
    - [  0, 131967,   3,  27,       2] # EV_ABS / ABS_TILT_Y                2 (+2)
    - [  0, 131967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 135968,   3,  26,       3] # EV_ABS / ABS_TILT_X                3 (+1)
    - [  0, 135968,   3,  27,       3] # EV_ABS / ABS_TILT_Y                3 (+1)
    - [  0, 135968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 139966,   3,   0,   19189] # EV_ABS / ABS_X                 19189 (+11)
    - [  0, 139966,   3,   1,   19580] # EV_ABS / ABS_Y                 19580 (+25)
    - [  0, 139966,   3,  27,       4] # EV_ABS / ABS_TILT_Y                4 (+1)
    - [  0, 139966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 143966,   3,  27,       5] # EV_ABS / ABS_TILT_Y                5 (+1)
    - [  0, 143966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 147970,   3,  27,       6] # EV_ABS / ABS_TILT_Y                6 (+1)
    - [  0, 147970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 151967,   3,   0,   19203] # EV_ABS / ABS_X                 19203 (+14)
    - [  0, 151967,   3,   1,   19614] # EV_ABS / ABS_Y                 19614 (+34)
    - [  0, 151967,   3,  27,       7] # EV_ABS / ABS_TILT_Y                7 (+1)
    - [  0, 151967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 163966,   1, 320,       0] # EV_KEY / BTN_TOOL_PEN              0
    - [  0, 163966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +12ms
  - evdev:
    - [  0, 163967,   3,  26,       0] # EV_ABS / ABS_TILT_X                0 (-3)
    - [  0, 163967,   3,  27,       0] # EV_ABS / ABS_TILT_Y                0 (-7)
    - [  0, 163967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0, 239989,   1, 320,       1] # EV_KEY / BTN_TOOL_PEN              1
    - [  0, 239989,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  0, 239989,   1, 331,       1] # EV_KEY / BTN_STYLUS                1
    - [  0, 239989,   3,   0,   19235] # EV_ABS / ABS_X                 19235 (+32)
    - [  0, 239989,   3,   1,   20092] # EV_ABS / ABS_Y                 20092 (+478)
    - [  0, 239989,   3,  26,       6] # EV_ABS / ABS_TILT_X                6 (+6)
    - [  0, 239989,   3,  27,       7] # EV_ABS / ABS_TILT_Y                7 (+7)
    - [  0, 239989,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +76ms
  - evdev:
    - [  0, 243973,   3,   0,   19231] # EV_ABS / ABS_X                 19231 (-4)
    - [  0, 243973,   3,   1,   20072] # EV_ABS / ABS_Y                 20072 (-20)
    - [  0, 243973,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 247969,   3,   0,   19230] # EV_ABS / ABS_X                 19230 (-1)
    - [  0, 247969,   3,   1,   20053] # EV_ABS / ABS_Y                 20053 (-19)
    - [  0, 247969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 251969,   3,   0,   19228] # EV_ABS / ABS_X                 19228 (-2)
    - [  0, 251969,   3,   1,   20030] # EV_ABS / ABS_Y                 20030 (-23)
    - [  0, 251969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 259978,   3,   0,   19230] # EV_ABS / ABS_X                 19230 (+2)
    - [  0, 259978,   3,   1,   20010] # EV_ABS / ABS_Y                 20010 (-20)
    - [  0, 259978,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  0, 263968,   3,   1,   19988] # EV_ABS / ABS_Y                 19988 (-22)
    - [  0, 263968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 267969,   3,   0,   19231] # EV_ABS / ABS_X                 19231 (+1)
    - [  0, 267969,   3,   1,   19967] # EV_ABS / ABS_Y                 19967 (-21)
    - [  0, 267969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 271970,   3,   1,   19947] # EV_ABS / ABS_Y                 19947 (-20)
    - [  0, 271970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 275970,   3,   0,   19233] # EV_ABS / ABS_X                 19233 (+2)
    - [  0, 275970,   3,   1,   19930] # EV_ABS / ABS_Y                 19930 (-17)
    - [  0, 275970,   3,  26,       5] # EV_ABS / ABS_TILT_X                5 (-1)
    - [  0, 275970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 283976,   3,  26,       4] # EV_ABS / ABS_TILT_X                4 (-1)
    - [  0, 283976,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  0, 287968,   3,   0,   19239] # EV_ABS / ABS_X                 19239 (+6)
    - [  0, 287968,   3,   1,   19587] # EV_ABS / ABS_Y                 19587 (-343)
    - [  0, 287968,   3,  26,       3] # EV_ABS / ABS_TILT_X                3 (-1)
    - [  0, 287968,   3,  27,       6] # EV_ABS / ABS_TILT_Y                6 (-1)
    - [  0, 287968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 291968,   1, 320,       0] # EV_KEY / BTN_TOOL_PEN              0
    - [  0, 291968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 291971,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  0, 291971,   1, 331,       0] # EV_KEY / BTN_STYLUS                0
    - [  0, 291971,   3,  26,       0] # EV_ABS / ABS_TILT_X                0 (-3)
    - [  0, 291971,   3,  27,       0] # EV_ABS / ABS_TILT_Y                0 (-6)
    - [  0, 291971,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0, 359992,   1, 320,       1] # EV_KEY / BTN_TOOL_PEN              1
    - [  0, 359992,   3,   0,   19435] # EV_ABS / ABS_X                 19435 (+196)
    - [  0, 359992,   3,   1,   19889] # EV_ABS / ABS_Y                 19889 (+302)
    - [  0, 359992,   3,  26,       3] # EV_ABS / ABS_TILT_X                3 (+3)
    - [  0, 359992,   3,  27,       4] # EV_ABS / ABS_TILT_Y                4 (+4)
    - [  0, 359992,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +68ms
  - evdev:
    - [  0, 363970,   3,   0,   19440] # EV_ABS / ABS_X                 19440 (+5)
    - [  0, 363970,   3,   1,   19893] # EV_ABS / ABS_Y                 19893 (+4)
    - [  0, 363970,   3,  26,       0] # EV_ABS / ABS_TILT_X                0 (-3)
    - [  0, 363970,   3,  27,       3] # EV_ABS / ABS_TILT_Y                3 (-1)
    - [  0, 363970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 367968,   3,   0,   19465] # EV_ABS / ABS_X                 19465 (+25)
    - [  0, 367968,   3,   1,   19902] # EV_ABS / ABS_Y                 19902 (+9)
    - [  0, 367968,   3,  27,       2] # EV_ABS / ABS_TILT_Y                2 (-1)
    - [  0, 367968,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 371966,   1, 320,       0] # EV_KEY / BTN_TOOL_PEN              0
    - [  0, 371966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 371969,   3,  27,       0] # EV_ABS / ABS_TILT_Y                0 (-2)
    - [  0, 371969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0, 447984,   1, 321,       1] # EV_KEY / BTN_TOOL_RUBBER           1
    - [  0, 447984,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  0, 447984,   1, 330,       1] # EV_KEY / BTN_TOUCH                 1
    - [  0, 447984,   3,   0,   20086] # EV_ABS / ABS_X                 20086 (+621)
    - [  0, 447984,   3,   1,   20204] # EV_ABS / ABS_Y                 20204 (+302)
    - [  0, 447984,   3,  27,       2] # EV_ABS / ABS_TILT_Y                2 (+2)
    - [  0, 447984,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +76ms
  - evdev:
    - [  0, 455983,   3,   0,   20081] # EV_ABS / ABS_X                 20081 (-5)
    - [  0, 455983,   3,   1,   20207] # EV_ABS / ABS_Y                 20207 (+3)
    - [  0, 455983,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  0, 459969,   3,   1,   20203] # EV_ABS / ABS_Y                 20203 (-4)
    - [  0, 459969,   3,  26,       1] # EV_ABS / ABS_TILT_X                1 (+1)
    - [  0, 459969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 463967,   3,   0,   20077] # EV_ABS / ABS_X                 20077 (-4)
    - [  0, 463967,   3,   1,   20200] # EV_ABS / ABS_Y                 20200 (-3)
    - [  0, 463967,   3,  26,       2] # EV_ABS / ABS_TILT_X                2 (+1)
    - [  0, 463967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 467966,   3,   0,   20071] # EV_ABS / ABS_X                 20071 (-6)
    - [  0, 467966,   3,   1,   20198] # EV_ABS / ABS_Y                 20198 (-2)
    - [  0, 467966,   3,  26,       3] # EV_ABS / ABS_TILT_X                3 (+1)
    - [  0, 467966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 471970,   3,   0,   20065] # EV_ABS / ABS_X                 20065 (-6)
    - [  0, 471970,   3,   1,   20190] # EV_ABS / ABS_Y                 20190 (-8)
    - [  0, 471970,   3,  26,       4] # EV_ABS / ABS_TILT_X                4 (+1)
    - [  0, 471970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 475970,   3,   0,   20058] # EV_ABS / ABS_X                 20058 (-7)
    - [  0, 475970,   3,   1,   20183] # EV_ABS / ABS_Y                 20183 (-7)
    - [  0, 475970,   3,  26,       5] # EV_ABS / ABS_TILT_X                5 (+1)
    - [  0, 475970,   3,  27,       1] # EV_ABS / ABS_TILT_Y                1 (-1)
    - [  0, 475970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 483977,   3,   0,   20050] # EV_ABS / ABS_X                 20050 (-8)
    - [  0, 483977,   3,   1,   20177] # EV_ABS / ABS_Y                 20177 (-6)
    - [  0, 483977,   3,  26,       6] # EV_ABS / ABS_TILT_X                6 (+1)
    - [  0, 483977,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  0, 487970,   3,   0,   20043] # EV_ABS / ABS_X                 20043 (-7)
    - [  0, 487970,   3,   1,   20169] # EV_ABS / ABS_Y                 20169 (-8)
    - [  0, 487970,   3,  26,       7] # EV_ABS / ABS_TILT_X                7 (+1)
    - [  0, 487970,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 515967,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  0, 515967,   1, 330,       0] # EV_KEY / BTN_TOUCH                 0
    - [  0, 515967,   1, 321,       0] # EV_KEY / BTN_TOOL_RUBBER           0
    - [  0, 515967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +28ms
  - evdev:
    - [  0, 515973,   3,  26,       0] # EV_ABS / ABS_TILT_X                0 (-7)
    - [  0, 515973,   3,  27,       0] # EV_ABS / ABS_TILT_Y                0 (-1)
    - [  0, 515973,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  # Current time is 20:25:30

Command = libinput debug-events

Output
event4   TABLET_TOOL_AXIS          2 +0.224s		196.89*/192.92*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +0.228s		197.07*/193.23*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          4 +0.240s		197.30*/193.63*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          5 +0.248s		197.47*/193.84*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          6 +0.264s		197.65*/194.02*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          7 +0.320s		197.72*/193.94*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_BUTTON          +0.324s	331 (BTN_STYLUS) released, seat count: 0
 event4   TABLET_TOOL_PROXIMITY       +0.324s		197.63/193.39	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event4   TABLET_TOOL_PROXIMITY       +0.392s		195.39*/194.48*	tilt: 0.00*/0.00*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event4   TABLET_TOOL_AXIS            +0.396s		195.36*/194.50*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          2 +0.400s		195.33*/194.56*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +0.408s		195.31*/194.63*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          4 +0.412s		195.27*/194.72*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          5 +0.416s		195.27*/194.79*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          6 +0.420s		195.25*/194.82*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          7 +0.424s		195.23*/194.86*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          8 +0.428s		195.22*/194.88*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          9 +0.508s		195.35*/194.81*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS         10 +0.524s		195.54*/194.74*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_PROXIMITY       +0.540s		196.01/194.57	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event4   TABLET_TOOL_PROXIMITY       +0.540s		196.28*/194.65*	tilt: 0.00*/0.00*	pressure: 0.00*	eraser   (0, id 0) proximity-in 	axes:pt	btn:S
 event4   TABLET_TOOL_AXIS            +0.560s		196.33*/194.68*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          2 +0.580s		196.43*/194.76*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +0.596s		196.59*/194.87*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          4 +0.620s		196.79*/195.03*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_PROXIMITY       +0.664s		197.11/195.26	tilt: 0.00/0.00	pressure: 0.00	eraser   (0, id 0) proximity-out 
 event4   TABLET_TOOL_PROXIMITY       +0.732s		195.57*/195.69*	tilt: 0.00*/0.00*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event4   TABLET_TOOL_AXIS            +0.736s		195.54*/195.69	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          2 +0.740s		195.52*/195.69	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +0.744s		195.49*/195.70*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          4 +0.748s		195.46*/195.72*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          5 +0.752s		195.45*/195.74*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          6 +0.760s		195.43*/195.75*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          7 +0.764s		195.42*/195.76*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          8 +0.768s		195.41*/195.77*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          9 +0.772s		195.40*/195.78*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS         10 +0.860s		195.39*/195.60*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS         11 +0.888s		195.36*/195.31*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS         12 +0.908s		195.35*/194.93*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_PROXIMITY       +0.920s		195.34/194.27	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event4   TABLET_TOOL_PROXIMITY       +1.000s		196.12*/192.82*	tilt: 0.00*/0.00*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event4   TABLET_TOOL_BUTTON          +1.000s	331 (BTN_STYLUS) pressed, seat count: 1
Command = libinput debug-events event4   TABLET_TOOL_AXIS            +1.004s		196.15*/192.80*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          2 +1.012s		196.19*/192.77*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +1.016s		196.21*/192.75*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          4 +1.020s		196.24*/192.72*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          5 +1.024s		196.23*/192.70*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          6 +1.028s		196.21*/192.69*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          7 +1.032s		196.20*/192.67*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          8 +1.040s		196.19*/192.66*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          9 +1.044s		196.17*/192.66*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS         10 +1.048s		196.14*/192.65*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_BUTTON          +1.068s	331 (BTN_STYLUS) released, seat count: 0
 event4   TABLET_TOOL_PROXIMITY       +1.068s		196.09/192.66	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event4   TABLET_TOOL_PROXIMITY       +1.136s		195.16*/193.94*	tilt: 0.00*/0.00*	pressure: 0.00*	pen      (0, id 0) proximity-in 	axes:pt	btn:S
 event4   TABLET_TOOL_AXIS            +1.140s		195.16/193.95*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          2 +1.144s		195.14*/193.99*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +1.148s		195.11*/194.07*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          4 +1.152s		195.08*/194.17*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          5 +1.160s		195.05*/194.28*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          6 +1.164s		195.04*/194.39*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          7 +1.168s		195.05*/194.48*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          8 +1.172s		195.06*/194.55*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          9 +1.176s		195.07*/194.59*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS         10 +1.256s		195.19*/194.58*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_PROXIMITY       +1.312s		195.54/194.46	tilt: 0.00/0.00	pressure: 0.00	pen      (0, id 0) proximity-out 
 event4   TABLET_TOOL_PROXIMITY       +1.312s		195.80*/194.28*	tilt: 0.00*/0.00*	pressure: 0.00*	eraser   (0, id 0) proximity-in 	axes:pt	btn:S
 event4   TABLET_TOOL_AXIS            +1.332s		195.87*/194.27*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          2 +1.348s		196.03*/194.25*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_AXIS          3 +1.368s		196.26*/194.21*	tilt: 0.00/0.00	pressure: 0.00
 event4   TABLET_TOOL_PROXIMITY       +1.412s		196.72/194.15	tilt: 0.00/0.00	pressure: 0.00	eraser   (0, id 0) proximity-out 

Command = gsetwacom list-styli

Output
No styli found

Command = gsetwacom stylus 28bd:092f show

Output
settings:
  pressure-curve: [0, 0, 100, 100]
  eraser-pressure-curve: [0, 0, 100, 100]
  pressure-range: [0, 100]
  eraser-pressure-range: [0, 100]
  button-action: 'middle'
  secondary-button-action: 'right'
  tertiary-button-action: 'default'
  button-keybinding: ''
  secondary-button-keybinding: ''
  tertiary-button-keybinding: ''

I’m using XP-PEN Deco Fun series and facing almost a similar type of problem and that is:

While using Xournal++ app when I shift to eraser during writing though it changes to eraser but as soon as I try to erase i.e. touch the tablet with stylus it freezes and when I again press the button to return to pen mode it shows the cursor at its current position immediately, so in order to erase I have to use keyboard shortcut or manually change to eraser which hampers the work flow.

I’m facing this problem after upgrading to Fedora 41, but the stylus button works fine on X org, and sadly the sensitivity and overall performance is not as good as Wayland in X org.

1 Like

For some of the XP Pen Artist we have a BPF in udev-hid-bpf, if the tablet doesn’t work correctly then filing an issue with udev-hid-bpf is probably the best first step to debugging what’s going on.

There’s a blog post here describing how we got this fixed for one of them, could be that we need to extend this to your respective devices.

Having said that - if it works fine under X but not Wayland then it’s unlikely an issue at the kernel level.

I confirm the bug, exactly as the author described - the same graphics tablet, and the same behavior. Also tried OpenTabletDriver and the XPPen’s official driver.

The problem still persists for me.

1 Like