Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Stage 18 — Multi-finger Window Gestures

What it is. This stage adds opt-in two- and three-finger directional touchscreen triggers to the shared input-action mapping layer.

Gate: On the FP5 reference profile, a two-finger directional swipe swaps the focused tiled window with its spatial neighbor, a three-finger vertical swipe closes it, and a three-finger horizontal swipe sends it around the workspace ring.

Configuration

gesture = two-up, movewindow, u
gesture = two-down, movewindow, d
gesture = two-left, movewindow, l
gesture = two-right, movewindow, r

gesture = three-up, close
gesture = three-down, close
gesture = three-left, movetoworkspaceprev
gesture = three-right, movetoworkspacenext

The movewindow and close actions are the same actions available to keyboard bindings. movetoworkspacenext and movetoworkspaceprev extend that shared action vocabulary with relative, wrapping workspace targets. Moving a window does not switch the displayed workspace.

The FP5 maps a leftward three-finger swipe to the previous workspace and a rightward swipe to the next workspace, so the window follows the physical direction of the fingers.

Touch arbitration

One-finger central touch remains native application input. If a second finger arrives while multi-finger triggers are enabled, 0xin cancels the client’s Wayland touch sequence and promotes both points to a compositor gesture. A third finger promotes that same group to the three-finger trigger set.

Recognition uses centroid travel of at least 70 logical pixels. Every finger must travel at least 35 logical pixels in the selected direction, preventing a single moving finger plus stationary taps from firing an action. A gesture fires at most once and remains compositor-owned until all fingers lift.

Profiles without any two-* or three-* mappings do not enable this arbitration path.

Scope

These triggers describe physical input, not FP5 policy. Other touchscreen Wayland devices can reuse them with different shared actions. Touchpad gesture protocols remain separate future input sources because they arrive through libinput gesture events rather than touchscreen contact points.