Skip to content
Vimputer
Esc
↑↓navigate↵open⌘Jpreview
On this page

Bindings

Triggers, the moments a key can act at, and their timing.

A binding is one trigger and what it does. Unlike a plain shortcut map, one key can act at several moments: on press, on a quick tap, after a hold, on release, after a pause, or when another key goes down while it’s held.

Triggers

The binding editor’s Trigger row records a key with its modifiers. From there:

To make Do
A chord (keys together) + with, then record the next key. Pressed together within sets the window.
A sequence (keys in order) + then, then record the next key. Each key within sets the timeout.
A side-specific modifier Left / right…
A double-tap Turn on Double-tap in the Binding row

Mouse buttons and media keys can be triggers too, but only through import; the recorder can’t capture them. Chord rules… sets a chord’s key order, when it releases, and an action for the release.

Moments

Under Actions, each moment is a point on a line. + Moment adds one.

Moment Fires Karabiner
Press On key down to
Tap On a quick press and release to_if_alone
Hold Once held past the hold time to_if_held_down
Release On key up to_after_key_up
Delayed After a pause with no other key to_delayed_action.to_if_invoked
Canceled When another key interrupts the pause to_delayed_action.to_if_canceled
Other key When another key goes down while this one is held to_if_other_key_pressed

In this Leader layer, w sends ⌘W on tap and ⌘⇧W on hold:

The Leader layer, with separate Tap and Hold actions on W

Timing

Each threshold sits on the moment it decides, and an open moment shows a slider.

Moment Default Karabiner
Hold 500 ms to_if_held_down_threshold_milliseconds
Tap 1000 ms, shown beside Hold or Press to_if_alone_timeout_milliseconds
Delayed and Canceled 500 ms, shared to_delayed_action_delay_milliseconds

A threshold you never touch isn’t written, so Karabiner’s default applies.

Only when

Only when limits the whole binding with conditions. Its layer’s conditions apply on top.

Saving

Edits in the binding editor are a draft until Save. Generating skips unsaved drafts. Everything else in Vimputer, such as layers and variables, saves as you go.