Record your own gestures
Save multiple samples for each gesture so natural variations remain comfortable to use.
Draw a gesture. Get things done.
Turn natural mouse movements into shortcuts, commands, and repeatable desktop workflows. Run actions against the current focus or keep them associated with the window beneath the pointer when drawing begins.
Highlights
From a single shortcut to a multi-step desktop workflow, PulseGesture gives you a flexible and visual way to stay in control.
Save multiple samples for each gesture so natural variations remain comfortable to use.
Choose the left, middle, or right mouse button, with optional Ctrl, Alt, Shift, or Meta modifiers.
Run one or more keyboard shortcuts in order, with an optional delay before every step.
Connect a gesture to a trusted system command and extend your personal automations.
Create, record, edit, and remove gestures from a clear interface in English or Chinese.
Use the system tray, pause recognition, and optionally launch PulseGesture when you sign in.
Keep an action associated with the window beneath the pointer when drawing begins, without sending it elsewhere if that window disappears.
Let the same gesture run a different shortcut, command, or no action in selected applications.
Choose the trail color, see the matched gesture name while drawing, and confirm direction with preview arrows.
Precise execution
Choose the execution target that fits your workflow. Application-specific actions are available in Gesture Start Window mode.
Run the gesture’s global action in whichever window is focused when the action executes.
Keep the action associated with the window beneath the pointer when drawing begins, with optional actions for each application.
Three simple steps
Draw one or more samples, name the gesture, and save the way that feels natural to you.
Choose a shortcut sequence or trusted command, adding step delays when you need them.
Hold your trigger, draw the gesture, and release the mouse button to run the action.
Cross-platform
Keep the same familiar gesture workflow across the desktop operating systems you use.
No advance setup. Download and start a standalone x86_64 or ARM64 build.
No advance setup. Intel and Apple silicon builds are available as a binary or menu-bar `.app`.
Standalone and AppImage builds for both x86_64 and ARM64 systems.
Windows and macOS are ready after download. Linux requires the one-time system setup below; the visible trail on Wayland requires XWayland.
Before first launch
Windows and macOS need no advance setup. Before its first Linux launch, configure input access, uinput, and udev. These commands cover X11 and Wayland on Debian/Ubuntu-based distributions.
The input group can read keyboard and mouse activity, including sensitive input such as passwords. Add only trusted users.
The visible gesture trail on Wayland requires XWayland. Installing the same tool set in an X11 session is harmless.
sudo apt update
sudo apt install xwayland xdg-utils unzipCreate the input group if needed, then add your current user to it.
getent group input >/dev/null || sudo groupadd --system input
sudo usermod -aG input "$USER"Load the kernel module now and configure it to load automatically after future boots.
sudo modprobe uinput
echo uinput | sudo tee /etc/modules-load.d/pulse-gesture.conf >/dev/null
ls -l /dev/uinputAdd the device identity and access rules, then reload and apply them with udev.
/etc/udev/rules.d/69-pulse-gesture.rules
sudo tee /etc/udev/rules.d/69-pulse-gesture.rules >/dev/null <<'EOF'
ACTION!="remove", SUBSYSTEM=="input", KERNEL=="event*", ATTRS{phys}=="pulse-gesture/*", ATTRS{id/bustype}=="0003", ENV{ID_BUS}="usb"
ACTION!="remove", SUBSYSTEM=="input", KERNEL=="event*", ATTRS{phys}=="pulse-gesture/*", ATTRS{id/bustype}=="0005", ENV{ID_BUS}="bluetooth"
EOF/etc/udev/rules.d/99-pulse-gesture.rules
sudo tee /etc/udev/rules.d/99-pulse-gesture.rules >/dev/null <<'EOF'
KERNEL=="event*", SUBSYSTEM=="input", MODE="0660", GROUP="input"
KERNEL=="uinput", SUBSYSTEM=="misc", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput"
EOFsudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=input --action=change
sudo udevadm trigger --subsystem-match=misc --action=change
sudo udevadm settleNew group membership does not affect the current session. Rebooting is the most reliable option.
sudo rebootX11: XDG_SESSION_TYPE should be x11 and DISPLAY must not be empty.
printf 'session=%s\ndisplay=%s\n' "$XDG_SESSION_TYPE" "$DISPLAY"Wayland: WAYLAND_DISPLAY and DISPLAY must both be present, and XWayland must be running or available on demand.
printf 'session=%s\nwayland=%s\ndisplay=%s\n' \
"$XDG_SESSION_TYPE" "$WAYLAND_DISPLAY" "$DISPLAY"
pgrep -a Xwayland || trueIf you see cannot connect to X11, sign out and sign in again. If Wayland still fails, use an X11 session. Always run PulseGesture as your normal user, never with sudo.
PulseGesture is free and requires no registration. Visit GitHub Releases and choose the standalone build or AppImage for your operating system and processor architecture.
Download freeWindows, macOS, and Linux · x86_64 and ARM64