A macOS menu bar utility that automatically corrects keyboard layout mistakes. Type in the wrong layout (e.g., English instead of Ukrainian/Russian) and SwitchFix detects it, deletes the mistyped word, switches the layout, and retypes the correct text — like PuntoSwitcher, but native, lightweight, and modern.
- Automatic correction — detects wrong-layout words on space/enter and corrects them instantly.
- Hotkey mode — correct only when you press Ctrl+Shift+Space (configurable).
- Selection correction — select text and press the hotkey to convert it.
- Permissions indicator — shows the status of required macOS permissions in the app menu.
- Undo —
Cmd+Zwithin 5 seconds reverts the last correction. - Revert hotkey —
CapsLockreverts the last correction (configurable). - Three layouts — English (US/ABC/British/Dvorak/Colemak), Ukrainian, and Russian.
- Smart filtering — skips password fields, URLs, emails, camelCase, mixed scripts.
- App blacklist — disabled in terminals, IDEs, and code editors by default (toggle per app).
- Launch at Login — optional auto-start.
- macOS 13.0 or later
git clone https://github.com/rundax/SwitchFix.git
cd SwitchFix
./install.shThe script builds the app, installs it to /Applications, sets it to run at startup, and guides you through the required Accessibility and Input Monitoring permissions.
Note: Requires Xcode Command Line Tools. The script will prompt you to install them if missing.
Download a pre-built .dmg from the Releases page, open it, and double-click Install SwitchFix.
Ad-hoc signing (the default) changes the binary hash on every build, which forces you to re-grant Accessibility and Input Monitoring permissions each time. To avoid this, create a local code-signing certificate once:
./scripts/setup-codesign.shThis creates a self-signed certificate in your Keychain and saves it to .codesign-identity. All subsequent builds via build-app.sh and install.sh will use it automatically — permissions survive rebuilds.
./scripts/build-app.sh # → dist/SwitchFix.app./scripts/create-dmg.sh # → dist/SwitchFix.dmgSwitchFix lives in your menu bar with an Ab icon. The menu provides:
- Enable/Disable toggle
- Correction Mode — Automatic or Hotkey Only
- Permissions Status — visually indicates if required permissions are granted
- Installed Layouts — shows all detected system layouts
- Launch at Login — toggle automatic startup
SwitchFix stores hotkeys in UserDefaults. Customize via Terminal:
# Revert hotkey: CapsLock (no modifiers)
defaults write com.switchfix.app SwitchFix_revertHotkeyKeyCode -int 57
defaults write com.switchfix.app SwitchFix_revertHotkeyModifiers -int 0
# Correction hotkey: Ctrl+Shift+Space
defaults write com.switchfix.app SwitchFix_hotkeyKeyCode -int 49
defaults write com.switchfix.app SwitchFix_hotkeyModifiers -int $((262144+131072))- KeyboardMonitor securely captures keystrokes without blocking them.
- Characters accumulate in a short-lived LayoutDetector word buffer.
- On a word boundary (space, enter, tab), the buffer is checked against alternative layout dictionaries (e.g. checking if an English typo forms a valid Ukrainian word).
- If a valid word is found in another layout, TextCorrector safely deletes the mistyped characters, switches your input layout, and retypes the correct word.
MIT
