User Space Linux Drivers for Huion Tablets
PSA
This project is currently not actively maintained and its future is uncertain. I started it a long time ago in order to fulfill a specific need I had at the time, deciding to make it open and more general in case more people found it useful. But I didn't expect for it to become inmanageable as much for me.
My circumstances have changed and I no longer have the motivation to keep working on this project. For one, my tablet works better now without it that with it, in recent versions of Linux. Many bugs have arised related with the compatilibility between different Python versions and different distributions, which is very frustrating (and this has also contributed to my avoiding of Python AMAP). Plus obscure compatibility problems with many tablets which I can't test nor desire to debug. It also doesn't work with Wayland, and it doesn't support mixing multiple resolutions in multi-monitor mode... The list goes on.
If you believe you want to take care of gthe project and try to fix its multiple issues and keep maintaing it, please contact me and we can arrange some relay.
Thank you, and I'm sorry for the broken expectatives
Table of Contents
↑
Features- Supports multiple tablet models
- Precise cursor positioning
- Full pressure sensitivity
- Both stylus buttons
- Compatible with multi-monitor setups
- Customizable buttons and scrollbar shortcuts
- Multiple sets of shortcuts
- Optional desktop notifications
- Versatile configuration file
↑
Usage- Follow the requirements: Install the dependencies and the xorg extra code.
- Download this repository (You only need
huion-tablet-driver.py
andconfig.ini
). - Edit
config.ini
to match your tablet, multi-monitor setup and desired shortcuts. - Run
sudo ./huion-tablet-driver.py
(needs superuser privileges)
↑
Requirements↑
Dependencies-
python version 3.5 or greater
-
# Installation from source: install dependencies, clone, compile & install $ sudo apt install make automake gcc pkg-config libusb-1.0-0-dev # For ubuntu git clone https://github.com/DIGImend/uclogic-tools cd uclogic-tools autoreconf -i -f && ./configure --prefix=/usr/local/ && make sudo make install
-
xdotool (optional, for button shorcuts)
-
notify-send (optional, for desktop notifications)
Install packages in Archlinux:
$ pacman -S xorg-xinput xf86-input-evdev python-evdev python-pyusb xdotool \
libnotify xorg-xrandr arandr python-numexpr
Install packages in Ubuntu:
$ sudo apt install xinput xserver-xorg-input-evdev python3-evdev python3-usb \
xdotool libnotify-bin arandr python3-numexpr
↑
Xorg Extra CodeYou will likely also need to add some code to the Xorg server.
Create a new file in /etc/X11/xorg.conf.d/evdev-tablet.conf
with the following content:
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
↑
TroubleshootingMy tablet doesn't provide any inputs despite all my debugging efforts
Maybe you're connecting the table through a USV hub, or USB docking station? This is known to have caused problems in the past. Try plugging the tablet directly to the computer.
/usr/local/bin/uclogic-probe: not found
You eiher need to compile uclogic binaries (see Dependencies), or they are installed in a different location. For example Debian 10 automatically installs them under /usr/bin/
. Try updating the path in the config.ini
file, which by default is: uclogic_bins = /usr/local/bin
.
↑
Config Examples↑
Multi-MonitorIf you have a multi-monitor setup, edit your copy of config.ini
with the correct values for your particular setup.
# Multi Monitor Configuration
enable_multi_monitor = true
enable_xrandr = false
current_monitor_setup = [monitor_3]
You'll have to customize your current monitor setup, by modifying one of the
existing examples in the section 3 of the config.ini
file.
More information about multiple monitors in the wiki
↑
ShortcutsTo customize the shortcuts associated with the buttons and the scrollbar,
edit the file config.ini
, and use the xdotool syntax for the buttons actions.
First, assign the menu you're going to use as the starting menu.
Example with a Single Buttons Menu
start_menu = [menu_simple_10b]
[menu_simple_10b]
# upper buttons
b0 = key Tab # hide interface
b1 = key r # rect select (gimp) & pick layer (krita)
b2 = key ctrl+x # cut
b3 = key ctrl+c # copy
b4 = key ctrl+v # paste
# scrollbar
su = click 4 # mouse wheel up
sd = click 5 # mouse wheel down
# lower buttons
b5 = key ctrl+z # undo
b6 = key ctrl+y # redo (gimp)
b7 = key ctrl+shift+z # redo (krita)
b8 = key 4 # turn left (krita)
b9 = key 6 # turn right (krita)
See an example with multiple menus in the wiki
↑
Help WelcomedI originally started this project for my own simple needs and my single Huion tablet. Now it has grown more than I imagined, and I don't have much time or energy to support all use-cases and fix all the issues.
I'm very open to add additional mantainers, so tell me if you are interested. Or you can take a look to the open issues if you want to help with something.
Thank you!