Background
- Tablet-style computers with touchscreens have become more popular
- There are generally 2 types of devices
- Tablet computers
- Primary input via the touchscreen (on screen keyboard)
- There may be a attachable (proprietary port) or bluetooth keyboard
- Hybrid/convertable/2-in-1 laptops
- Primary input is via the keyboard
- The laptop can be changed into tablet-mode by rotating the screen
- Tablet computers
- These often require special hardware
- Screen rotation detection: accelerometer
- Tablet mode detection: hinge/lid switch
- Touchscreen: digitiser and stylus HID devices
Current support
Debian 12 (bookworm)
- Touchscreen support requires compatible hardware
- The most common compatible brands are:
- Wacom
- Synaptics
Wayland (libinput)
- Touchscreen support on Wayland is handled by libinput
- libinput handles all touch-controlled HID devices, including: touchpad, trackpoint, touchscreen etc.
- Operations supported (with compatible hardware)
- Single finger touch:
- Tap-to-click
- Edge scrolling
- Multi-finger touch:
- 2 finger actions: right mouse button (tap), scroll (vertical and horizontal)
- 3 finger actions: activities overview (down), switch workspace (left/right)
- 4 finger actions: undefined
- Thumb detection
- Palm rejection
- Stylus operations:
- Requires protocol compatibility between stylus and touchscreen
- Wacom AES 1.0: active (requires battery) electrostatic pen, pressure-sensitive
- Wacom AES 2.0: similar to AES 1.0 but with added tilt detection and higher polling rate (backwards compatibility is dependent on touchscreen)
- Synaptic: active electrostatic
- Stylus button support requires bluetooth connectivity
- Screen rotation
- Hinge-position/tablet-mode detection: disabling keyboard/touchpad
- Screen lid closure detection
- Single finger touch:
Further info on libinput can be found here: https://wayland.freedesktop.org/libinput/doc/latest/#
X11 (xf86-input)
- Requires the correct xinput packages
- Wacom: xf86-input-wacom
- Synaptics: xf86-input-synaptics
- Libinput compatbility: xf86-input-libinput
On screen keyboard
- GNOME
- On screen keyboard support can be enabled in accessibility tools
- OSK is buggy using Xwayland
- - fix: Gnome extensions improved OSK: to show OSK button in taskbar
Requirements/user expectations
- Using the finger to scroll (e.g. in a PDF)
- This is actually very different to using a scrollbar, and many apps don't support it
- Multi-touch input
- e.g. user can zoom or rotate an image by touch the screen with two fingers, and moving the fingers in different directions across the screen, as many smartphones can do.
- Automatic or convenient screen rotation
- Virtual keyboard on-screen
- Handwriting recognition
Current status
- Many of these things don't happen `out of the box' with Debian
- Some things can be achieved with small changes (e.g. removing evince and installing okular, a screen reader that supports touch)
- Some things require moderate amount of effort, e.g. using the Thinkpad X220 Tablet is not possible with the Xorg version in Squeeze. The user must update their kernel (from backports) and take the Xorg packages from sid.
- Some things require effort (writing a script to handle rotation events and invoking xrandr in a meaningful way for the particular device)
Useful packages
- okular - screen reader for PDF, ebooks, with touch scrolling support
- xournal - support for stylus with draw and eraser functions
- xserver-xorg-input-wacom - Wacom tablet support for Xorg
- xserver-xorg-input-multitouch - for multi-touch input
- gok - Gnome On-screen Keyboard
- florence - another on-screen keyboard
- caribou - an alternative to gok
Iceweasel add-ons
- "Grab and Drag" - enables grabbing type scrolling within Iceweasel
Useful links
WacomTablets - for Thinkpads tablets too
http://florence.sourceforge.net/english/alternatives.html - list of on-screen keyboards for Gnome / X
Fixing tap on touch screens
When you tap on touch screen and it only moves a pointer you can fix it by finding
MatchIsTouchscreen "on"
in /usr/share/X11/xorg.conf.d/40-libinput.conf file and adding
Option "Gesture" "off"
somewhere between Section and EndSection.
But be aware that will block screen gestures like resizing with two fingers.
