Auto-correction and dictionaries
English | Українська
Auto-correction is experimental and disabled by default. It uses local English, Ukrainian and Russian dictionaries; only enabled languages with layouts in your cycle participate.
Enable auto-correction
- In Settings, enable Automatic correction (experimental).
- Open Auto-correction options… and select languages.
- Enable their layouts in Layout cycle.
- Click OK, then Save in Settings.
Resize the dialog to enlarge all three personal dictionary editors. Extra height goes to the editors; the controls below move down. On smaller screens, scrolling keeps the controls accessible.
How correction works
Type a word and press Space. Correction starts immediately, without the old 250 ms inactivity wait. Keys typed during the operation are queued and replayed after it finishes.
| Typed | Result |
|---|---|
ghbdsn |
привіт |
lsv |
дім |
hj,bnm |
робить |
рщгіу |
house |
The target word must be in an enabled dictionary and meet the configured rules. Known words in the original language are protected: for example, ye is an English dictionary word, so reducing the minimum length to 1 does not force ye → ну. Use manual conversion for such cases.
If multiple target languages produce the same valid spelling, it is accepted and the selected-language order chooses the target layout. Different valid spellings are ambiguous and are skipped. This is layout correction, not spellchecking or translation.
Undo restores the original text and layout; a rejected correction is not repeated until KSwitcher restarts.
Add your own words
Enter the correct spelling, such as робить, in My dictionary → Ukrainian. Separate words with commas or new lines. Do not enter the wrong-layout form hj,bnm, numerical ranks or a wrong=correct mapping. Click OK, then Save in Settings.
The English, Ukrainian and Russian fields add valid words to their respective dictionaries. Never correct these words is a separate comma-separated exclusion list. These fields have different purposes.
Other options
| Field | Meaning |
|---|---|
| Frequency rank limit | 0 uses the entire dictionary; a positive value restricts candidates to that rank or better |
| Minimum word length | 1–32 letters; default 3 |
| Excluded applications | Comma-separated process names where correction is disabled |
| Characters before / after a word | Allowed surrounding punctuation, entered without spaces or separators; preserved in the result |
Punctuation inside the wrong-layout text can represent a letter: the comma key in hj,bnm becomes б. The resulting word is checked after conversion. Surrounding punctuation follows the separate before/after settings. URLs, email addresses, digits and unsafe case patterns are not ordinary correction candidates. Code editors, terminals and password managers are excluded by default.
Dictionary files (advanced)
Prefer My dictionary for adding personal words. Open dictionary folder opens the underlying UTF-8 files. Each line contains a lowercase word, a tab and a positive frequency rank, for example абонент<TAB>33717 (replace <TAB> with a real tab).
The rank is static, not learned from your usage; a smaller number means a more common word. The loader sorts entries and removes duplicates in memory, so manual alphabetical sorting is no longer required. Invalid row formats or ranks still cause errors. After editing, click OK → Save to reload. Back up custom file edits before replacing dictionary files manually.
Dictionary data comes from FrequencyWords under CC BY-SA 4.0; the archive includes sources and license notices.
Personal words must contain 1–32 letters of the selected language. Ukrainian і is accepted; visually similar Latin i belongs in the English dictionary and is rejected in Ukrainian. This is a language check, not a minimum-length error.
Ukrainian dictionary addition (v0.6.23)
The bundled dictionary now includes поточні at supplemental rank 50001. With Ukrainian enabled in dictionaries and the layout cycle, Gjnjxys and Поточны can become Поточні . Already correct input stays unchanged. Press Space to trigger correction. The default frequency limit 0 includes this entry; a positive limit below 50001 excludes it.
The updater preserves existing dictionaries. If the word is missing after upgrading, add поточні under My dictionary → Ukrainian, then OK → Save. Personal words work at any frequency rank limit. Excluded applications, minimum length and ambiguity checks still apply.
Personal words across PCs (v0.6.26)
Optional OpenBao synchronization includes My dictionary, separately for each language, Never correct these words, excluded applications and correction preferences. Click OK, then Save in Settings before syncing. Independent word additions/removals merge by membership. Dictionary files themselves remain local.
Custom replacements and spelling typos — v0.6.28
Two optional modes in Auto-correction options… extend layout correction. Both are off by default and require the main Automatic correction (experimental) checkbox to be enabled.
- Use custom replacements: enter one
typo=correctionpair per line, for exampleпрвиіт=привітorhelo=hello. Entries are normalized to lowercase; duplicate source words are rejected. Each side must contain 1–32 letters of the same supported language, without spaces or punctuation. Explicit pairs take priority over dictionary recognition, including already valid words, and do not require dictionary membership or satisfy the frequency limit. - Correct spelling typos using dictionaries: checks unknown words in the current language after no layout correction is found. It accepts exactly one dictionary candidate reachable by inserting, deleting or replacing one letter, or swapping two adjacent letters. Both input and target must have at least four letters. Multiple candidates leave the input unchanged, even if a frequency limit would exclude one of them. Personal dictionary words participate. This is word-level spelling correction, not grammar or sentence-context correction.
Both modes run after Space, preserve surrounding punctuation and an initial capital, and keep the current layout. The selected dictionary languages, enabled layout cycle, minimum input length, excluded applications, never-correct list, protected fields and Undo behavior apply. ALL CAPS, mixed-case identifiers, numbers, URLs and email addresses are skipped. A replacement is applied once, without chaining. Click OK, then Save in Settings; pairs and switches are included in settings export/import and synchronization. Undo restores the original word and suppresses its correction until restart.