Windows utility

Wield the mouse
from your keyboard.

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.

Mouse Mode: OFF
Trigger
CapsLock
Move
Click
RShift Left Click
RCtrl Right Click
612 KB binary size
<5 ms input latency
240 Hz movement loop
<0.2% idle CPU
~5 MB RAM usage

Everything you need.
Nothing you don't.

⌨️

Double-tap CapsLock

Enter and exit mouse mode with a quick double-tap of CapsLock. Clever reuse of a key you barely use anyway.

🖱️

Right-hand clicks

Right Shift = left click. Right Ctrl = right click. Left Shift and Ctrl keep working normally in every app.

Smooth acceleration

Starts slow for precision, ramps up fast when you hold a direction. Movement is computed at 240 Hz , not driven by OS key-repeat.

🎯

Precision mode

Hold CapsLock while in mouse mode to instantly slow the cursor to 30% speed for pixel-perfect positioning.

📜

Scrolling

Page Up / Down scrolls vertically. Home / End scrolls horizontally. Works in every application.

🔧

Fully configurable

A plain TOML file controls every key binding, speed, and trigger. No GUI required. Sensible defaults out of the box.

👻

Invisible by design

No tray icon, no window, no installer. Runs silently as a background process. Start it with Windows and forget it's there.

🦀

Built in Rust

Native Win32 APIs only. No Electron, no runtime, no garbage collector. Single 612 KB executable.

Different by design.

Tools like NeatMouse overlay a separate mode-toggle key or require holding a dedicated hotkey. mozkeys is smarter about it.

mozkeys

  • Double-tap CapsLock , a key already on every keyboard that you almost never use for caps.
  • Right Shift / Right Ctrl for clicks , left-hand modifiers remain fully functional.
  • 240 Hz deterministic loop , movement is independent of OS key-repeat rate or focus.
  • Sub-pixel accumulation , smooth at all speeds, no pixel-skipping jitter.
  • 612 KB, no install, no dependencies.

Typical alternatives

  • Dedicated toggle key that conflicts with normal typing.
  • Steal both Shift and Ctrl , breaks shortcuts while in mouse mode.
  • Movement tied to OS key-repeat , laggy, non-deterministic.
  • Large installer, .NET runtime, or Electron shell required.
  • No acceleration tuning , either too slow or too fast.

Default bindings.

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.

Fast by architecture,
not by accident.

mozkeys is designed around the constraint that every millisecond matters in an input utility.

1

Global hook thread

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.

2

240 Hz movement loop

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.

3

Sub-pixel accumulator

Fractional pixel deltas accumulate across ticks rather than being truncated, giving perfectly smooth movement at all speeds including slow precision mode , no visible stepping.

4

Power-curve acceleration

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.

A config file you'll actually read.

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

Get started in 30 seconds.

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

Common questions.

Does it work in every application?

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.

Why CapsLock? Won't that interfere with typing?

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.

Why Right Shift and Right Ctrl for clicks instead of both Shifts?

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.

How is the movement so smooth? I expected stuttering.

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.

Does it run at startup?

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.

Can I change the trigger key from CapsLock to something else?

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.

Will it ever support Linux or macOS?

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.