Help configuring a drawing tablet

I have a machine running Zorin OS 16 Lite (xubuntu) and a Gaomon PD1220 drawing tablet. I plugged in the tablet without setting anything up and it surprisingly mostly works - my laptop's display automatically appears on the tablet screen as well, and the pen clicks and pressure sensitivity both work fine.

The issue is that I never installed the tablet's driver, and it doesn't look like the tablet is supported by DIGImend yet, which is the project that maintains tablet drivers for linux (How to Run Tablet on Linux System | GAOMON Q&A). This means I can't access the tablet's settings via the driver application (How to Connect the GAOMON Tablet to Computer and Start Using). Zorin is clearly able to detect and respond to the tablet, so I think there must be a way to access the tablet's settings, I just don't know where to look.

Bump? Is there maybe a terminal command I can use to monitor what my pc is doing when I plug the tablet in?

Yes, you can try running lsusb to list the attached USB devices to ensure that the device is recognized. The lsusb command can be run with additional parameters on an as needed basis for other tasks.

Are these the drivers that you are referring to?

Yes, DIGImend is what I was thinking of. I'll try lsusb now.

I meant that specific driver.
Sorry I was not clear. I am rushing too much.

I'm not sure what you mean by the specific driver, sorry.

Here are the results of lsusb:

~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0408:5365 Quanta Computer, Inc. HP TrueVision HD Camera
Bus 001 Device 003: ID 0bda:b00c Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 008: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 009: ID 256c:006d  
Bus 001 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Without the tablet plugged in, it looks like this

~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0408:5365 Quanta Computer, Inc. HP TrueVision HD Camera
Bus 001 Device 003: ID 0bda:b00c Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I have to plug in both an HDMI and USB cable for the tablet.

Your tablet is fully recognized. So the additional features you are looking for undoubtedly require the drivers.

Above you had said that you have not yet installed the drivers for it and have relied on the plug n' play generic kernel included driver.
I posted a link to DigiMends github for the linux-kernel-drivers for their software to check if those are the drivers you are referring to not yet installing.

I do not see your product listed as supported, but I do not see it excluded, either. It may work.

Thanks, I think I get it now. It's getting late in my time zone, so I'll see if I can get the Digimend drivers to work tomorrow.

1 Like

OK, I installed the Digimend driver, but I honestly couldn't notice any difference before and after. I also couldn't access any sort of GUI.

I realized that the problem I wanted to solve probably doesn't need the Digimend driver, though. I have my computer and tablet screen connected like in the screenshot below:


The issue was that the tablet seemed to think it covered the entire screen, so the stylus was offset horizontally.

I was able to write a shell script to fix this (instructions here and here), but I'm still having trouble getting the script to run automatically when the tablet is plugged in.

Can your script just be in your startup and is therefor only applied when the Tablet is connected?

I don't think so. Running the script without the tablet gives 'unable to find device errors', so it has to be right when it's plugged in.

My script looks like this right now:

#!/bin/sh
MONITOR="HDMI-1"
PAD_NAME='Gaomon Tablet_PD1220 Pad pad'
PEN_NAME='Gaomon Tablet_PD1220 Pen stylus'

xinput map-to-output "$PAD_NAME" "$MONITOR"
xinput map-to-output "$PEN_NAME" "$MONITOR"

exit 0

Ah, I see.
You want the system to detect the activation of the device and then run the script automatically when it is plugged in.

Init is the initialization of a service. The init system used by Zorin OS is SystemD. You can create a systemd service to run your script in response to the tablet being plugged in. In order to detect the tablet being plugged in, you will also need a udev rule that takes action in response to device events.

You can create a udev rule in /etc/udev/rules.d/. Name it something that you prefer like 99-tablet.rules. (So, /etc/udev/rules.d/99-tablet.rules)
The order the rules are run is determined by the number at the beginning, so I set that number high to ensure it runs after any other rules to prevent any conflicts.
The udev rule needs to have the following:

ACTION=="add", SUBSYSTEM=="usb", ENV{ID_MODEL}=="Gaomon Tablet_PD1220 Pad", RUN+="/path/to/your/script.sh"

I am not sure if the ENV model would be Gaomon Tablet_PD1220 Pad or just Gaomon Tablet_PD1220 - you can use what appears using lsusb to determine this.
You can reboot or run sudo udevadm control --reload-rules to reload the udev rules.

Your systemd service can be created in the directory (Here, again, I will suggest a name but you can use a different one): /etc/systemd/system/tablet-startup.service
Just like above with the udev rule, you will need to replace the /path/to/script.sh/ with the actual path to your script.
It needs to have the unit, service and install fields:

[Unit]
Description=Tablet Startup Service
After=udev.service

[Service]
Type=simple
ExecStart=/bin/bash /path/to/your/script.sh

[Install]
WantedBy=default.target

Reload systemd and enable the service:

sudo systemctl daemon-reload

sudo systemctl enable tablet-setup.service

Hopefully this is enough to get you started though it may need adjustment or troubleshooting.

1 Like

Hi Aravisian, sorry for the late response. I wasn't able to get the script to run on its own. The pen isn't detected by the computer until it's held over the tablet, so for this to work I would need to set up a separate script to run only when the pen device is detected. This seems like a hassle to set up, so I think I'm just going to accept having to run the script manually.