The lag is the animation.
Switch input source the native way — the 🌐 key or the menu — and macOS plays its switch animation. Caps Lock piles its own debounce on top. Zwitch sets the source directly through the system API, with no animation — about 14 ms, on whichever key you pick. If you've been doing this with a Karabiner-Elements rule, Zwitch is that — without the config file.
// p95 from key release to active input source, measured on built-in keyboard
| Method | Speed | Switch animation | Setup |
|---|---|---|---|
| 🌐 key / menu | slow | yes | built-in |
| Caps Lock remap | ~200 ms | no | manual remap |
| Karabiner-Elements | fast | no | config file |
| Zwitch | ~14 ms | no | one permission |
Pick a key, grant access, type.
Pick your key
Fn / 🌐, Caps Lock, or right ⌘ — whichever you already use.
Grant Accessibility
One macOS permission, granted once, so Zwitch can see the key and switch the layout.
Press it
It cycles the layouts you already use in macOS, in their order.
- →First launch: open Zwitch, then go to System Settings → Privacy & Security and click Open Anyway for Zwitch (it isn't notarized yet).
- →Then grant access under System Settings → Privacy & Security → Accessibility, so Zwitch can see the trigger key. It never logs or sends what you type — only which key fired and when.
- →If you pick the Fn / 🌐 key, set your Globe/Fn key to “Do Nothing” once in System Settings so Zwitch can use it. It opens the right pane and shows you exactly what to flip.
- →If you pick Caps Lock, make sure it isn't already assigned to switching input sources (System Settings → Keyboard → Input Sources / Shortcuts), or both will fire.
- →Uses the layouts already enabled in macOS, in their order. Add or remove languages in System Settings and Zwitch follows. Launch at login is a toggle in Zwitch's settings.