So, I bought the new Huion h950p and as expected it hasn't been recognized by Ubuntu, even tried the latest kernal.
I recently bought Huion 950P (I use it for taking hand-written notes with xournal and now with xournal++). I presently use Kubuntu 20.04.
The stylo was recognized out of the box (apparently, as a kind of mouse with buttons). The buttons on the pad, of course, weren't.
Using digimend-kernel-drivers did not really help me. First, there are installation issues on 20.04. Second, after I overcame them (I can provide details if anyone is interested), wacom driver partially recognized the tablet. I was still unable to do anything with the buttons but my writing started looking weird - letters would come out much wider than before. So I had to get rid of digimend.
At the end, the following worked. I simply created a file in
Section "InputClass" Identifier "Huion tablets with Wacom driver" MatchUSBID "256c:006d*" MatchIsTablet "true" MatchDevicePath "/dev/input/event*" Driver "wacom" EndSection
(My H950P has product number 006d). After restarting X server, wacom recognized both the stylus and the pad;
xsetwacom --list produced the following output:
HID 256c:006d Pen stylus id: 11 type: STYLUS HID 256c:006d Pad pad id: 12 type: PAD
Now it is possible to use xsetwacom to configure buttons. The tricky part was to figure out button numbers. For some reason completely unclear to me buttons turned out to have numbers 1,2,3 and 8,9,10,12. For example, this command sets up the lowest button (assuming that they are on the left) to switch xournal++ into line drawing mode:
xsetwacom --set "HID 256c:006d Pad pad" Button 12 "key +ctrl +6 -6 -ctrl"
The only thing I haven't figured out yet (mostly out of sheer laziness) is how to make button configuration upload automatically. For the time being I just wrote a simple shell script which I invoke every time the tablet is reconnected.
After a long day of the search, I found that some people are writing a python workaround, so it's not the right way to do it, but it gets the job done at least until someone smart makes it a kernel level driver.
Or for starters:
You need first to add some python libraries:
pip install pyusb pip install evdev
Then, in a new folder download and unzip the files from github according to your tablet, or run terminal in the folder directory:
git clone https://github.com/dannytaylor/pinspiroy.git # (for G10T)
To run it open terminal from folder:
sudo python pinspiroy
And you are good to go, you can change the default settings by modifying bindings.py and config.py
Please let me know if you have one other than these tablets that you are struggling with.