mozkeys is a lightweight background utility that turns your keyboard into a full mouse replacement , with smooth acceleration, instant clicks, and zero configuration required to get started.
Enter and exit mouse mode with a quick double-tap of CapsLock. Clever reuse of a key you barely use anyway.
Right Shift = left click. Right Ctrl = right click. Left Shift and Ctrl keep working normally in every app.
Starts slow for precision, ramps up fast when you hold a direction. Movement is computed at 240 Hz , not driven by OS key-repeat.
Hold CapsLock while in mouse mode to instantly slow the cursor to 30% speed for pixel-perfect positioning.
Page Up / Down scrolls vertically. Home / End scrolls horizontally. Works in every application.
A plain TOML file controls every key binding, speed, and trigger. No GUI required. Sensible defaults out of the box.
No tray icon, no window, no installer. Runs silently as a background process. Start it with Windows and forget it's there.
Native Win32 APIs only. No Electron, no runtime, no garbage collector. Single 612 KB executable.
Tools like NeatMouse overlay a separate mode-toggle key or require holding a dedicated hotkey. mozkeys is smarter about it.
All bindings are configurable via the TOML config file. These are the defaults.
| Key | Action | Notes |
|---|---|---|
| CapsLock × 2 | Enter / exit mouse mode | Both taps within 250 ms |
| ↑ ↓ ← → | Move cursor | Accelerates on hold |
| Hold CapsLock | Precision mode | Reduces speed to 30% |
| Right Shift | Left click | Left Shift unaffected |
| Right Ctrl | Right click | Left Ctrl unaffected |
| Alt | Middle click | |
| Page Up / Page Down | Scroll up / down | |
| Home / End | Scroll left / right | |
| Escape | Exit mouse mode |
All keys are only active while mouse mode is on. Your keyboard behaves completely normally at all other times.
mozkeys is designed around the constraint that every millisecond matters in an input utility.
A dedicated thread installs a WH_KEYBOARD_LL hook via Win32 and runs a GetMessageW loop. Every keydown/keyup writes a single atomic timestamp , no allocations, no locks, returns in under 1 µs.
A second thread wakes at precisely 240 Hz using QueryPerformanceCounter. It reads the atomic key states, computes the cursor delta using the acceleration curve, and dispatches SendInput. No OS key-repeat involved.
Fractional pixel deltas accumulate across ticks rather than being truncated, giving perfectly smooth movement at all speeds including slow precision mode , no visible stepping.
Speed follows v = base + accel × t1.5. Starts at your configured base speed instantly, ramps smoothly, then plateaus at max speed. No dead zone. No sudden jumps.
On first run mozkeys writes a default config to
%APPDATA%\mozkeys\config.toml.
Edit it in Notepad, save, and restart the app. Every setting is commented.
# mozkeys configuration [general] mouse_mode = "capslock_doubletap" # capslock_doubletap | capslock_hold | right_alt double_tap_ms = 250 # max gap between taps (ms) exit_key = "escape" [movement] base_speed = 5.0 # pixels/tick at start (≈1200 px/s at 240 Hz) max_speed = 20.0 # pixels/tick at max (≈4800 px/s at 240 Hz) acceleration = 1.4 # ramp factor tick_rate = 240 # movement loop Hz [clicks] left = "rshift" # Right Shift only , Left Shift still works normally right = "rctrl" # Right Ctrl only , Left Ctrl still works normally middle = "alt" [precision] modifier = "capslock" # hold while in mouse mode for slow movement multiplier = 0.3 [scroll] up = "pageup" down = "pagedown" speed = 3
Download the executable, drop it anywhere, and run it. No installer. No admin rights required for normal use. No dependencies.
Windows 10 / 11 x64 · No installation · 612 KB · Built with Rust
Yes. mozkeys uses a low-level Windows keyboard hook (WH_KEYBOARD_LL) and SendInput for mouse events, both of which operate globally and work in any application , including games, terminals, browsers, and design tools. The only exception is applications running at higher privilege (e.g. Task Manager open as Administrator), where Windows itself blocks input injection for security.
CapsLock is one of the few keys that is almost never used intentionally yet occupies prime keyboard real estate. mozkeys intercepts CapsLock entirely in mouse mode and suppresses the caps-toggle side-effect. Outside of mouse mode, CapsLock still works as normal. The double-tap entry gesture is fast and natural , two quick taps to enter, one tap of Escape to exit.
Taking both Shift keys would break common shortcuts like Shift+Click (range select), Shift+Arrow (text selection), and Shift+Enter inside applications. By binding only the right-hand variants, your left-hand Shift and Ctrl remain fully functional at all times , even while mouse mode is active. This lets you hold Left Shift and click with Right Shift to do a shift-click, for example.
Most keyboard-to-mouse tools tie cursor movement to the OS key-repeat rate, which is designed for text input (typically 30–50 events/s with a noticeable initial delay). mozkeys runs its own independent 240 Hz loop using QueryPerformanceCounter , no OS key-repeat involved. Sub-pixel fractional deltas are accumulated across ticks and dispatched as whole pixels only when they exceed 1 px, eliminating stepping at low speeds.
Not automatically. To run at startup, create a shortcut to mozkeys.exe in your Windows Startup folder (Win+R, type shell:startup). A dedicated startup flag may be added in a future release.
Yes. The config supports three trigger modes: capslock_doubletap (default), capslock_hold, and right_alt. Support for arbitrary custom combos is planned for a future release.
The architecture was designed with portability in mind. Platform-specific code is isolated under platform/windows/. Linux (via evdev / uinput) and macOS (via CGEventTap) support is on the roadmap, but Windows is the current focus.