x64/x86 Tablet HOWTO - draft for a wiki page - help appreciated

x64/86 Tablet HOWTO
This text could develop to a wiki page some day. People who want to contribute are very welcome. Please drop me a line or comment. The strange expression "x64/86 tablet" means non-android- and non-iOS-tablets, which can boot like standard PCs and can install standard PS OS'es like Linux orWindows.

Some time ago, the hinges of my girl friend's Medion P2122 convertible got broken. I was worried about throwing it away, so I tried to give the screen part of it a second life as a tablet. Bad idea... so many hours I wasted.

In the end I found a solution which works not too badly. One minor flaw remains: "Swipe (scroll) with one finger" - or "touch-and-swipe", as you are used from your smartphone or non-linux tablet, is not supported by the OS, and it is not likely that it will be very soon. For details, see below under "wishlist #1" (could somebody please tell me how to place an anchor link in this software? ). But you can find acceptable workarounds on that.

What did NOT work:

  • ubuntu GNOME 18
  • ubuntu KDE 18 & 19
  • plasma touch

GNOME (allthough I'm a fan of it) does not at all work, buttons are way too small and cannot really be resized. KDE is the better choice, as it's much more configurable.

Here I'll report the tweaks I applied, hopefully it saves you some trouble and gives your tablet a 2nd life as well. These solutions were achieved with highly honoured help of fellows @Librewish and @tbg. I owe you a bucket of franconian beer.

This is what you can do:

0. Make sure you have a USB keyboard and mouse by your hand.
Situations may occur you can only resolve with "real" input devices, not with the touch screen.

1. install manjaro KDE (guess Arch will do as well, but I didnt try)
Manjaro KDE offers a system wide scaling feature, in wayland as well as in Xorg. That makes it the better choice over ubuntu. I didnt try centOS.

2. Button and icons are too small to be hit with a finger, scrollbars too narrow, so:
system settings > Display > scaling > to your needs (2x may be good to begin with)

3. the bottom menu bar with its icons is too small:
right bottom > click settings symbol > scale "height" of menu bar

4. You need a virtual (screen) keyboard:

  • install "onboard" virtual keyboard - see software install / remove
  • add "onboard" to auto start items.

My favourite controls for onboard:

  • general > #3 display floating symbol... - shows a symbol which brings back onboard quickly when hit
  • window #3 keep at active desktop

5. You want to log back (after logout) without a physical keyboard.
To resolve that: edit /etc/sddm.conf by
sudo nano /etc/sddm.conf
change

[General]
InputMethod=

to

[General]
InputMethod=qtvirtualkeyboard

6. You want click&hold emulate the right mouse button
install evdev-right-click-emulation:

  • activate AUR at "add / remove software"

  • build and install evdev-right-click-emulation

  • at the terminal:
    sudo systemctl enable evdev-rce --now

You find the home of this piece here: https://github.com/PeterCxy/evdev-right-click-emulation
Buy this brave man a beer!

7. You may want to disable need to re-login after suspend
If your tablet is not used in a business environment, you may not want to log back after any suspend, as your tablet may not keep relevant secrets. Under system settings > workspace behaviour > screen lock you can disable screen lock. If the control crashes, changing the view of system settings (to "icon view" or "sidebar view") may help.

8. You want safe experiments
When tinkering with screen resolutions and orientations, you can make your tablet unuseable: The magnification can be so great that you can no longer manipulate your device. So create a test user and make sure, auto login is NOT activated. It may be necessary to delete and recreate it occasionally.
**USE IT FOR EXPERIMENTS WITH SCALING AND ROTATION. THESE EXPERIMENTS ARE DANGEROUS. BELIVE ME. **
(I'm writing this after a reinstall, because non of my auto-login users could be handeled any longer.

9. You want auto-rotate
Be very careful with manual rotate of the screen. You can
To achieve the screen to change its orientation when you flip orientation of your tablet, you can use out of these packages:

Both can be found at pamac, you need AUR activated. I only tried screenrotator, which worked nicely out of the box. More info on screen rotation can be found at https://wiki.archlinux.org/index.php/Tablet_PC#With_a_KDE_module.

10. You want to use touch-friendly software
In the introduction I mentioned that the OS does not support "touch-and-swipe" natively. For this reason, in the beginning your system does not feel very much "tablet-like". You can circumvent this malaise by using software which is touch-friendly. Here is a small collection of software which works nicely and provides "touch-and-sweep". (contributions to this list are highly welcome)

Browser
Moving a window in Firefox is really tricky. Chromium does a much better job. Popup menus open when touched for ~ 1 sec. and then released. (Sorry, again this is a little tricky)

File manager
Default dolphin does a good job.

PDF viewer
Default "okular" may not be the best choice. "Atril PDF viewer" has everything I need.

11. You may want to try wayland
After logout, you can switch to wayland with the bottom left control (assumed wayland is installed). Try. It should grow better over the time, 2020-01 to me it was not THE choice, all the handling with virtual keyboard was close to painful.

Wishlist

1. scroll by one finger
At a smartphone, you just touch-and-swipe. You will expect the tablet to behave alike, but it does not. So a similar solution would be nice. The actual situation has the advantage that selecting text is very convenient. So best would be to have a gesture to switch between both modes. The packages "touchegg" or "easystroke" should be able to trigger the gestures, but first we need to switch to the "smartphone swipe mode".

This problem seems to be a really hard one. HERE you can find extremely detailed and knowledgeable information about this issue. The short message is that programmers should use "Qt Quick" for their apps to implement "scroll with one finger". It looks as if there is no easy solution to implement it system-wide.

Nevertheless, the present situation is acceptable, linux'es broad variety in software gives a fair chance to find an acceptable solution for most every-day-tasks.

Bug reports (RFEs) filed under
https://bugs.kde.org/show_bug.cgi?id=417302
https://bugreports.qt.io/browse/QTBUG-82734

2. start menu scrollbar and behaviour is sub-optimal
Most windows can be scrolled quite well with the scrollbar. At the start menu, that is so narrow that you can hardly use it. So a wider scrollbar would be helpful.

3. small icons in the menu bar are too small, even if menu bar is resized
WiFi, bluetooth, clipboard etc. are difficult to hit. How can they be resized?

These are the threads which helped me so much:

https://archived.forum.manjaro.org/t/rotate-screen/121634
https://archived.forum.manjaro.org/t/solved-no-virtual-keyboard-after-logout/121636
https://archived.forum.manjaro.org/t/tablet-emulate-right-mouse-button-by-long-press/121526

My respect goes to all those who helped me so quickly and competently.

2 Likes

#5 - just disable the lock then

yes! How can I?

System Settings > Workspace Behavior > Screen Locking

All those controls under "workspace behaviour" crash when launched... ):

I think the use of tablet is way too generic. There are:

  • Slate tablets (that come with their own software: Android, iOS, Chrome OS and some Windows)
  • PC tablets (that mostly come with Windows)
  • Display tablets (that are attached to a PC or Laptop) and work as secondary monitor + stylus functions
  • Hybrid tablets also known as Companion models (Wacom did a few of them and have an OS preinstalled - Android or Windows) but also can be connected to another PC or Laptop and become as display tablets + stylus functions.
  • Classic tablets - that have no display, only a surface for stylus and some touch/gesture functions, while connected to PC or Laptop.
  • Paper tablets - that can transfer the information you draw traditionally (while the paper is on it) to a digital format (see the Repaper product from iskn) - and variations of such products ...

The reason i mention that the terminology should be specific, is that, in case someone is looking for a solution for their particular issue, will not try to fix their issue with something that has no relation with their tablet, and somehow to slide their view off that, for instance, this was for a Medion P2122 convertible ... :slight_smile:

Switch System Settings to Sidebar View instead of Icon View.

Worked the other way round. Thank you - integrated into the text.

Agreed. What do you think about "x64-tablet"? Still, this terminus covers more than intended, but narrows it down a little at least.

Hy i have a convertible and i like to use the stylus if i fold the display and therefor needed a upside down view on the pc/tablett with the correct inputs!

Therefor i made a script that if run turns the display 180 degree and aswell the input of the stylus!
I actually found a few workarounds online but don't recognize the threads i was viewing back then.

The only thing that is kinda ■■■■ is that if you dont use the stylus before rotating the screen the stylus has the wrong inputs so u need to rerun the script in order to work properly -.-

Since the script uses xinput aswell as xrand and onboard as a screen keyboard one needs those but besides that it's working nicely for me :slight_smile:

#!/usr/bin/env python3
import subprocess
import os

# --- set the name of the screen and the rotate direction below
screen = "eDP"
rotate = "inverted"

TRANSFORM = 'Coordinate Transformation Matrix'
TOUCHPAD = 'Wacom HID 51C4 Finger'
# TOUCHSCREEN = 'Wacom HID 51C4 Pen Pen (0x9fd486a4)'
# TOUCHSCREEN = 'Wacom HID 51C4 Pen Pen (0)'
TOUCHSCREEN = "16"
ERASER = 'Wacom HID 51C4 Pen Eraser (0x9fd486a4)'
# ---

matchline = [
    l.split()
    for l in subprocess.check_output(["xrandr"]).decode("utf-8").splitlines()
    if l.startswith(screen)
][0]
s = matchline[matchline.index([s for s in matchline if s.count("+") == 2][0]) +
              1]

if s == rotate:
    # normal Mode
    
    subprocess.Popen(["killall", "onboard"])
    subprocess.call(["xrandr", "-o", "normal"])
    subprocess.call([
        "xinput", "set-prop", TOUCHPAD, TRANSFORM, "0", "0", "0", "0", "0",
        "0", "0", "0", "0"
    ])
    subprocess.call([
        "xinput", "set-prop", TOUCHSCREEN, TRANSFORM, "0", "0", "0", "0", "0",
        "0", "0", "0", "0"
    ])
    subprocess.call([
        "xinput", "set-prop", ERASER, TRANSFORM, "0", "0", "0", "0", "0", "0",
        "0", "0", "0"
    ])
else:
    # Tablet Mode
    subprocess.Popen(["onboard", "&"])
    subprocess.call(["xrandr", "-o", rotate])
    subprocess.call([
        "xinput", "set-prop", TOUCHPAD, TRANSFORM, "-1", "0", "1", "0", "-1",
        "1", "0", "0", "1"
    ])
    subprocess.call([
        "xinput", "set-prop", TOUCHSCREEN, TRANSFORM, "-1", "0", "1", "0",
        "-1", "1", "0", "0", "1"
    ])
    subprocess.call([
        "xinput", "set-prop", ERASER, TRANSFORM, "-1", "0", "1", "0", "-1",
        "1", "0", "0", "1"
    ])
    subprocess.call(["onboard", "&"])

Thank you for your hint. As I'm more the dummy type of user, I preferred the out-of-the-box solution now mentioned above.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by