Skip to main content

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 in input group)

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

touchview-0.2.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

touchview-0.2.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

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

Hashes for touchview-0.2.0.tar.gz
Algorithm Hash digest
SHA256 914996d5c08b041e56cb2da2bc8de1c91e4b30e0b871ac980382a6637564d16d
MD5 677e56ddd28e136da0971a94460c1b6a
BLAKE2b-256 92544a71c802d52fefb059d9c5db7a68b509c0a877ba9d08a57d1aa274378b00

See more details on using hashes here.

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

Hashes for touchview-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f7be9632fe9a04ffab2c5593e5ac6d64208e89956ee05f319122870bb9dbc80
MD5 32234594e0c3de07564c63fb55818aaa
BLAKE2b-256 fc8c7ea5b407914a0a814b308b0034d849a78f8f184177b45b2ea223c8a20a4d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page