PolyType
Type without thinking about the layout.
Mac App Store & GitHub — coming soon. The PolyType app is proprietary; provided “as is”, without warranty.
Typed ghbdtn instead of привет again? PolyType converts it instantly, then lets you keep typing — руддщ in Russian becomes hello the same way. No more retyping a sentence because you forgot to switch.
What it does
One shortcut per language pair
Instead of cycling through every installed layout with one shortcut, each customizable hotkey maps to a language pair — RU↔EN, SR↔EN, UK↔EN, and so on. Bind it to CapsLock, Right ⌘ / ⌥ / ⌃, or an F-key. Single tap switches layouts; double tap converts the last word you typed.
PolyType Lang — transform text as you type
PolyType now ships PolyType Lang (PTL) — the world's first inline keyboard transformation language. Where a text expander just swaps a trigger for stored text, PTL evaluates small expressions inside the typing stream as you type: functions, instant cycles, diacritics, conditional blocks and composable rules. No editor, no dialog, fully local.
Instant cycles — long-press, but inline & keyboard-only
- Three run modes — a {function} fires on its }; a ;rule fires on a space (the longest ;… wins, so ;s and ;sig never collide); a ;;cycle fires the instant it's typed and steps through alternatives on its last key — like phone long-press, keyboard-only.
- Functions — {date}, {time}, {clipboard}, {selection}, {username}, {uuid} and symbols ({copyright}, {emdash}…) insert live values inline.
- Any diacritic — any named Unicode mark composes onto any letter (;caron, ;acute, ;ogonek, ;macron, ;stroke…): s → š, a → ą, o → ō. Built-in Cycle · Diacritics, Accents and Hebrew Nikud sets; the short ;s / ;c triggers are just preconfigured Serbo-Croatian conveniences.
- Optional blocks & operators — ?{ … } inserts only when everything inside resolves; < << eat characters and <? eats the previous word. Escape literals with \.
- Fully local — rules stored as JSON, import/export, managed from Settings → Rules.
PTL is going open source. The PolyType Lang specification, its documentation and a reference library will be published under the MIT license as part of the PolyType project — so anyone can build on the language. The PolyType app itself stays proprietary.
Explainable, not ML
- The engine is transparent statistics — frequency words plus trigrams — so its decisions are predictable, not a black box.
- Runs entirely on-device. No inference server, no network, no telemetry.
- Built-in diacritics restoration for Bosnian, Croatian and Serbian via the ioDiacritics library.
Smart, not literal
- Leaves acronyms and ALL-CAPS tokens alone — PDF and HTML stay themselves, not cross-layout gibberish.
- Recognizes file names, extensions, URLs and paths — .md, .app, http://, file.md, a/b are left untouched, with a one-click toggle if you want them converted too.
Stays out of the way
- Skips password fields (secure input), Terminal, IDEs, 1Password and virtual machines.
- Lives quietly in the menu bar — configure pairs and hotkeys, then forget it's there.