This is a userspace python based evdev driver for Huion Kamvas Pro devices so that they can be used on Linux machines which don't have officially supported driver.
I personally own a Huion Kamvas Pro 13 and I have tested this driver successfully with that device. The driver should hopefully also be usable with other Huion Kamvas devices, but they havn't been tested.
Feel free to open an issue if you ran into trouble or write me a message if you found this useful.
This script uses a simple YAML configuration file to give you control over how your graphics tablet interacts with your computer. This configuration file is located at ~/.kamvas_config.yaml
.
With this driver you can:
xinput
so you will need to have that installed on your system for this functionality to workYou will need to install the following packages from your distribution (Archlinux commands shown here)
Python 3: This script was tested with Python 3. It might run just fine on Python 2 if you can install the required python modules
sudo pacman -S python3
xf86-input-evdev: This is the Digimend evdev package which adds X events relevant to graphics tablets and makes them available to other apps
sudo pacman -S xf86-input-input-evdev
Install the driver module
pip3 install kamvas-driver
Update your /etc/X11/xorg.conf
file (create it if it is not already there):
Section "InputClass"
Identifier "evdev tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
You might need to make sure that the DIGImend kernel driver are not loaded. Unload them using this command
sudo rmmod hid-uclogic
Setup a default configuration file for the driver
kamvas -c
Start the driver
kamvas start
Stop the driver
kamvas stop
You can create a default configuration file at ~/.kamvas_config.yaml
using the following command
kamvas -c
You can edit ~/.kamvas_config.json
file to define your custom settings for your graphics tablet. The config file allows you to define the following:
Actions that must be performed when a button is clicked
evdev
events to perform these actions so the values for these actions can be any commands starting with KEY_
or BTN_
. For example:
KEY_A
to effectively simulate the presseing of the a
key on your keyboardKEY_LEFTSHIFT+KEY_A
to effectively press Shift+a
when that action is firedYou can use the following command to observe which evdev events are fired when you press keys on your device. You will need to figure out the path of the event file for the device you are trying to test. It is usually located in /dev/input/
. You can also try looking for it by name in /dev/input/by-id/
and /dev/input/by-path/
kamvas -t <path_to_event_file>
config.json
to see an example.default_display
field automatically maps your driver output to a given system display name (like HDMI1
, DVI1
, etc)
xinput
to be installed on your systemxinput
installed or are just using a single displaydefault_action
field defines the button actions group that will be used by the driver if kamvas start -a=<action_name>
is not used to start the driver kamvas -o
to print driver output as it happens
-r
or -c
options to the driver subprocess-r
will allow you to monitor raw USB data as it comes in-c
will allow you to monitor the calculated values being sent to the system by the driverkamvas -u
which will print some USB information as the device gets plugged in or removeduclogic-probe | uclogic-decode
The driver is unable to survive a system suspend or hibernate event
You will have to stop the driver and start it again
kamvas stop
kamvas start