Skip to content

joseluis/huion-linux-drivers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 and config.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

  • uclogic-tools (read why)

    # 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
    
  • xinput

  • evdev

  • python-evdev

  • pyusb

  • numexpr

  • xdotool (optional, for button shorcuts)

  • notify-send (optional, for desktop notifications)

  • xrandr (optional, for monitor configuration) (and arandr)

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 Code

You 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

Troubleshooting

My 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-Monitor

If 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

Shortcuts

To 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 Welcomed

I 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!

Releases

No releases published

Packages

No packages published

Languages