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.