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

Conditions

Limit a binding or a layer to an app, a variable's value, a device, and more.

Conditions decide when a binding fires. They appear in two places: a binding’s Only when, and a layer’s Active when, which applies to every binding in the layer. Conditions in a list must all hold.

Kinds

+ condition offers the common kinds directly and the rest under Advanced. Each one can be flipped between is and is not.

Condition Matches
App The frontmost app. Pick several to match any of them.
State A variable has one of the chosen values
Trackpad A number of fingers on the trackpad, anywhere or in one half
App scope Where you are inside a paired app, such as a web app’s current page
Device A keyboard or mouse, by vendor and product ID
Input source The active input source
Keyboard ANSI, ISO, or JIS
Variable A raw Karabiner variable’s value
Expression A Karabiner expression, built from parts

Device and input source conditions imported from Karabiner can hold more than the editor shows, such as location IDs or a language. Those parts are kept and written back.

Any of

To accept one of several conditions of different kinds, add Any of…. It holds its own list, which passes when any one of its conditions holds. An Any of group can’t contain another.

Missing apps

When an app a binding opens is uninstalled, the binding shows an amber warning instead of dropping the reference.