macOS and Windows app that detects the language you're typing and fixes the keyboard layout — across three languages: English, Ukrainian, Russian.
⬇ Download for macOS · ⬇ Get it for Windows
Typed ghbdtn when you meant привет — or ghbdsn when you meant привіт? Switcher3Way notices words typed in the wrong layout and converts them, either automatically as you type or when you tap the trigger key. Unlike two-layout switchers, detection is N-way: the typed keystrokes are rendered through every installed layout, each candidate is validated against its own language's dictionary, and the app switches only when there's a single unambiguous winner. Precision-first: words valid in more than one language (e.g. там in both Ukrainian and Russian) are left alone.
- 3-way (N-way) auto-detection over all installed keyboard layouts — nothing to configure
- Manual trigger — tap a configurable key (single or double tap) to convert the last word or selection; tap again to undo
- Auto-fix as you type (off by default) — validates finished words against the macOS system dictionaries
- Exception lists — apps where auto-fix stays off (password managers always off), never-convert and always-convert words; a wrong fix undone by the trigger offers to remember the word
- Per-app layout memory, layout flag at the text cursor, layout sound (all optional)
- Menu-bar / tray status header with the current layout, quick toggles, and pause (30 min / 1 h / until restart)
- The trigger always answers — when it has nothing to convert (only one keyboard layout installed, nothing typed or selected, text already correct) it says so at the cursor instead of doing nothing
- Interface in 16 languages
- Private and offline — no accounts, no telemetry, no network calls; password fields are excluded
Download the DMG from the latest release, open it, and drag Switcher3way.app into Applications.
Releases from 1.6.2 onward are signed with an Apple Developer ID and notarized by Apple, with the notarization ticket stapled to both the disk image and the app — so it opens by double-clicking, with no Gatekeeper warning, and works offline. Earlier releases were unnotarized and needed right-click → Open on first launch; so does a copy you build yourself.
On first launch the onboarding checklist asks for two macOS permissions — Accessibility (read and retype the mistyped word) and Input Monitoring (see keystrokes). Grants are detected live; the app restarts itself after Input Monitoring is granted.
Get it from the Microsoft Store — signed by Microsoft, so no SmartScreen warning, nothing to install first, and it updates itself. This is the recommended way and the version that gets fixes first.
There is also a direct-download MSI for anyone who can't use the Store. It needs the Windows App Runtime 1.6 installed once and isn't code-signed (SmartScreen will warn — More info → Run anyway), but it updates itself and tracks the same version as the Store build.
Windows needs no permission dialog. Switcher3Way runs in the notification area and has no main window; Windows 11 hides new tray icons, so expand the notification area with the ^ chevron if you don't see the flag. Add a second keyboard layout first (Settings → Time & language → Language & region) — with only one layout there is nothing to convert between, and the app will tell you so.
macOS — requires the Swift toolchain (Xcode or the Command Line Tools):
git clone https://github.com/WhisKeySwitch/Switcher3way.git
cd Switcher3Way
bash build_app.sh # SwiftPM release (universal), signed
cp -R Switcher3way.app /Applications/
open /Applications/Switcher3way.appBy default build_app.sh signs ad-hoc, which means macOS resets the Accessibility/Input Monitoring grants on every rebuild. To make the permissions survive rebuilds, set up the stable self-signed certificate once as described in signing/README.md — the script then signs with that identity automatically.
Windows — requires the .NET 8 SDK and Visual Studio's MSIX/PRI build tooling (the UWP workload):
git clone https://github.com/WhisKeySwitch/Switcher3way.git
cd Switcher3Way
pwsh windows/build-msi.ps1 # direct-download installer
pwsh windows/build-msix.ps1 # Microsoft Store package
dotnet test windows/tests/Switcher3way.Core.Tests # the decision core's suiteThe Windows app is C# / WinUI 3 under windows/; the layout-detection core is shared logic with its own test suite. See windows/RELEASING.md for the release and submission process.
- User Guide (Українська · Русский) — everything a user needs: setup, trigger, auto-fix, exceptions, settings, troubleshooting
CLAUDE.md— developer handover: architecture map, build loop, conventionsNOTES-3WAY.md— fork rationale, detection policy, DMG packagingwindows/RELEASING.md— Windows build, signing, Store submission and its trapsopenspec/— capability specs, includingwindows-platform-support
Forked from rashn/RuSwitcher (MIT) — a two-layout RU/EN switcher — and generalized to N-way with a reworked UI. The MIT licence permits this; rashn's copyright notice is retained in LICENSE as it requires.
Switcher3Way itself is free to use, under the terms in LICENSE, which also carries the notices of every third-party component it includes.