Skip to content

MotionKey v1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Aug 09:13
fb99283

Control your mouse with hand gestures through a webcam. Everything runs on your
own machine — no account, and no network access after the first run.

Downloads

Pick the installer for your system, or the portable build if you would rather
not install anything.

System Installer Portable
Windows 10/11 (x86_64) MotionKey-*-windows-x86_64-setup.exe MotionKey-*-windows-x86_64.zip
macOS (Apple silicon) MotionKey-*-macos-arm64.dmg MotionKey-*-macos-arm64.tar.gz
Debian, Ubuntu, Mint motionkey_*_amd64.deb MotionKey-*-linux-x86_64.tar.gz
Any other Linux MotionKey-*-linux-x86_64.AppImage same file — it needs no install

Python is bundled, so there is nothing to set up. The hand landmark model
(~8 MB) downloads on first launch and is cached afterwards.

There is no Intel Mac build: MediaPipe has published arm64-only macOS wheels
since 0.10.22, so there is no hand tracker to package. Intel Macs can still run
MotionKey from source against an older MediaPipe.

Verify a download against SHA256SUMS, and check an install at any time with
MotionKey --selftest, which loads every component and runs one inference.

Setup

Windows — run the setup and MotionKey lands in your Start menu. SmartScreen
will say the publisher is unknown, because these builds are not code signed;
choose More info → Run anyway, or check the SHA256 first. For the
command-line options use motionkey-cli.exe, since the windowed build has no
console to print to. The portable zip works the same way, minus the Start menu
entry.

macOS — open the .dmg and drag MotionKey to Applications. The build is
not notarised, so Gatekeeper refuses it on first launch: right-click the app
and choose Open, or clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/MotionKey.app

macOS will then ask for Camera access, and for Accessibility permission under
System Settings → Privacy & Security → Accessibility so the app can move
the pointer.

Debian, Ubuntu, Mintsudo apt install ./motionkey_*_amd64.deb. This
installs the udev rule that grants access to /dev/uinput, which takes effect
at your next login, and adds MotionKey to your application menu.

Any other Linuxchmod +x MotionKey-*.AppImage and run it. If the app
reports the uinput backend as unavailable, grant access once:

echo 'KERNEL=="uinput", MODE="0660", GROUP="input", TAG+="uaccess"' \
  | sudo tee /etc/udev/rules.d/60-motionkey-uinput.rules
sudo udevadm control --reload && sudo udevadm trigger

uinput is how MotionKey moves the pointer, and the only method that works under
Wayland.

Gestures

Pose Action
Hand held up Cursor follows your hand
Tap thumb + index Left click
Pinch thumb + index and hold Click and drag
Tap thumb + middle Right click
Tap thumb + ring Middle click
Raise index + middle, move hand Scroll
Make a fist Freeze the cursor
Hold that fist ~1.5 s Pause / resume tracking

Every gesture can be switched off, and pinch sensitivity, click/drag threshold
and scroll speed are all adjustable in the app.

If a gesture does not trigger reliably, run MotionKey --diagnose. It measures
your own hand against the thresholds and prints what it sees, which beats
guessing at the sliders.