Under the hood
A tiny local decision path
No translation service and no generative model. Upyr remaps the exact physical keys, then asks whether the other-layout candidate is clearly more plausible.
-
01
Capture positions
The native hook keeps a bounded in-memory prefix for the current input boundary.
-
02
Remap keys
Installed EN and UK input sources produce the opposite-layout candidate, case and punctuation included.
-
03
Score evidence
Dictionaries, technical guards, exceptions, and the signed character n-gram index compare both readings.
-
04
Apply carefully
Only a candidate above the selected confidence threshold replaces text and switches the input source.
Character patterns, packed small
Equal-size English and Ukrainian news corpora are filtered by alphabet and split into 2–5-character sequences. Each retained sequence becomes a packed key plus one signed confidence byte: negative for English, positive for Ukrainian.
The app embeds no corpus sentences and no word-frequency table—only 173,964 n-gram records in about 2.8 MiB. Lookup is local, deterministic, and immediate.
Read the frozen evaluationFollow one correction
-
01Map the physical keys
The same six key positions produce a candidate on the Ukrainian layout.
g→пh→рb→иd→вs→іn→тghbdsn→привіт -
02Extract overlapping grams
Add word boundaries and inspect every 2–5-character window. Longer grams receive more weight.
^привіт$22 overlapping gramsn2^ппррииввіітт$n3^прприрививівітіт$n4^припривривіивітвіт$n5^привпривіривітивіт$ -
03Compare local evidence
Packed signed records are found with binary search; longer grams are weighted before the sum is normalized.
^g−112ghb−83sn$−63^п+127при+116ивіт$+43ghbdsnEN · 0.209привітУК · 0.704Model coverage · not probability+0.495 -
04Make the guarded decision
“привіт” is known; “ghbdsn” is not. The model agrees, and the policy permits correction.
ghbdsnunknownпривітknown wordCORRECTпривіт
Public preview
Keep typing. Upyr will flip the rest.
The current macOS preview is ad-hoc signed and not Apple-notarized, so Gatekeeper may block it. You can also inspect and build every line yourself.