Rebind

Use case

Input that adapts to the person.

One-switch workflows, tremor filtering, sticky keys with audio feedback, and input that adapts to the person using it. Built with Rebind's Luau scripting.

Most accessibility tooling is fixed-function: a vendor decided which adaptations exist and how they behave. Rebind treats adaptation as a script, so the threshold, the timing, and the feedback are all yours to tune, per person and per task.

Long press and short press as separate actions

One physical switch can carry two meanings. A tap and a hold become two different keys.

-- rebind: min_sdk=3.0.0
-- rebind: name=Tap-Hold Splitter

local cfg = UI.Schema({
    holdMs = UI.Slider(400, { min = 150, max = 1500, label = "Hold threshold (ms)" }),
})

function OnUp(key, duration)
    if key == "F24" then
        if duration >= cfg.holdMs then
            HID.Combo("LCtrl", "Enter")
        else
            HID.Combo("Enter")
        end
        return false
    end
    return true
end

The threshold is a slider in the auto-generated settings panel, so the person using it adjusts it without touching code.

What else fits here

  • Tremor filtering with a configurable smoothing threshold.
  • Dwell click: the cursor holds still, the click fires.
  • A switch-access scanner driven from a single button.
  • Sticky keys with a custom timeout and an audio confirmation per modifier.
  • An input lock that enforces rest breaks on a schedule you choose.

Generate any of these in RebindGPT, or read about our accessibility work.

The defaults were someone's guess. Write yours.