TouchView
Wayland overlays for visualizing touchpad/touchscreen gestures and keyboard shortcuts. Shows semi-transparent panels using Layer Shell's OVERLAY layer — sits above all windows and panels, fully click-through.
Useful for demos, screen recordings, and showcasing compositor features.
Example (driftwm window movement):
https://github.com/user-attachments/assets/363d7252-dc28-4cf0-9c30-b7ca2e617972
Tools
touchview— finger position overlay: a touchpad (white dots on a dark panel) or a touchscreen (--source touchscreen— circles at the real screen position, fullscreen, like Android's "show touches")keyview— keyboard shortcut overlay (shows key combos like "Super + L", "Alt + Tab")
Requirements
- Wayland compositor with layer shell support (sway, Hyprland, etc.)
gtk4-layer-shell(system package)- Access to
/dev/input/event*(user must be ininputgroup)
Install
pip install touchview
Or with uv:
uv tool install touchview
From source:
git clone https://github.com/malbiruk/touchview.git
cd touchview
pip install .
touchview
Visualizes finger positions in real-time. Two modes:
- touchpad (default) — dots on a dark panel anchored to a screen corner.
- touchscreen (
--source touchscreen) — circles drawn at the real finger position on a fullscreen click-through overlay, like Android's "show touches". Ideal for screen-recording touchscreen demos.
touchview [OPTIONS]
| Flag | Default | Description |
|---|---|---|
--source |
touchpad |
touchpad (panel) or touchscreen (fullscreen, absolute) |
--rotate |
0 |
Panel rotation 0/90/180/270 (touchscreen mode, if dots don't track) |
--dot-color HEX |
#ffffff |
Finger dot color |
--dot-opacity F |
0.95 |
Dot opacity (0-1) |
--dot-size PX |
18 |
Dot radius |
--glow-size PX |
48 |
Glow radius |
--bg-color HEX |
#000000 |
Background color (touchpad mode) |
--bg-opacity F |
0.6 |
Background opacity 0-1 (touchpad mode) |
--height PX |
400 |
Panel height, width from aspect ratio (touchpad mode) |
--radius PX |
24 |
Corner radius (touchpad mode) |
--position |
bottom-right |
Panel position (touchpad mode) |
--margin PX |
20 |
Edge margin (touchpad mode) |
Touchscreen mode is fullscreen with no backdrop, so --bg-*, --height, --radius, --position, and --margin apply to touchpad (panel) mode only.
# Touchpad: blue-tinted panel, bottom-left
touchview --bg-color '#1a1a2e' --position bottom-left
# Touchscreen: circles at your fingertips, fullscreen — for screen recordings
touchview --source touchscreen
# Rotated tablet — bump --rotate until the circles track your finger
touchview --source touchscreen --rotate 270
keyview
Shows keyboard shortcuts and key combos as an overlay.
- Modifier combos (Ctrl, Alt, Super, Shift + key) display as "Super + L"
- Lone modifier taps show the modifier name
- Auto-fades after timeout
keyview [OPTIONS]
| Flag | Default | Description |
|---|---|---|
--bg-color HEX |
#000000 |
Background color |
--bg-opacity F |
0.6 |
Background opacity (0-1) |
--text-color HEX |
#ffffff |
Text color |
--text-opacity F |
0.95 |
Text opacity (0-1) |
--font-size PX |
40 |
Font size |
--radius PX |
16 |
Corner radius |
--timeout SEC |
1.5 |
Seconds before fade |
--position |
bottom-left |
Window position |
--margin PX |
20 |
Edge margin |
# Both tools side by side — touchview right, keyview left
touchview --position bottom-right &
keyview --position bottom-left &
Positions
Both tools support: top-left, top, top-right, left, right, bottom-left, bottom, bottom-right
Permissions
sudo usermod -aG input $USER
# then log out and back in
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file touchview-0.2.0.tar.gz.
File metadata
- Download URL: touchview-0.2.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux ARM","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
914996d5c08b041e56cb2da2bc8de1c91e4b30e0b871ac980382a6637564d16d
|
|
| MD5 |
677e56ddd28e136da0971a94460c1b6a
|
|
| BLAKE2b-256 |
92544a71c802d52fefb059d9c5db7a68b509c0a877ba9d08a57d1aa274378b00
|
File details
Details for the file touchview-0.2.0-py3-none-any.whl.
File metadata
- Download URL: touchview-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux ARM","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f7be9632fe9a04ffab2c5593e5ac6d64208e89956ee05f319122870bb9dbc80
|
|
| MD5 |
32234594e0c3de07564c63fb55818aaa
|
|
| BLAKE2b-256 |
fc8c7ea5b407914a0a814b308b0034d849a78f8f184177b45b2ea223c8a20a4d
|