Invert either mouse axis, rotate movement, and adjust horizontal and vertical sensitivity independently. An optional speed curve changes gain between slow and fast movement. All controls share one settings panel.
Setup
Requires Rebind Engine 3.5.0 or newer on Windows or macOS, with an authenticated Rebind Link and the mouse forwarded through hardware capture. Software mode and Linux are not supported. See platform setup.
Open main.luau in Rebind and use its Options panel. Start the script from
the editor toolbar, or run rebind run library/pointer-lab from the repository
root. Defaults preserve movement direction and use 1x sensitivity with the
curve off. Settings save automatically and apply while running, without a
restart.
Press F8 to bypass or re-enable the transforms. The Apply transforms (F8) switch shows the same state. F8 is reserved while this script runs; other keys, mouse buttons, and scrolling are not changed by Pointer Lab.
Tune movement
- Set Invert horizontal input or Invert vertical input if needed.
- Adjust Rotation (clockwise). With inversion off, +90° turns right into down; -90° turns right into up. Inversion happens before rotation.
- Set Horizontal sensitivity and Vertical sensitivity from 0.1x to 4x. These scale the output axes after rotation, so horizontal always means the final left/right movement.
- Turn on Use a movement curve to reveal its controls. Choose Linear for an even ramp, Smooth for eased ends, or Quadratic for a slower initial change. Slow movement gain and Fast movement gain multiply both sensitivities. Set fast gain above slow gain for acceleration, or below it for deceleration. Equal gains give constant scaling.
Transition speed is where the curve reaches fast gain and stops increasing or decreasing. It is measured in raw mouse counts per millisecond, not screen pixels. A higher-DPI mouse reaches it with less physical movement. Start with the curve off, tune the two sensitivities, then enable and adjust the curve.
Use the panel's Reset to defaults to restore the original settings.
Stop and recovery
Turn Apply transforms (F8) off to pass original movement through. Stop the
script in the editor, or press Ctrl+C in its rebind run terminal. To stop all
scripts and release held input, press Left Ctrl + Left Alt + K.
Pointer Lab discards pending movement when bypassed or stopped. It never holds keys or buttons. Run only one movement-transform script at a time: a blocked movement event does not reach lower-priority scripts.
Timing and verification
Movement is combined until the next script tick, requested at 1,000 ticks per second. Curves use net displacement divided by actual elapsed tick time. This adds tick scheduling delay and is not a USB polling-rate or latency guarantee. Direction reversals inside one tick can cancel. Fractional output is retained between ticks so sensitivity below 1x does not discard small movements. Operating-system pointer settings still affect the emitted HID movement.
Source is prepared for hardware testing. Physical capture, cursor feel, and Link output have not been verified on Windows or macOS. Listing artwork is an original illustration, not a screenshot or evidence of execution.

