Review: Gaomon M10K 2018 Graphic Tablet on Linux for Digital Painting.

Published on

Here is a new review video about the GAOMON M10K 2018 pen tablet. Everything about the review is on the video and this blog post is a companion with install method, scripts, and updates.

Updates and corrections:

  • [2021-10-05] Release of the video.

Promotion by GAOMON:

Deal Price : 50.99USD from Oct 4th- Oct 10th,2021

(Note: I don't earn any money on this, just FIY)

Install & Setup

Install the Digimend driver

If your distribution doesn't have a packaged Digimend driver fresh enough, you can get newer one here: https://github.com/DIGImend/digimend-kernel-drivers/releases . There is a Debian package but if your operating system is not based on Debian, you can compile the source code. It is not really complex and well documented.

Get the USB ID identifier of the tablet

For that, plug the tablet and execute in a terminal:

lsusb

This command will list all usb connected and their ID, the name shorten list into 'ls' and 'usb'. In front of the line with the Gaomon tablet, mine is 256c:006e. This number shouldn't change if you use a M10K 2018 model; but sometime, brands produce new version of their hardware and it might change a bit.

The X11 rule

Change Directory (cd) to the place where your Xorg store rules for the devices. On 'buntus at 20.04 it is located on /usr/share/X11/xorg.conf.d/, but keep in mind it might change depending the Linux distribution.

cd /usr/share/X11/xorg.conf.d/

The Digimend project installed their own rules; it is the 50-digimend.conf file in this directory. I'll edit this file (note it require your system root password because we are editing a system file with 'sudo') I'm using the text-editor "micro", but you can use your favorite. "nano" is often installed anywhere, but has less user-friendly keyboard shortcut and color syntax by default.

sudo micro 50-digimend.conf

We can copy/paste the paragraph under at the end of the file; if your USB identifier differs, you'll need to adjust the line starting with MatchUSBID:

Section "InputClass"
        Identifier "Gaomon tablets with Wacom driver"
        MatchUSBID "256c:006e"
        MatchDevicePath "/dev/input/event*"
        Driver "wacom"
EndSection

Save and then reboot your system.

Tablet setup with xsetwacom

At this point, you should see lines about your Gamon tablet stylus, pad and dial when writing in a terminal:

xsetwacom --list

Now we will create a script. It is just a series of command written line by line on a text file; so the computer will execute all of them. Each line will setup one aspect of your tablet. Line starting by character # are not read by the computer, so I added some notes to guide you in the customisation of the script. Open a non-rich text editor (eg. Micro, Kate, Geany, Gnome text also called nautilus, etc...) and copy/paste the script under:

#! /bin/bash
# Setup xsetwacom script for Intuos 3 9x12
# License: CC-0/Public-Domain license
# author: deevad

# Tablet definition
tabletstylus="GAOMON Gaomon Tablet stylus"
tabletpad="GAOMON Gaomon Tablet Pad pad"
touchpad="GAOMON Gaomon Tablet Touch Strip pad" #unsupported
dialpad="GAOMON Gaomon Tablet Dial pad" #unsupported
# Display all available option:
#xsetwacom get "$tabletstylus" all
#xsetwacom get "$tabletpad" all
#xsetwacom get "$touchpad" all
#xsetwacom get "$dialpad" all

# Reset
xsetwacom --set "$tabletstylus" ResetArea

# Map surface of the tablet to a monitor (in case of multiple)
# Note: get the name of the monitor with xrandr
xsetwacom --set "$tabletstylus" MapToOutput "DisplayPort-0"

# Auto proportional Mapping:
# xsetwacom get "$tabletstylus" Area
# default: 0 0 50800 31750
# Enter under the resolution of your monitor:
screenX=2560
screenY=1440
Xtabletmaxarea=50800
Ytabletmaxarea=31750
areaY=$(( $screenY * $Xtabletmaxarea / $screenX ))
xsetwacom --set "$tabletstylus" Area 0 0 "$Xtabletmaxarea" "$areaY"

# Stylus button:
#xsetwacom --set "$tabletstylus" Button 1 1 # default, to click and draw
#xsetwacom --set "$tabletstylus" Button 2 "key Control_L" # Ctrl = color picker
#xsetwacom --set "$tabletstylus" Button 3 3 # default (Right click)

# Tweaks
# Pressure curve:
xsetwacom --set "$tabletstylus" PressureCurve 0 0 100 100
# Softer
#xsetwacom --set "$tabletstylus" PressureCurve 0 10 40 85
# Configuration data trimming and suppression
# The event of this device are good; if you have CPU better to not filter
# them at operating system level to not loose any sensitivity.
# Minimal trimming is also good.
xsetwacom --set "$tabletstylus" Suppress 0 # data pt.s filtered, default is 2, 0-100
xsetwacom --set "$tabletstylus" RawSample 1 # data pt.s trimmed, default is 4, 1-20

# For left-handed mode (rotation):
#xsetwacom --set "$tabletstylus" Rotate half

# Buttons
# Note: touchpad around 10 button is not supported
#     +-----+
#     |  1  |
#     +-----+
#     |  2  |
#     +-----+
#     |  3  |
#     +-----+
#     |  8  |
#     +-----+
#     |  9  |
#     +-----+
# +---+-----+---+
# |             |
# |   +-----+   |
# |   | 10  |   |
# |   |     |   |
# |   +-----+   |
# |             |
# +---+-----+---+
#     +-----+
#     | 11  |
#     +-----+
#     | 12  |
#     +-----+
#     | 13  |
#     +-----+
#     | 14  |
#     +-----+
#     | 15  |
#     +-----+
xsetwacom --set "$tabletpad" Button 1 "key Control_L" # Ctrl = color picker
xsetwacom --set "$tabletpad" Button 2 "key KP_Divide" # / = Switch to previous used brush preset
xsetwacom --set "$tabletpad" Button 3 "key Shift_L" # Shift = Resize brush
xsetwacom --set "$tabletpad" Button 8 "key v" # v = line
xsetwacom --set "$tabletpad" Button 9 "key m" # m = mirror

xsetwacom --set "$tabletpad" Button 10 "key e" # e = eraser

xsetwacom --set "$tabletpad" Button 11 "key r" # r = pick layer
xsetwacom --set "$tabletpad" Button 12 "key l" # l = select lighter color
xsetwacom --set "$tabletpad" Button 13 "key k" # k = select darker color
xsetwacom --set "$tabletpad" Button 14 "key o" # o = more opacity
xsetwacom --set "$tabletpad" Button 15 "key i" # i = less opacity

Notes about the script:

  • Customize stylus buttons: I commented the line for the buttons for the stylus (they start by "#" after "# Stylus button:"). uncomment them to customize them.
  • Key combinations: If you want to assign more than one button, eg Ctrl+Z for undo ; you can separate the list of keys with a space. eg. "key Ctrl z" or "key Ctrl s"
  • Key naming convention: Many keys can be called by their X11 name. To find the main list of keys; I copied them here: https://pastebin.com/aXGDkJTU
  • Space key special case: The key "space" will return only a single space character and not a continuous key press (unfortunately).
  • Left handed mode: If you are left-handed, I also added the line to rotate the tablet (commented by default, uncomment to run it, remove the leading "#" character) the line is under "# For left-handed mode (rotation)"

Run it, create a start-up:

Save it named Gaomon-M10K.sh (you can name it the way you want, and save it where you want on your disk; the only constrain is to finish with the extension .sh ). You can read it, and adjust it. To run it, after saving the file you need to give this text file execution permission. You can do so with many desktop environment by right clicking on the file, and add the "execute" permission. Another way to do it is with command line:

chmod +x Gaomon-M10K.sh

Now, if you run:

./Gaomon-M10K.sh

The script should run and apply your preference. If your windows environment is modern enough; you should have a setup option to add a script to the autostart. This way, the preferences will be applied each time you start your computer. You can of course change options, and execute the script as many time you want to test and adjust.

A more advanced script:

If you want to go further, user TwistyDev on Gitlab published a more advanced version based on xinput and a Python script. The script can switch profiles between blender and krita and has a systray icon. You can find gaomon-m10k-2018-linux-configuration-script here.

To end, a story about the advocacy

I haven't put that in the video, because it is a bit long and backstage. But I'm happy to share it on the blog:

Around 2018, the brand Gaomon contacted me by email for a review. But at that time they only had a driver for Windows and Mac, so I rejected their proposal because −as you know− I'm using only a GNU/Linux operating system for my art since more than ten years.

Rejecting brands this way is something I do very often. Not daily, but easily on a monthly basis. I probably got already all existing brands of tablets reaching my mailbox thanks to the good statistic on the channel.

A parenthesis about that: I also met a large amount of hardware sellers totally unrelated to digital art or FLOSS who pretends to like my channel, saw all my videos (be fans?). Then they offer only a Win/Mac product in a email template, or worst: a gadget totally unrelated to digital art. (a lamp for monitor! a sound system, a gamepad? etc...) Poeple working in marketing department should probably stop considering their recipient as idiots. I mean: it's ok to sell products and propose hardware for review. But pretending to saw all videos and be fans only to flatter the ego of creators... Without having a check on the channel and content... This is the type of marketing talk I'm really deeply allergic. Parenthesis closed.

Anyway, in all situation, I try to optimize the new contact with a minimum of FLOSS advocacy. I reply politely with a speech about why they should get a Free/Libre driver, why I'll be happy to review if the hardware works on GNU/Linux and get in the scope of my passion for digital-art or comic. I'll not lie, I often get no replies, or replies that try to convince me to do the review on Win/Mac (lol).

But, In the case of Gaomon, something happened after this first ping-pong of usual proposal on one side and advocacy on my side. In fact, the marketing employee at Gaomon pushed my request to their R&D department (research and development). And so: they started to cooperate with the Digimend project on a Free/Libre Linux driver.

You can read that on the blog-post of Gaomon about Linux:

Thanks to the efforts of the author, Nikolai Kondrashov, and other volunteers, after installing the driver offered by DIGImend project, you can run S56K and M106K on Linux system computer. If you met some questions, you can discuss and get help from DIGImend project.

Then the contact I had and project to do a review was lost. The email discussion just ended on my side on the "I'll see that with our R&D". That was a contact among many other in 2018.

This summer, I had a new contact from Gaomon. Another employee, proposing a review totally unrelated to the first proposal of 2018. I have this contact probably because after the review of XP-PEN Pro Artist 24, I started to receive the double amount of incoming requests.

After my usual FLOSS-advocacy-reply they surprised me by replying they had a Linux driver! Then I found their blog-post and then I saw by crossing the date it might be in relation with my first email. I was happy and excited! That's why I wanted to share that with you.

All in all to say I'm proud of this little seed in this industry, and It's very cool when FLOSS advocacy gives results.