LayoutFox
LayoutFox

LayoutFox

An automatic Russian/English keyboard layout switcher for macOS and Windows. An alternative to Punto Switcher and Caramba.

Download for macOSmacOS 14 or later, Apple Silicon Download for WindowsWindows 10 and 11, .NET 8

Free · Version 1.0.9 · What's new (in Russian)

The numbers

What Result
Breaks a correctly typed word 3 times in 2,975 words (0.1%), rare words only; never in real chat phrases
Misses a word typed in the wrong layout 58 of 2,181 (2.7%)
Fixes the word while you are still typing it 77% of fixes, at the 3rd letter on average
The word disappears during a fix 1.7 ms, against 18.5 ms for a switcher that erases and retypes
Torn frames in Chrome, Telegram, VS Code 0 in 63 fixes
Time spent on a key press 0.06 ms on Windows, about 0.5 ms on the Mac
Sends what you type to the internet never

The numbers come from a 5,156-word bench and from measurements taken on 26.09.2026. How they were measured is below.

Fixes that don't flicker

Most switchers fix a word in three steps: erase it with Backspace one letter at a time, pause, type it again. The screen catches the moments in between and shows an empty spot or half a word, and the line visibly jumps.

LayoutFox sends the erase and the new word as one batch of key events. We logged every change of the text in a macOS text field over 26–27 fixes in a row:

What the screen shows between the old word and the new one
Erase and retypea typical switcher
ghbdtn
01 frame2 frames3 frames4 framesword erased: 18.5 msпривет
LayoutFoxone batch
ghbdtn
01 frame2 frames3 frames4 framesпривет1.7 ms, whole fix ≈ 5 ms
screen frames at 120 Hz, 8.3 ms each

Median of the longest in-between state, 26 and 27 fixes in a macOS text field, measured 26.09.2026

A typical switcher LayoutFox
Longest in-between state (median) 18.5 ms, up to 32.5 ms 1.7 ms
An in-between state lasting over one 120 Hz frame in 25 of 26 fixes in 2 of 27
The whole fix 11–32 ms of pause alone about 5 ms

Chromium apps (Chrome, Claude, Telegram Desktop, VS Code) are harder. Chromium paints a frame right after the first event of a burst, however quickly the rest follow, so even a fast letter-by-letter erase tears a frame in 5–20 of 21 fixes. There the Mac app selects the old word through Accessibility, checks that the selection holds exactly that word and types the new one over it in a single event. The result is 0 torn frames in 63 fixes, about 0.9 ms each.

On Windows the whole fix also reaches the system as one batch.

How it tells a word is in the wrong layout

LayoutFox stores each letter as the key that was pressed, so every word has two readings, Russian and English. It decides in two steps.

Mid-word. From the third letter on, it compares how often words start with each reading (frequencies from wordfreq). It switches only when the other start is 1000 times more common. The threshold was tuned on 22,000 real words and made no mistake among the 5,000 most frequent words of either language. When in doubt, it waits for the end of the word.

At the end of the word (Space, Enter, Tab) dictionaries and context decide:

The ground rule: breaking a correct word is 5 times worse than missing a wrong one. A miss takes one double Shift to fix; a broken word is the one that annoys. The bench penalty follows this rule, and so does every change we accept.

It learns from you, carefully

Privacy

How it is tested

Bench, 02.10.2026, Mac Words Broken Missed
Chat: everyday, tech, slang, code 1,556 0 13
Common words (top 2,000) 1,200 0 1
Mid-frequency words 1,200 0 9
Rare words 1,200 3 35
Traps 1,106 0 12

FAQ

Is there a Punto Switcher for Mac? LayoutFox does the same job on macOS 14 and later (Macs with M1 or newer): it fixes a word typed in the wrong layout by itself, and double Shift converts a word or the selected text. The Mac and Windows versions share one core and decide the same way.

Does it work through Parsec and remote desktop? Yes, with Parsec and with RDP (from a Mac through Windows App). LayoutFox on Windows sees the keys Parsec sends from another computer, which many switchers miss: that's why LayoutFox exists. If LayoutFox also runs on your Mac, it stays quiet in the Parsec and Windows App windows, so a word is never fixed twice. The Windows "Parsec only" mode skips RDP keys, since RDP sends them as an ordinary keyboard. We haven't tested other remote clients; for those, add the client to the exclusions on your Mac.

How is it different from Caramba and other switchers? Replacing a word barely makes the line flicker (numbers above), it rarely spoils a correct word (0.1% on the bench), and your text never leaves your computer. Every rule is checked on a 5,156-word bench, and each misfire seen in real use becomes a test.

Install

macOS 14 or later, Apple Silicon Mac (M1 or newer). Download LayoutFox-mac.zip, unzip it and move LayoutFox.app to Applications. With Homebrew one command does the same: brew install --cask danzerzine/tap/layoutfox. The app is signed with its own certificate rather than Apple's, so macOS won't open it the first time: go to System Settings → Privacy & Security and click "Open Anyway". Then grant Accessibility access; the app shows where.

Windows. Needs the .NET 8 Desktop Runtime (x64). Download LayoutFox.exe and put it in any folder you can write to (not Program Files), or updates won't be able to replace it. The exe is not signed, so on the first run Windows may show a blue "Windows protected your PC" window: click "More info", then "Run anyway". It also handles keys that arrive through Parsec from another computer, which many switchers don't see.

The app updates itself: it downloads a new version, checks it against SHA256SUMS and asks before installing. What changed in each version is in CHANGELOG.md (in Russian).

Windows macOS
Size exe 4.1 MB zip 4.5 MB
Memory 32 MB 45 MB

The interface is in Russian.

Word frequencies: wordfreq, CC BY-SA 4.0. The source code is private; this repository holds the ready builds only.