Linux Mint 20 on Teclast X4

After Linux on Intel Atom Tablet I want to continue to use a very small pc that can be used like a tablet. But I’m not enought shure of this selection so I buy Teclast X4 because is more economic then other choices and have 8 gb of ram and Intel N4100 Gemini Lake.

First configuration

After download it and create a, bootable USB you can install it as in a normal PC: put USB and connect a keyboard, start the laptop and press ESC. In the bios option select Start from USB and save configuration. The bootable USB will start and you can install Linux Mint as you want: removing existing windows or keeping both.

I change the SSD with another with 512 GB in order to maintain original OS as fabric and in the cleaned one I put Linux. In this tablet it is easy to do: in the back after open the tablet support and you can see two small screws.

After the installation I have no problem, the touch work, the audio speaker work, the SD card reader work, the bluetooth work, and screen.

To use in touch mode only it is necessary to enable from applet ui the On Screen Keyboard. After it you have a callable screen keyboard in the start bar. Into the login page it exist automatically: if you do not see click on information button on the bar and here there is on screen keyboard.

From Accessibility>keyboard you can change some properties from virtual keyboard, I use the menu bar on top of the screen so I set the keyboard on bottom.

From there you can set also that the keyboard open automatically when something wait for input, but I use the manual open.

I’m satisfied of this keyboard but if you want you can use other keyboard like onboard and florence as explained in Linux on Intel Atom Tablet.

The teclast have his keyboard but it should be borrow separately like the Teclast T6 stylus. But you can use a bluetooth keyboard and an mouse or USB version.

This tablet as many other have the 5pin keyboard. I think that a good idea can be to adapt some other keyboard (because the physical joints does not match) like the keyboard of Mediacom WinPad 11.6 that get you also two new USB port.

To improve your battery time you can install the follow:

sudo apt install tlp tlp-rdw

It should make your laptop battery last longer by implementing some power-saving protocols.

If you are a fun of workspace like me, you know the problem. To make it easy I use active angle: so (I use the start bar on the top) I set the bottom left angle that open all workspace in order to change or move apps into new workspace. On the bottom right corner I put all the active apps inside the workspace.

The integrated audio system do not recognize the headphone but you can use the command:

alsamixer

by pressing “M” and set to 0 Speaker volume to obtain a situation like in figure.

Alsa mixer headphone volume only.

In this way you can manually turn down the volume of the speaker and turn up the volume of headphone.

Another way is to use the shell or a script with following instruction.

amixer sset Speaker 0%amixer sset Headphone on
amixer sset Headphone 100%

To automate this command you can use the alsapplet:

cd ~/.local/share/cinnamon/applets
git clone https://gitlab.com/nicolalandro/alsapplet.git
# enable Alsa Applet from GUI

On click the Icon it exec the commands.

The automatic auto rotation have wrong positions. A possible solution is explained at Linux on Intel Atom Tablet but I’m searching a more clean solution.

So old solution is:

git clone https://github.com/nicolalandro/kde-auto-rotate.git
cd kde-auto-rotate
./install

To stop auto rotation do:

systemctl --user stop auto-rotate

If you want to stop and start easily autorotation on your cinnamon environment you can use the applet:

cd kde-auto-rotate
./cinnamon_applet_install

Enable from applet ui:

Applet ui

Now by clicking the icon you can start and stop the auto-rotation easily. (the stop is quick but the restart take one or two seconds).

One interesting tool can be the Teclast T6 stylus it is a stylus that need an AAAA battery. This pen can move the mouse if it is over the screan and click if it press. But it do not work immediatly in this way because exists some problem with the driver.

Tablet and tools

To install the driver at first edit “/lib/udev/hwdb.d/60-evdev.hwdb” file:

sudo nano /lib/udev/hwdb.d/60-evdev.hwdb

and add at the end:

# Goodix Touchscreen and Pen
evdev:name:*Goodix*
EVDEV_ABS_00=::2736
EVDEV_ABS_01=::1824
EVDEV_ABS_35=::2736
EVDEV_ABS_36=::1824

(you can also replace 2736 with 1920 and 1824 with 1080, it will work at the same manner)

After reboot.

Now do the following steps to compile the driver:

git clone https://gitlab.com/AdyaAdya/goodix-touchscreen-linux-driver
cd goodix-touchscreen-linux-driver
make

Remember to recompile if you upgrade the kernel:

cd goodix-touchscreen-linux-driver
make clean
make

Test the driver with following:

cd goodix-touchscreen-linux-driver
sudo su
rmmod goodix
insmod goodix.ko

Install the driver (this procedure can be repeated if you change kernel, maybe also the compilation part):

xz goodix.ko
sudo mv goodix.ko.xz /lib/modules/$(uname -r)/kernel/drivers/input/touchscreen/goodix.ko.xz

Now at every restart it should work.

Or if you prefer to run it when you need you can use the following script.sh:

#!/bin/bash
cd ~/goodix-touchscreen-linux-driver
sudo su -c "rmmod goodix"
sudo su -c "insmod goodix.ko"

In my situation I use the second one because the installation seams do not work.

The stylus is interesting for take note for example with xournalpp or to draw with krita or to sculpt with blender and many other uses.

An useful extra can be the graphic tablet glove that keep your screen clean also if you write a lot with the stylus and prevent a bit the touch on resting the rest of the hand on the screen while writing as you do on a sheet of paper.

I do not know why by setting the secondary action on mouse with dconf-editor it works with mouse but not with touchscreen, so I use this python script rce.py that I automatize with service, you can install it with:

git clone https://gitlab.com/nicolalandro/goodix-simulate-left-click.git
cd goodix-simulate-left-click
./install

You can manage the service with classical systemctl commands:

systemctl --user start simulate-left-click
systemctl --user status simulate-left-click
systemctl --user stop simulate-left-click

If you do this before enable goodix driver you must restart the service

systemctl --user restart simulate-left-click

On connecting to the second screen with HDMI (with a micro HDMI adapter) the touch an the stylus map the two screen so if you want to limit it to one screen you can see Lock Graphic Tablet to one screen on Linux.

Shortly you can lock the stylus and the touch to tablet scree by:

xinput map-to-output "Goodix Active Stylus Pen Pen (0)" "eDP-1"

where “Goodix Active Stylus Pen Pen (0)” is the selected device to map to the tabled display. You can find it by:

$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech K400 id=13 [slave pointer (2)]
⎜ ↳ Goodix Capacitive TouchScreen id=12 [slave pointer (2)]
⎜ ↳ Goodix Active Stylus Pen Pen (0) id=18 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Intel HID events id=9 [slave keyboard (3)]
↳ Intel HID 5 button array id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Logitech K400 id=14 [slave keyboard (3)]
↳ USB Camera: Main Camera id=15 [slave keyboard (3)]
↳ USB Camera: Front-facing camera id=16 [slave keyboard (3)]
↳ Goodix Active Stylus Pen id=8 [slave keyboard (3)]
↳ Goodix Capacitive TouchScreen id=17 [slave keyboard (3)]

(obviously you can also map the TouchScreen to the tablet monitor)

For multitouch gesture I use touchegg it is fully configurable:

sudo apt install touchegg
mkdir -p ~/.config/touchegg && cp -n /usr/share/touchegg/touchegg.conf ~/.config/touchegg/touchegg.conf

To test run with:

touchegg

I use this config, but pich in seams does not work, at file
~/.config/touchegg/touchegg.conf :

<touchégg>

<settings>
<property name="composed_gestures_time">0</property>
</settings>
<application name="All">

<gesture type="TAP" fingers="2" direction="">
<action type="MOUSE_CLICK">BUTTON=3</action>
</gesture>
<gesture type="DRAG" fingers="2" direction="ALL">
<action type="SCROLL">SPEED=7:INVERTED=false</action>
</gesture>

<gesture type="PINCH" fingers="2" direction="IN">
<action type="SEND_KEYS">Control+minus</action>
</gesture>
<gesture type="PINCH" fingers="2" direction="OUT">
<action type="SEND_KEYS">Control+plus</action>
</gesture>
<gesture type="TAP" fingers="3" direction="ALL">
<action type="SEND_KEYS">Control+Alt+Q</action>
</gesture>
<gesture type="DRAG" fingers="4" direction="LEFT">
<action type="SEND_KEYS">Control+Alt+Right</action>
</gesture>

<gesture type="DRAG" fingers="4" direction="RIGHT">
<action type="SEND_KEYS">Control+Alt+Left</action>
</gesture>
<gesture type="DRAG" fingers="4" direction="UP">
<action type="SEND_KEYS">Control+Alt+Up</action>
</gesture>
<gesture type="DRAG" fingers="4" direction="DOWN">
<action type="SEND_KEYS">Control+Alt+Down</action>
</gesture>
</application> <application name="Firefox"> <gesture type="DRAG" fingers="2" direction="LEFT">
<action type="SEND_KEYS">Alt+Right</action>
</gesture>
<gesture type="DRAG" fingers="2" direction="RIGHT">
<action type="SEND_KEYS">Alt+Left</action>
</gesture>

</application>
</touchégg>

If I run it from a service it generate an error and the newest version does not work, only the repo once. I use the ubuntu repo version (1.1.1–0ubuntu4) and I run it into a shell. An alternative is to recompile it as explained there.

I also use GnomePie to run quickly some category of apps, for example I use from keayboard Ctrl+Alt+M to open a pie with all my favourite application for music, and many other. To use this I create a Pie that include all other my pies and I assign to 3 fingers tap: it simulate the press of Ctrl+Alt+Q that is my saved shortcut.

If you want to completely uninstall run:

sudo apt purge touchegg
rm -rf /usr/share/touchegg
rm -fr ~/.config/touchegg

Also fusuma seams does not work. I do not try libinput-gesture.

I this period I’ ll try to use it without physic keayboard, but no all linux apps are too ready for the touch experience. But also the worth apps seams to be at least usable. So touchegg or similar for touch gesture are very important to have a good touch experience.

In the future I will update this article with new solution. If some readers have better idea to solve the actually problem write there. I dream a community of linux user that use abitually touch feature as user, in order to the touch experience does not remain the prerogative of microsoft, Android and iOs.

Linux user and Open Source fun. Deep learning PhD Student, Full stack web developer, Mobile developer