Can you map the "Pad Buttons" on a drawing tablet?

I’m using Fedora 42 KDE Plasma, in VirtualBox. My drawing tablet is a Huion H1061P. I’m trying to figure out if I could make the switch but I can’t get my tablet set up correctly. I’m new to Linux so I’m not the best at searching for solutions yet. I also don’t really know where to go to ask this question so forgive me if I’m in the wrong place.

To my surprise the scroll wheel works out of the box. The issue is that I can’t rebind any buttons on the tablet (or “Pad”) itself, only the pen (or “Tool”). I found some posts saying I should install Input Remapper however if I do that I lose access to the scroll wheel, since it doesn’t seem to recognize it. OpenTabletDriver also does not have scroll wheel functionality yet either. Is there any way to rebind the buttons on the “Pad”? Am I looking in the wrong place? The menu for pen lets me rebind, just not the tablet itself.

This is what my tablet’s configuration screen looks like with the proprietary drivers in Mint. So you know what I’m looking for.

this sounds like something you would need to take up with the manufacturer

they offer a proprietary linux driver in .deb form but not in .rpm form, so you you would need to contact them and ask about when they will support that package form.

or use a deb based linux system to run the tablet.

@CeeJay can you post the output of sudo libinput list-devices ?

1 Like
Device:                  Power Button
Kernel:                  /dev/input/event0
Id:                      host:0000:0001
Group:                   1
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Sleep Button
Kernel:                  /dev/input/event1
Id:                      host:0000:0003
Group:                   2
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  Video Bus
Kernel:                  /dev/input/event7
Id:                      host:0000:0006
Group:                   3
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  VirtualBox mouse integration
Kernel:                  /dev/input/event9
Id:                      <unknown>:80ee:cafe
Group:                   4
Seat:                    seat0, default
Capabilities:            pointer 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             disabled
Nat.scrolling:           disabled
Middle emulation:        n/a
Calibration:             identity matrix
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  HUION Huion Tablet_H1061P Pen
Kernel:                  /dev/input/event4
Id:                      usb:256c:0068
Group:                   5
Seat:                    seat0, default
Size:                    267x167mm
Capabilities:            tablet 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             disabled
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          none
Rotation:                n/a
Area rectangle:          (0.00, 0.00) - (1.00, 1.00)

Device:                  HUION Huion Tablet_H1061P Keyboard
Kernel:                  /dev/input/event5
Id:                      usb:256c:0068
Group:                   5
Seat:                    seat0, default
Capabilities:            keyboard pointer 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           disabled
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  HUION Huion Tablet_H1061P Mouse
Kernel:                  /dev/input/event6
Id:                      usb:256c:0068
Group:                   5
Seat:                    seat0, default
Capabilities:            pointer 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             disabled
Nat.scrolling:           disabled
Middle emulation:        disabled
Calibration:             n/a
Scroll methods:          button
Scroll button:           BTN_MIDDLE
Scroll button lock:      disabled
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          flat *adaptive custom
Rotation:                0.0
Area rectangle:          n/a

Device:                  AT Translated Set 2 keyboard
Kernel:                  /dev/input/event2
Id:                      serial:0001:0001
Group:                   6
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

Device:                  ImExPS/2 Generic Explorer Mouse
Kernel:                  /dev/input/event3
Id:                      serial:0002:0006
Group:                   7
Seat:                    seat0, default
Capabilities:            pointer 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             disabled
Nat.scrolling:           disabled
Middle emulation:        disabled
Calibration:             n/a
Scroll methods:          button
Scroll button:           BTN_MIDDLE
Scroll button lock:      disabled
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          flat *adaptive custom
Rotation:                0.0
Area rectangle:          n/a

Device:                  input-remapper keyboard
Kernel:                  /dev/input/event10
Id:                      usb:0001:0001
Group:                   8
Seat:                    seat0, default
Capabilities:            keyboard 
Tap-to-click:            n/a
Tap-and-drag:            n/a
Tap button map:          n/a
Tap drag lock:           n/a
Left-handed:             n/a
Nat.scrolling:           n/a
Middle emulation:        n/a
Calibration:             n/a
Scroll methods:          none
Scroll button:           n/a
Scroll button lock:      n/a
Click methods:           none
Clickfinger button map:  n/a
Disable-w-typing:        n/a
Disable-w-trackpointing: n/a
Accel profiles:          n/a
Rotation:                0.0
Area rectangle:          n/a

I’ll just include it all, just in case.

it seems to be recognized as a mouse, so input remapper should work when set to mouse inputs.

does the device not show up in input remapper under devices?

can you not get it record the wheel moments or any of the buttons?

1 Like

I’m not sure what changed between today and yesterday but it recognized it just now. For some reason, yesterday it wouldn’t even act like it existed when I’d try either direction. Never even got it to that step with the output target. Today though it actually registered and showed up as “Control L + equal” and “Control L + minus”. Thanks for the help even if it probably ended up being a dumb user error problem. Sorry.

Is there by chance a place I can go to request/suggest that functionality be added to the settings GUI? “Drawing Tablet - System Settings”. Is that controlled by KDE? Or is it libinput?

System Settings GUI is definitely KDE.

If something requires libinput it might still be handled.

See also https://lemmy.kde.social/post/3932865 and https://lemmy.kde.social/post/4224828

1 Like

Don’t be sorry, all that matters is that it works for you :slight_smile:

So it works in the systemsettings now or are you using a 3rd party solution?

You can always try ask for functionality.

Basically System settings is controlled by KDE. But only exposes settings that are provided by the libinput library. But some some KDE Devs contribute to libinput.

So ask here, unless a dev tells you to report it to libinput

1 Like

Thanks, I’ll check that out.

I’m using a 3rd party solution (Input Remapper) to rebind those buttons. I’ll check out those links above and see where that goes though.

Thanks again.

While preparing to install Fedora KDE as my main system I did some additional tests and I found out the Pen button bindings also only half function. So it seems it was more than just the tablet/pad part. I can rebind the first Pen button but I can’t rebind it to a mouse function, even though it’s an option it just doesn’t work if I use it. I can get the functionality I want by just changing it to “Pen Button 1” or 2 however so that’s fine. The 2nd button cannot be changed though and in Krita this results in an Eraser button that I can’t change. My pen doesn’t actually come with an “Eraser” so I don’t know if this means it sees my tablet as something else or what.

I checked out the linuxwacom github and saw that somebody already sent their sysinfo for my tablet. So posting this stuff here.

If I’m understanding your issue correctly, that’s just typical behavior when the tablet is unsupported. My tablet for example in it’s “default compatibility mode” without a driver also sends an eraser for it’s 2nd button due to a bad descriptor.

I see. I’ve found the files for my tablet in /usr/share/libwacom and everything looks correct… At least to my ignorant eyes. Is there anything I can do to figure out why it doesn’t function or does this file not necessarily mean that it should work?

These two:

huion-inspiroy-2-l—h1061p.tablet

huion-inspiroy-2-l—h1061p.svg

# Huion
# Inspiroy 2L
# H1061P
#
# sysinfo.tar.gz
# https://github.com/linuxwacom/wacom-hid-descriptors/issues/382
#
# Button Map:
# (A=1, B=2, C=3, ...)
#
#      +----------------------------------+
#      |                                  |
#  A D |                                  |
#  B E |                                  |
#  C F |                                  |
#    G |                                  |
#      |                                  |
#    H |                                  |
#    I |                                  |
#    J |                                  |
#    K |                                  |
#      |                                  |
#      +----------------------------------+
#
# Dial Map:
# (A=1st ring, B=2nd ring, ...)
#
#    *-----------------------*
#    |                       |
#  A |        TABLET         |
#    |                       |
#    *-----------------------*

[Device]
Name=Huion Inspiroy 2 L
ModelName=H1061P
DeviceMatch=usb|256c|0068;
Width=11
Height=7
Layout=huion-inspiroy-2-l---h1061p.svg
Styli=@generic-no-eraser;
IntegratedIn=

[Features]
NumStrips=0
NumRings=0
NumDials=1
Reversible=true
Stylus=true
Touch=false
TouchSwitch=false

[Buttons]
Left=A;B;C;D;E;F;G;H;I;J;K
EvdevCodes=BTN_0;BTN_1;BTN_2;BTN_3;BTN_4;BTN_5;BTN_6;BTN_7;BTN_8;BTN_9;BTN_SOUTH

Your device being in libwacom doesn’t mean it will work, see the project README:

libwacom does not make a tablet work. libwacom is merely a database with a C library wrapper for information about a tablet. It has no effect on whether that tablet works.