Make any keyboard and mouse work the way you need — at the hardware level, in every application. The scripts on this page run on the Rebind device and come out as standard USB input, so they keep working in apps that ignore or block software assistive tools, and they move with you across Windows, macOS, and Linux. Each recipe explains what it helps with, gives you a complete script to paste into the Rebind UI, and lists the settings worth tuning. Every script exposes those settings through the UI panel, so you can dial in timings and thresholds with sliders and toggles without editing code.

Dwell-click

For anyone who can move a pointer but can’t reliably press a button. Rest the cursor in one place and, after a short pause, Rebind clicks for you. Moving away before the timer finishes cancels the click.
Tuning notes
  • dwell_time — how long the cursor must rest before a click. Start at one second. Lower it as you build confidence; raise it if clicks fire too eagerly.
  • tolerance — how much wobble is allowed while you hold position, in pixels. Larger forgives unsteady movement; smaller makes the dwell stricter.
  • click_type — switch between left, right, and double click without changing any code.
  • sound — a short beep confirms each click so you don’t have to watch closely.

Click assist

Three modes for people who can reach a button but struggle to hold it or time a double click. Hold Assist turns one press into a timed hold that releases itself. Toggle Click latches a single click down until you click again — useful for dragging without holding. Double Click fires two clicks from one press.
Tuning notes
  • mode — Hold Assist for tasks that need a sustained press, Toggle Click for drag-and-drop without holding, Double Click for interfaces that expect rapid double clicks.
  • hold_time — how long Hold Assist keeps the button down before releasing it. Match it to the longest hold you typically need.
  • double_delay — the gap between the two clicks in Double Click. If the application misses the second click, increase this a little.
  • The script releases the button cleanly on focus loss and on stop, so a latched toggle never gets stuck down.

Tremor smoothing

For users with hand tremor or repetitive-strain motion. Movements below a threshold are dropped, and larger movements are smoothed with an exponential filter, so the cursor follows your intent instead of the jitter. Filtering movement uses mouse_block=true, which requires a Rebind device.
Tuning notes
  • threshold — the smallest movement Rebind will pass through, in pixels. Raise it to ignore more involuntary jitter; lower it if intentional small movements feel suppressed.
  • smoothing — how much each movement is averaged with the previous one. Higher gives a steadier cursor at the cost of a little latency; find the point where the pointer feels calm but still responsive.
  • The filtering happens on the device, before the movement reaches the OS.

Sticky keys

For one-handed use or limited grip strength, holding two keys at once is hard. This turns a modifier into a tap-to-lock toggle: tap once and it stays held, tap again to release. A notification tells you whether it’s active, and it releases automatically on focus change so you never get stuck in a held state.
Tuning notes
  • target — choose any modifier to make sticky: LShift, LCtrl, LAlt, LWin, or their right-hand variants. Run a separate copy of the script for each modifier you want to latch.
  • To lock several modifiers at once (for a combination like Ctrl+Shift), enable one sticky script per key; each latches independently and they combine naturally.
  • The script swallows the modifier’s own release event, so a single tap fully toggles the lock without the OS seeing an immediate key-up.

One-handed layout

Remaps keys so a single hand can reach everything it needs. The example mirrors the right side of the keyboard onto the left, brings Enter and Backspace under the home position, and frees a thumb key for Space — all configurable. Use it as a starting point and remap to whatever suits your hand.
Tuning notes
  • base — keys remapped all the time. Add an entry as ["FromKey"] = "ToKey" for each key you want to relocate under your hand.
  • layer — a second set of remaps that only apply while layer_key is held, doubling how many keys one hand can reach. Hold the layer key with a thumb or spare finger to flip into the mirrored set.
  • layer_key — the hold key that activates the layer. CapsLock is a common choice because it sits at the home row and is rarely needed otherwise.
  • Use the SDK reference to discover the exact key names Rebind reports, then fill in the tables to match your hand.

Key-repeat control

For users whose presses linger or who trigger unintended repeats, default keyboard auto-repeat can flood an application with extra characters. Two independent controls fix this. Debounce ignores a second press of the same key within a set window, filtering accidental double-taps. Repeat suppression blocks a held key from auto-repeating after the first character, so a long press produces one keystroke.
Tuning notes
  • debounce / debounce_ms — turn on to ignore a repeated press of the same key that lands within the window. Widen debounce_ms if accidental double-presses still slip through; narrow it if deliberate fast presses get dropped.
  • no_repeat — when on, holding a key sends one character instead of a stream. Leave it off for keys where you do want auto-repeat, such as arrow keys.
  • The script passes accepted presses through unchanged (return true), so every keystroke it lets through is ordinary USB input — only unwanted repeats and bounces are filtered.