KeyboardHolder and Keyameleon both switch your Mac’s input method automatically, but they follow a different rule. KeyboardHolder picks the input method from the app or website in front. Keyameleon picks it from the physical keyboard you type on. Choose the rule that matches why you switch.
At a glance
| Keyameleon | KeyboardHolder | |
|---|---|---|
| Switches based on | The physical keyboard you type on | The app in front, or the website’s domain in a browser |
| Typical user | One Mac, keyboards with different printed layouts | One keyboard, a different input method in each app, often Chinese and English |
| Price and license | Free, MIT | Free (donations welcome), source code not published |
| Also does | Nothing else: one job | Rules for Spotlight, Alfred and Raycast, an input method for the browser address bar, an indicator on screen or at the text cursor |
| macOS | 26 or later | 12 or later |
When per-app switching is the right fit
You type on one keyboard and change input method with the task: a Chinese input method in WeChat and your notes, English in the terminal and your code editor. That is what KeyboardHolder is for. For each app it either remembers the input method you last used there or always switches to the one you set, and in browsers it can follow rules per domain. It also handles launchers like Spotlight, Alfred and Raycast, and can show which input method is on next to the text cursor.
When per-keyboard switching is the right fit
You have keyboards with different layouts printed on them: a US MacBook and a German external keyboard, or a Dvorak keyboard next to a QWERTY one. Each keyboard should type what its keycaps say, in every app. A per-app rule can’t express that, because the same app is in front whichever keyboard you reach for. Keyameleon switches when you press a key on the other keyboard, whatever app is in front.
Can you use both?
Both change the same system input method, so running both means two rules overwriting each other. KeyboardHolder switches when you change apps or websites, and Keyameleon switches back to the keyboard’s input method on your next key press. Pick one rule: if the app should decide, use KeyboardHolder; if the keyboard should decide, use Keyameleon.
Which one should you use?
- The app or website decides the input method: KeyboardHolder.
- The keyboard decides the layout: Keyameleon.
Another per-app option is Input Source Pro. The guide to switching the keyboard layout automatically on Mac compares every method, built-in ones included.