Intuitive
Pinch to pick a window up. Make a fist to shut it. Turn a knob in the air for the volume. Gestures your hands already know.
Hand-gesture window control for Linux
HoloTouch lets you control the windows on your desktop with your hands in the air. A webcam watches them, and windows move, resize, close, scroll and switch.
Most attempts at spatial control map your hand to the pointer and stop there: a few awkward gestures, laid on top of an interface built for a keyboard and mouse. HoloTouch starts from what hands already do.
Pinch to pick a window up. Make a fist to shut it. Turn a knob in the air for the volume. Gestures your hands already know.
It uses the room around you. Tip two fingers at the screen to scroll, or touch a fist to your chin and every window is laid out as a card.
Replace what the pie menu holds, add macros you fingerspell, and record your own hands to teach it your alphabet.
Thirty frames a second on a laptop CPU, with an ordinary webcam. A slow hand does not jitter and a fast one does not lag.
The closest you will get to Tony Stark tossing windows around.
Each is shown the way the control panel's guide shows it: a hand, and what it acts on.
Pinch over a window and carry it. A quick pinch brings it to the front.
While one hand holds a window, pinch with the other and pull them apart.
Flick it up and let go to maximize it, down to minimize it.
Carry a window to the left or right edge of the screen and wait there.
Point up, thumb out, then tap the thumb down onto your middle finger. Twice is a double click; keep it down to drag.
Move toward an item and let go to pick it: apps, windows, music.
Hold a fist over the window until the ring completes.
Tip the two fingers at the screen to scroll down, straighten them up to scroll up: the further, the faster.
Grip a knob in the air and turn it. Right hand: volume. Left: brightness.
Sweep an open hand quickly to the right to press the Enter key.
Every window becomes a card. Point at one and pinch to go to it.
Hold both up until the ring completes to open the camera and take a photo.
Hold up the letter Y and speak. Let go, and what you said is typed where the keyboard is.
Hold up I love you, then fingerspell an app's name until it is the only one left, or a macro's letters.
With a web browser in front, clap your hands twice to open a new tab in it.
From 21 landmarks a hand, HoloTouch measures how far the thumb is from each fingertip and how curled each finger is, in palm lengths. Hand-written rules turn that into a pose.
An open palm. Swept fast to the right, it presses Enter.
The eleventh is a hand at rest, which does nothing. Each pose has separate thresholds for entering and leaving, and must hold for a moment before it counts, so a pose does not flicker.
A see-through, click-through layer shows where your hands are and what each gesture is about to do. Every shape pairs cream with ink, so it reads over light and dark windows alike.
Small and pale once a hand has made no gesture for a while.
An open ring. The desktop shows through it.
The ring tightens and a dot grows as the fingers close.
The dot is full: the hand has hold of something.
Three kinds of process: a tracker that finds hands, a core that turns them into gestures and acts on windows, and an optional control panel that starts, stops and watches the core.
The webcam is read at 1280×720, 30 frames a second. MediaPipe finds up to two hands, 21 landmarks each, and a face mesh for the chin. It runs in a process of its own, so inference never stalls the overlay.
Each hand keeps its identity when hands cross. A 1€ filter smooths a slow hand hard and a fast hand lightly. The engine starts the matching interaction, and one runs at a time.
xfwm4's windows are changed with standard EWMH requests. Clicks and keys go through XTEST, and scrolling through a virtual mouse for smooth wheel events.
A fullscreen, transparent Qt Quick window sits above everything and draws the cursors, frames, menus and rings. Nothing samples or blurs the desktop.
HoloTouch runs on a laptop CPU with an ordinary webcam.
A few tools are optional, each for one feature: smooth scrolling, volume, dictation and the rest. holotouch doctor reports which are present.
$ git clone https://github.com/justanotherinternetguy/HoloTouch $ cd HoloTouch $ uv sync $ uv run holotouch doctor $ uv run holotouch panel
holotouch panelholotouch runholotouch run --dry-runholotouch doctor