All Projects → joseluis → huion-linux-drivers

joseluis / huion-linux-drivers

Licence: MIT license
Linux user-space drivers for Huion Graphic Tablets

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to huion-linux-drivers

termux-arch
You can use setupTermuxArch.sh 📲 to install Arch Linux in Termux on Android and Chrome. This setup script will attempt to set Arch Linux up in your Termux environment.
Stars: ✭ 25 (-83.77%)
Mutual labels:  tablet
libs-opal
Opal is a vector drawing library with an API similar to Quartz 2D built on top of Cairo.
Stars: ✭ 17 (-88.96%)
Mutual labels:  drawing
passe-un-dessin
Passe un Dessin (Draw Around) online game
Stars: ✭ 17 (-88.96%)
Mutual labels:  drawing
nativescript-drawingpad
📝 NativeScript plugin to provide a way to capture any drawing (signatures are a common use case) from the device
Stars: ✭ 89 (-42.21%)
Mutual labels:  drawing
flutter rough
A Flutter implementation of the rough.js library
Stars: ✭ 77 (-50%)
Mutual labels:  drawing
TermuxPRoot
SetupTermuxPRoot.sh 📲 shall install Linux distributions in Termux on Android and Chrome. This setup script will attempt to set Linux distributions up in your Termux environment.
Stars: ✭ 59 (-61.69%)
Mutual labels:  tablet
lock-bitmap
A very small class to work with images faster in .net
Stars: ✭ 20 (-87.01%)
Mutual labels:  drawing
Drawing
Drawing and fill color
Stars: ✭ 37 (-75.97%)
Mutual labels:  drawing
imageman
Image manipulation library. Use Pixie instead.
Stars: ✭ 58 (-62.34%)
Mutual labels:  drawing
glText
Cross-platform single header text rendering library for OpenGL
Stars: ✭ 93 (-39.61%)
Mutual labels:  drawing
svg-drawing
svg drawing library.
Stars: ✭ 55 (-64.29%)
Mutual labels:  drawing
ioBroker.fullybrowser
fullyBrowser intergration in iobroker
Stars: ✭ 18 (-88.31%)
Mutual labels:  tablet
Playground
A playground for android developers
Stars: ✭ 41 (-73.38%)
Mutual labels:  drawing
canvas-free-drawing
A JavaScript library that allows you to draw in a canvas HTML element, straightforward to use and extremely lightweight.
Stars: ✭ 57 (-62.99%)
Mutual labels:  drawing
visioStencils
My 2,700 visio 🎨 shapes, stencils, symbols, and icons collection to visually represent IT infrastructure
Stars: ✭ 43 (-72.08%)
Mutual labels:  drawing
graphicsvg
Graphics library authored by Chris Schankula and Dr. Christopher Anand
Stars: ✭ 42 (-72.73%)
Mutual labels:  drawing
lime
A library for drawing graphics on the console screen
Stars: ✭ 32 (-79.22%)
Mutual labels:  drawing
DreamBig
☁🌝☁ 3D emoji drawing iPad app with ARKit and the Apple Pencil ☁🌝☁
Stars: ✭ 24 (-84.42%)
Mutual labels:  drawing
ludigraphix.github.io
Documentation for Ludigraphix
Stars: ✭ 21 (-86.36%)
Mutual labels:  drawing
Line-us-Programming
Some very simple examples to get you started with the Line-us API
Stars: ✭ 98 (-36.36%)
Mutual labels:  drawing

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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].