Document v0.6.28 correction, synchronization and diagnostics in English and Ukrainian
+10
-2
@@ -6,12 +6,11 @@
|
||||
|
||||
## Увімкнення
|
||||
|
||||
1. У **Settings** увімкніть **Automatically correct layout (experimental)**.
|
||||
1. У **Settings** увімкніть **Automatic correction (experimental)**.
|
||||
2. Відкрийте **Auto-correction options…** та оберіть мови.
|
||||
3. Увімкніть їхні розкладки в **Layout cycle**.
|
||||
4. Натисніть **OK**, потім **Save** у Settings.
|
||||
|
||||

|
||||
|
||||
Розтягуйте діалог, щоб збільшити всі три поля особистих словників. Додаткова висота віддається полям, а нижні елементи зміщуються вниз. На малих екранах доступ до елементів забезпечує прокручування.
|
||||
|
||||
@@ -69,3 +68,12 @@
|
||||
## Особисті слова на кількох ПК (v0.6.26)
|
||||
|
||||
Опціональна [синхронізація OpenBao](Sync-uk) передає **My dictionary** окремо для кожної мови, **Never correct these words**, винятки програм і параметри виправлення. Спочатку натисніть **OK**, потім **Save** у Settings. Незалежні додавання/видалення слів об’єднуються за належністю до набору. Самі файли словників залишаються локальними.
|
||||
|
||||
## Власні заміни та виправлення описок — v0.6.28
|
||||
|
||||
У **Auto-correction options…** додано два незалежні режими; обидва типово вимкнені й потребують головного прапорця **Automatic correction (experimental)**.
|
||||
|
||||
- **Use custom replacements**: одна пара `помилка=виправлення` на рядок, наприклад `првиіт=привіт` або `helo=hello`. По 1–32 літери тієї самої підтримуваної мови, без пробілів чи пунктуації. Регістр нормалізується; дублікати вихідного слова заборонені. Власні пари мають пріоритет навіть над відомими словами, не потребують наявності у словнику та не обмежуються частотним рангом.
|
||||
- **Correct spelling typos using dictionaries**: невідоме слово поточної мови перевіряється, якщо виправлення розкладки не знайдено. Допускається одна вставка, пропуск, заміна літери або перестановка сусідніх літер. Вхідне й цільове слово мають не менше 4 літер. Якщо словник дає кілька варіантів, слово не змінюється, навіть коли частотний фільтр відсікає один із них. Особисті слова також беруть участь. Це виправлення слів, а не граматики чи змісту речення.
|
||||
|
||||
Обидва режими спрацьовують після пробілу, зберігають початкову велику літеру та зовнішню пунктуацію і не перемикають розкладку. Діють вибрані мови, цикл розкладок, мінімальна довжина, винятки програм і слів та захищені поля. ALL CAPS, змішаний регістр ідентифікаторів, числа, URL та email пропускаються. Заміни не утворюють ланцюжків. **Undo** повертає оригінал і блокує його повторне виправлення до перезапуску. Натисніть **OK → Save**; пари й перемикачі входять в експорт та синхронізацію.
|
||||
|
||||
+26
-2
@@ -6,12 +6,11 @@ Auto-correction is **experimental and disabled by default**. It uses local Engli
|
||||
|
||||
## Enable auto-correction
|
||||
|
||||
1. In **Settings**, enable **Automatically correct layout (experimental)**.
|
||||
1. In **Settings**, enable **Automatic correction (experimental)**.
|
||||
2. Open **Auto-correction options…** and select languages.
|
||||
3. Enable their layouts in **Layout cycle**.
|
||||
4. 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.
|
||||
|
||||
@@ -69,3 +68,28 @@ The updater preserves existing dictionaries. If the word is missing after upgrad
|
||||
## Personal words across PCs (v0.6.26)
|
||||
|
||||
Optional [OpenBao synchronization](Sync) 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=correction` pair per line, for example
|
||||
`првиіт=привіт` or `helo=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.
|
||||
|
||||
+5
-1
@@ -70,7 +70,7 @@
|
||||
|
||||
Коли ввімкнено **Write log**, після ручної конвертації програма читає активне поле через Windows Accessibility, не рухаючи курсор, не змінюючи виділення й не копіюючи повторно. Результати розрізняють **Conversion unchanged** — розрахунок не змінив текст; **Original text remained** — у полі залишився початковий текст; **Readback differs** — прочитане відрізняється; **Paste not verified** — вставку не підтверджено. Незмінений результат ручної команди вважається проблемою навіть за однакових визначених розкладок. Недоступне чи захищене поле, зміна фокуса або перевищення ліміту позначаються явно: саме надсилання Ctrl+V не доводить успіх. Читання обмежено 4096 символами; затримки редактора й особливості обліку символів можуть завадити перевірці.
|
||||
|
||||
Успішні операції **не** створюють окремих записів у файлі. Їхні етапи зберігаються в пам’яті: до 40 подій за 30 секунд, і потрапляють у файл лише як контекст проблеми. Вимкнення **Write log** очищає цей контекст і вимикає додаткове читання результату. Звичайні помилки застосунку також можуть записуватися. Усе працює у звичайній Release-збірці.
|
||||
Успішні операції **не** створюють окремих записів у файлі. Їхні етапи зберігаються в пам’яті: до 128 подій за 30 секунд, і потрапляють у файл лише як контекст проблеми. Вимкнення **Write log** очищає цей контекст і вимикає додаткове читання результату. Звичайні помилки застосунку також можуть записуватися. Усе працює у звичайній Release-збірці.
|
||||
|
||||
Оберіть **Current log** або **Previous log** і натисніть **Refresh**. **Copy selected / Ctrl+C** копіює рядки з подробицями; **Ctrl+A** вибирає всі. Скопійований журнал не додається до історії буфера. **Clear log** очищає лише вибраний файл. Старі неструктуровані записи залишаються доступними в подробицях, але нові поля фільтрації для них не відновлюються. Після перевищення 256 KiB поточний файл ротується, зберігається один попередній. Текстові поля підсумку обмежено 4096 одиницями UTF-16 із позначкою обрізання; старі поля етапів — 512 одиницями. Перед поширенням перевіряйте записаний текст на особисті дані.
|
||||
|
||||
@@ -106,3 +106,7 @@ Chrome та Edge тепер використовують виділення з
|
||||
## Відновлення після перевстановлення Windows (v0.6.26)
|
||||
|
||||
Якщо ввімкнено [синхронізацію OpenBao](Sync-uk), на новій інсталяції вкажіть той самий сервер, акаунт і профіль та натисніть **Download remote**. Пароль залишається у Windows Credential Manager; локальна спільна копія й резервна копія перед завантаженням захищені DPAPI та не переносяться на інший акаунт/ПК. Історія буфера, локальні шляхи та автозапуск не завантажуються. Для давнішого стану відновіть версію KV у OpenBao й завантажте її. Оновіть усі ПК для підтримки формату синхронізації 2.
|
||||
|
||||
## Діагностика виділення — v0.6.28
|
||||
|
||||
З увімкненим журналюванням невдала перевірка показує **Expected selection**, очікуваний фрагмент та **Read back**. Контекст містить скопійований текст до/після довиділення, натискання Shift+Left або кількість доставлених пакетних подій, зміни версії буфера, повтори копіювання та час. Переривання позначають події клавіатури, миші, зміну налаштувань чи оновлення розкладок. Фокус, геометрія курсора й розкладка записуються, коли Windows їх надає; межі виділення доступні для native EDIT, інакше зазначено unavailable. Зберігається до 128 подій за 30 секунд. Цей реліз покращує діагностику, але не виправляє сам механізм асинхронного виділення у вебредакторах. При повторенні збою скопіюйте повні деталі операції з Logs та вкажіть, чи виділяли текст вручну і де був курсор.
|
||||
|
||||
+6
-2
@@ -35,7 +35,7 @@ If the target window runs as administrator, a normal KSwitcher process may lack
|
||||
- The application is not excluded, and the word meets the minimum length and dictionary threshold.
|
||||
- The word is not in **Never correct these words** and has not been rejected with Undo during this session.
|
||||
|
||||
Auto-correction intentionally skips ambiguous cases and known words in the original language. Use manual conversion for those cases.
|
||||
Dictionary correction skips ambiguous cases and known words. Explicit custom replacement pairs can override known words; otherwise use manual conversion.
|
||||
|
||||
## Does it work in Teams?
|
||||
|
||||
@@ -70,7 +70,7 @@ Open **Settings → View log…** (also available from the tray). Each new probl
|
||||
|
||||
With **Write log** enabled, manual conversion reads the focused editor through Windows Accessibility after paste. It does not move the caret, change the selection or copy again. Outcomes distinguish **Conversion unchanged**, **Original text remained**, **Readback differs**, and **Paste not verified**. A manual operation that calculates the original text is a problem even if the detected source and target layouts match. An inaccessible/protected control, changed focus, or readback limit is reported explicitly; sending Ctrl+V alone does not prove success. Readback is limited to 4096 characters; delayed editor updates and provider-specific character units can prevent verification.
|
||||
|
||||
Successful operations do **not** create separate file entries. Their stages stay in memory, bounded to 40 events and 30 seconds, and are saved only as context when a problem occurs. Disabling **Write log** clears that context and skips the additional readback check. Normal application errors may also be logged. This works in the normal Release build.
|
||||
Successful operations do **not** create separate file entries. Their stages stay in memory, bounded to 128 events and 30 seconds, and are saved only as context when a problem occurs. Disabling **Write log** clears that context and skips the additional readback check. Normal application errors may also be logged. This works in the normal Release build.
|
||||
|
||||
Select **Current log** or **Previous log** and click **Refresh**. **Copy selected / Ctrl+C** copies rows with their details; **Ctrl+A** selects all. Copied diagnostics are excluded from clipboard history. **Clear log** clears only the selected file. Older unstructured records remain readable in Details, but do not gain the new filter fields retroactively. The current file rotates after exceeding 256 KiB, retaining one previous file. Summary text fields are bounded to 4096 UTF-16 units and show truncation; older stage fields retain 512 units. Review captured text before sharing diagnostics.
|
||||
|
||||
@@ -106,3 +106,7 @@ The reported browser-editor failure has not yet been verified live after this ch
|
||||
## Recover settings after reinstalling Windows (v0.6.26)
|
||||
|
||||
With [OpenBao synchronization](Sync) enabled, configure the same server/account/profile on the new installation and choose **Download remote**. Passwords stay in Windows Credential Manager; the local sync baseline and pre-download backup use DPAPI and cannot be moved to another Windows account/machine. Clipboard history, local paths and startup settings are not uploaded. For older snapshots, restore a KV version in OpenBao and download it. Update every participating PC to support sync format 2.
|
||||
|
||||
## Selection diagnostics — v0.6.28
|
||||
|
||||
With logging enabled, failed selection verification shows **Expected selection**, the verification target and **Read back**. The incident includes copied text before/after suffix recovery, Shift+Left progress or batch delivery counts, clipboard sequence changes, copy retries and elapsed times. Input interruptions identify keyboard, mouse, settings or layout-refresh events. Focus, caret geometry and layout are included when Windows exposes them; native EDIT selection offsets are reported, otherwise explicitly unavailable. The bounded context holds up to 128 events for 30 seconds. This release improves diagnosis, not the underlying asynchronous-editor selection behavior. If a mismatch recurs, copy the complete operation details from Logs; include whether you selected text manually and where the caret was.
|
||||
|
||||
+11
-7
@@ -38,7 +38,7 @@ KSwitcher — нативне C++/Win32-переписування Windows-фун
|
||||
|
||||
## Можливості на скриншотах
|
||||
|
||||
Скриншоти містять лише демонстраційні дані. Налаштування оновлено для v0.6.26 (з кнопкою Sync…); словники, буфер та OCR знято у v0.6.14; приклади сніпетів оновлено для v0.6.18; приклад редактора знімків оновлено для v0.6.24.
|
||||
Приклади містять демонстраційні дані. Застарілі знімки Settings та автокорекції вилучено для v0.6.28; актуальні кроки й приклади замін наведені в посібниках.
|
||||
|
||||
<a id="feature-1"></a>
|
||||
|
||||
@@ -56,7 +56,6 @@ KSwitcher — нативне C++/Win32-переписування Windows-фун
|
||||
|
||||
У **Layout cycle** увімкніть потрібні мови, впорядкуйте їх через **Move up / Move down** і задайте **Direct layout shortcut** для прямого переходу до мови. Перелік розкладок береться з Windows.
|
||||
|
||||

|
||||
|
||||
[Докладніше](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Usage-uk)
|
||||
|
||||
@@ -66,7 +65,6 @@ KSwitcher — нативне C++/Win32-переписування Windows-фун
|
||||
|
||||
Наберіть `hj,bnm` і пробіл, щоб отримати `робить`, якщо українську увімкнено й слово є в її словнику. Правильні написання додавайте в **My dictionary**. Розтягуйте діалог, щоб збільшити три поля словників.
|
||||
|
||||

|
||||
|
||||
[Докладніше](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Auto-correction-uk)
|
||||
|
||||
@@ -126,7 +124,6 @@ KSwitcher — нативне C++/Win32-переписування Windows-фун
|
||||
|
||||
Клацніть поле хоткея, натисніть потрібну комбінацію й збережіть через **Save**. **Backspace / Delete** очищає поле. Наявні хоткеї зберігаються після оновлень; можна призначати звичайні системні комбінації на кшталт Win+V.
|
||||
|
||||

|
||||
|
||||
[Докладніше](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Usage-uk)
|
||||
|
||||
@@ -146,7 +143,6 @@ KSwitcher — нативне C++/Win32-переписування Windows-фун
|
||||
|
||||
Увімкніть **Start with Windows**. Для роботи з підвищеними правами можна також увімкнути **Start with Windows as administrator** і підтвердити UAC. Збереження опції не підвищує права вже запущеного процесу.
|
||||
|
||||

|
||||
|
||||
[Докладніше](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/FAQ-uk)
|
||||
|
||||
@@ -156,13 +152,21 @@ KSwitcher — нативне C++/Win32-переписування Windows-фун
|
||||
- [Гарячі клавіші, буфер обміну та шаблони](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Usage-uk)
|
||||
- [Оновлення, дані та поширені запитання](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/FAQ-uk)
|
||||
|
||||
Документацію та огляд можливостей актуалізовано для **v0.6.27**. Інтерфейс застосунку англійською; назви кнопок у посібнику наведені як у програмі.
|
||||
Документацію та огляд можливостей актуалізовано для **v0.6.28**. Інтерфейс застосунку англійською; назви кнопок у посібнику наведені як у програмі.
|
||||
|
||||
[](https://send.monobank.ua/jar/88h2TddKfS)
|
||||
|
||||
[Відкрити банку Monobank](https://send.monobank.ua/jar/88h2TddKfS) · Дякую, що підтримуєте KSwitcher!
|
||||
|
||||
## Останні зміни — v0.6.27 (2026-11-02)
|
||||
## Останні зміни — v0.6.28 (2026-11-02)
|
||||
|
||||
Власні автозаміни та словникове виправлення описок; злиття профілів уже при першому підключенні; часткова синхронізація зі збереженням розкладок кожного ПК; конкретні повідомлення про відсутні розкладки; розширена діагностика виділення й копіювання.
|
||||
|
||||
[Auto-correction](Auto-correction-uk) · [Sync](Sync-uk) · [Diagnostics](FAQ-uk)
|
||||
|
||||
[Download v0.6.28](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/releases/download/release-v0.6.28/KSwitcher-win-x64.zip) · [SHA256SUMS.txt](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/releases/download/release-v0.6.28/SHA256SUMS.txt)
|
||||
|
||||
## Попередній реліз — v0.6.27 (2026-11-02)
|
||||
|
||||
Меню підтримують вибір підкресленою літерою; кнопки й прапорці форм — **Alt+літера**. Наприклад, **S** відкриває Settings у меню трея, а **Alt+S** зберігає налаштування. Працює також в історії буфера, сніпетах, журналі та діалогах синхронізації, OCR і словників.
|
||||
|
||||
|
||||
+11
-7
@@ -37,7 +37,7 @@ To correct text manually, select it and press **Next layout**. With **Convert re
|
||||
|
||||
## Features in screenshots
|
||||
|
||||
Screenshots contain demonstration data only. Settings are updated for v0.6.26 (including Sync…); dictionaries, clipboard and OCR were captured in v0.6.14; snippet examples are updated for v0.6.18; the annotation-editor example is updated for v0.6.24.
|
||||
Examples use demonstration data. Changed Settings and auto-correction screenshots were removed for v0.6.28; use the current written steps and replacement examples.
|
||||
|
||||
<a id="feature-1"></a>
|
||||
|
||||
@@ -55,7 +55,6 @@ Select `ghbdsn` and use **Next layout** to get `привіт`. Enable recent-tex
|
||||
|
||||
Enable languages in **Layout cycle**, arrange them with **Move up / Move down**, and assign **Direct layout shortcut** to jump straight to a language. Available layouts come from Windows.
|
||||
|
||||

|
||||
|
||||
[Guide](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Usage)
|
||||
|
||||
@@ -65,7 +64,6 @@ Enable languages in **Layout cycle**, arrange them with **Move up / Move down**,
|
||||
|
||||
Type `hj,bnm` followed by Space to get `робить` when Ukrainian is enabled and the word is in its dictionary. Add correct spellings in **My dictionary**. Resize this dialog to give the three dictionary editors more space.
|
||||
|
||||

|
||||
|
||||
[Guide](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Auto-correction)
|
||||
|
||||
@@ -125,7 +123,6 @@ Example: `;run` → `rider .{enter}` (insert text and press Enter).
|
||||
|
||||
Click a shortcut field, press the desired combination, then **Save**. **Backspace / Delete** clears a field. Existing shortcuts survive updates; ordinary Windows combinations such as Win+V can be assigned.
|
||||
|
||||

|
||||
|
||||
[Guide](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Usage)
|
||||
|
||||
@@ -145,7 +142,6 @@ Press **Win+Shift+S**, capture a region, and open the thumbnail notification to
|
||||
|
||||
Enable **Start with Windows**. For elevated target applications, optionally enable **Start with Windows as administrator** and confirm Windows UAC. Saving this setting does not elevate an already running process.
|
||||
|
||||

|
||||
|
||||
[Guide](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/FAQ)
|
||||
|
||||
@@ -155,13 +151,21 @@ Enable **Start with Windows**. For elevated target applications, optionally enab
|
||||
- [Keyboard shortcuts, clipboard and snippets](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Usage)
|
||||
- [Updates, data and frequently asked questions](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/FAQ)
|
||||
|
||||
Documentation is current through **v0.6.27**. The application interface is in English. This wiki is available in English and Ukrainian; use the language links at the top of each page to open its translation.
|
||||
Documentation is current through **v0.6.28**. The application interface is in English. This wiki is available in English and Ukrainian; use the language links at the top of each page to open its translation.
|
||||
|
||||
[](https://send.monobank.ua/jar/88h2TddKfS)
|
||||
|
||||
[Donate via Monobank](https://send.monobank.ua/jar/88h2TddKfS) · Thank you for supporting KSwitcher!
|
||||
|
||||
## Recent changes — v0.6.27 (2026-11-02)
|
||||
## Recent changes — v0.6.28 (2026-11-02)
|
||||
|
||||
Custom automatic replacements and dictionary typo correction; merge on first connection; partial sync preserving each PC’s layouts; actionable missing-layout errors; detailed selection and clipboard diagnostics.
|
||||
|
||||
[Auto-correction](Auto-correction) · [Sync](Sync) · [Diagnostics](FAQ)
|
||||
|
||||
[Download v0.6.28](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/releases/download/release-v0.6.28/KSwitcher-win-x64.zip) · [SHA256SUMS.txt](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/releases/download/release-v0.6.28/SHA256SUMS.txt)
|
||||
|
||||
## Previous release — v0.6.27 (2026-11-02)
|
||||
|
||||
Menus support selection by underlined letter; form buttons and checkboxes support **Alt+letter**. For example, **S** opens Settings in the tray menu and **Alt+S** saves Settings. Also available in clipboard history, snippets, logs, synchronization, OCR and dictionary dialogs.
|
||||
|
||||
|
||||
+10
-7
@@ -1,4 +1,4 @@
|
||||
# Синхронізація налаштувань — v0.6.26
|
||||
# Синхронізація налаштувань — v0.6.28
|
||||
|
||||
[English](Sync) | **Українська**
|
||||
|
||||
@@ -26,12 +26,9 @@
|
||||
|
||||
## Перший і другий ПК
|
||||
|
||||
- На першому ПК **Upload local** створює профіль із поточних збережених налаштувань. Якщо профіль уже існує, ця кнопка замінює його цілком після підтвердження.
|
||||
- На другому ПК вкажіть ті самі параметри профілю та виберіть **Download remote**, щоб прийняти серверні налаштування.
|
||||
- Якщо обидві копії однакові, звичайна Sync встановить початкову спільну копію без заміни.
|
||||
- Для подальшої звичайної синхронізації використовуйте **Save / Sign in / Sync**. Незбережені зміни головного вікна не передаються. Після завантаження закрийте та відкрийте Settings заново; перевірка застарілої копії не дозволяє старому вікну перезаписати нові налаштування.
|
||||
Якщо профіль уже є, натисніть **Save / Sign in / Sync**: перше підключення одразу зливає незалежні записи. Списки винятків, сніпети й окремі пари замін об’єднуються. Різні значення одного параметра без спільної історії залишаються на своїх сторонах та з’являються у **Resolve individual conflicts…**. Решта змін застосовується одразу; нерозв’язані конфлікти зберігаються між запусками.
|
||||
|
||||
Перевірка відбувається під час запуску, кожні **10 хвилин** та приблизно через **2 секунди** після збереження налаштувань, в окремому мережевому потоці. Без мережі програма працює локально. Після помилки автоматичні спроби відкладаються на 15 хвилин; кнопка Sync дозволяє спробувати вручну.
|
||||
Якщо сервер порожній, **Upload local** створює профіль. **Download remote / Upload local** залишаються доступними для свідомої заміни профілю після підтвердження. Незбережені зміни Settings не синхронізуються; після завантаження закрийте та відкрийте Settings знову.
|
||||
|
||||
## Конфлікти та видалення
|
||||
|
||||
@@ -47,7 +44,7 @@
|
||||
|
||||
Синхронізуються гарячі клавіші, сніпети, порядок розкладок, винятки програм, параметри конвертації, скриншотів і автовиправлення, особисті словники. Для **My dictionary** спочатку натисніть **OK**, потім **Save** у головному вікні.
|
||||
|
||||
Локальними залишаються автозапуск та підвищення прав, підтримання активності, журналювання, увімкнення/ліміти історії, шлях та вибір рушія Tesseract, дані підключення й пароль. Історія буфера, знімки та файли словників не передаються. Відсутні розкладки Windows блокують застосування профілю, щоб не втратити прив’язки. Налаштування зберігаються в OpenBao як JSON; це не наскрізне шифрування від адміністратора сховища.
|
||||
Локальними залишаються автозапуск та підвищення прав, підтримання активності, журналювання, увімкнення/ліміти історії, шлях та вибір рушія Tesseract, дані підключення й пароль. Історія буфера, знімки та файли словників не передаються. У повному режимі відсутні розкладки перелічуються за мовою (якщо Windows її визначає) та точним ID; можна встановити їх або скористатися частковим режимом нижче. Налаштування зберігаються в OpenBao як JSON; це не наскрізне шифрування від адміністратора сховища.
|
||||
|
||||
## Оновлення, відновлення та відключення
|
||||
|
||||
@@ -89,3 +86,9 @@ path "auth/token/revoke-self" {
|
||||
## Клавіші доступу діалогів (v0.6.27)
|
||||
|
||||
**Alt+S** — зберегти/увійти/синхронізувати, **Alt+D** — завантажити з сервера, **Alt+U** — передати на сервер, **Alt+I** — окремі конфлікти, **Alt+F** — відключити/забути пароль, **Alt+C** — закрити. У діалозі конфліктів: **Alt+P** — значення цього ПК, **Alt+S** — сервера, **Alt+A** — застосувати вибір, **Alt+C** — скасувати. Наявні перевірки та підтвердження залишаються чинними. Див. [клавіші доступу](Usage-uk).
|
||||
|
||||
## Часткова синхронізація та доступність керування — v0.6.28
|
||||
|
||||
Прапорець **Keep this PC’s layouts and layout shortcuts (sync other settings)** залишає весь локальний цикл розкладок і прямі гарячі клавіші без змін. Натисніть **Save / Sign in / Sync** для збереження режиму й синхронізації решти параметрів. Порядок розкладок і прив’язки на сервері не перезаписуються навіть при повторному Sync або явному Upload. Download теж зберігає локальні розкладки. Параметр діє тільки на цьому ПК; зніміть його, щоб повернути повну синхронізацію.
|
||||
|
||||
Коли синхронізацію вимкнено, її поля та дії неактивні. Увімкніть головний прапорець, щоб налаштувати підключення. Для вимкнення активного підключення зніміть його й натисніть **Save**: запит не запускається, параметри й пароль зберігаються. **Disconnect / forget password** доступна і у вимкненому стані. Повідомлення можна виділити, скопіювати та прокрутити.
|
||||
|
||||
+24
-22
@@ -1,8 +1,8 @@
|
||||
# Settings synchronization — v0.6.26
|
||||
# Settings synchronization — v0.6.28
|
||||
|
||||
**English** | [Українська](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/wiki/Sync-uk)
|
||||
**English** | [Українська](Sync-uk)
|
||||
|
||||
Introduced in **v0.6.26**, released **2026-11-02**.
|
||||
Updated 2026-11-02; introduced in v0.6.26.
|
||||
|
||||
The **Sync...** button is available in Settings for everyone. Synchronization remains disabled
|
||||
until you configure your own OpenBao and enable it. Connection configuration is saved separately
|
||||
@@ -18,6 +18,10 @@ reverse-proxy URL prefixes, MFA login flows and other providers are not implemen
|
||||
|
||||
Enable synchronization and choose **Save / Sign in / Sync**. The dialog saves connection changes
|
||||
immediately; the main Settings window's Save/Cancel does not control this separate configuration.
|
||||
When synchronization is disabled, connection fields and sync actions are inactive. Check **Enable
|
||||
synchronization** to make them available. To disable an existing connection, uncheck it and click
|
||||
**Save**; this preserves the saved connection and password without starting a sync request.
|
||||
**Disconnect / forget password** remains available while synchronization is disabled.
|
||||
A blank password keeps the existing Windows credential for that server, login mount and username.
|
||||
The password is saved in Windows Credential Manager, not in settings exports, logs or the remote
|
||||
profile. HTTPS certificate validation is mandatory and redirects are refused. Login tokens are
|
||||
@@ -28,11 +32,15 @@ saved credential. A request already sent to the server may still complete; its d
|
||||
will not be applied after the connection changes. Old credentials for other connection identities
|
||||
can be removed in Windows Credential Manager under `KSwitcher.Sync/`.
|
||||
|
||||
First connection is deliberately explicit:
|
||||
On the first connection, **Save / Sign in / Sync** merges the existing profiles without
|
||||
requiring a whole-profile replacement. Independent entries (such as snippets, exclusions and
|
||||
replacement pairs) are combined. Different values for the same setting remain on their respective
|
||||
sides and appear in **Resolve individual conflicts...**; no value is guessed without a common history.
|
||||
Nonconflicting changes synchronize immediately, and unresolved conflicts survive subsequent syncs.
|
||||
|
||||
- **Upload local** creates the remote profile or replaces it with this PC's saved shared settings.
|
||||
- **Download remote** replaces this PC's shared settings with the server profile.
|
||||
- If both profiles are identical, ordinary Sync can establish the baseline without a replacement.
|
||||
- If the server has no profile yet, choose **Upload local** to create it.
|
||||
- Unsaved edits in Settings are not synchronized. Close and reopen Settings after a download;
|
||||
the existing stale-editor check prevents an old Settings window overwriting downloaded changes.
|
||||
|
||||
@@ -67,8 +75,14 @@ Deleted server versions are not silently recreated.
|
||||
Hotkeys, snippets, application exclusions, layout order, conversion, screenshot and autocorrection
|
||||
preferences are shared. Startup/elevation, keep-awake, logging, history enablement/limits,
|
||||
Tesseract executable/engine selection, connection details and credentials stay local. Clipboard
|
||||
history, screenshots and dictionary files are never uploaded. Missing keyboard layouts block
|
||||
applying a remote profile until those Windows layouts are installed, preventing lost bindings.
|
||||
history, screenshots and dictionary files are never uploaded. Full synchronization identifies
|
||||
missing keyboard layouts by language (when Windows can identify it) and exact ID.
|
||||
Install the same layout variant, or select **Keep this PC's layouts and layout shortcuts (sync
|
||||
other settings)** and click **Save / Sign in / Sync**. This device-local option keeps the entire
|
||||
local layout cycle and its direct shortcuts unchanged while synchronizing the other shared settings.
|
||||
The server's layout cycle and direct shortcuts are preserved on automatic sync and explicit Upload;
|
||||
Download also keeps the local layout configuration. Later syncs cannot erase missing server layouts
|
||||
just because this PC does not have them installed. Uncheck the option to resume full layout sync.
|
||||
Settings are JSON inside OpenBao; this is not end-to-end encryption from the vault administrator.
|
||||
|
||||
The last common profile (`sync-base.bin`) and the settings preceding the most recent downloaded
|
||||
@@ -97,18 +111,6 @@ OpenBao administrator setup:
|
||||
3. Set bounded token lifetimes on that account/auth mount and enter its credentials in KSwitcher.
|
||||
Keep the server's address and TLS certificate reachable/trusted on each participating PC.
|
||||
|
||||
|
||||
## Interface examples
|
||||
|
||||
Demonstration data only; actual v0.6.26 dialogs.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
[Home](Home) · [Snippets](Snippets) · [FAQ](FAQ)
|
||||
|
||||
|
||||
## Dialog access keys (v0.6.27)
|
||||
|
||||
**Alt+S** saves/signs in/synchronizes, **Alt+D** downloads, **Alt+U** uploads, **Alt+I** opens individual conflicts, **Alt+F** disconnects/forgets the password and **Alt+C** closes. In the conflict dialog: **Alt+P** chooses this PC, **Alt+S** chooses the server, **Alt+A** applies choices and **Alt+C** cancels. Existing validation and confirmation behavior still applies. See [access keys](Usage).
|
||||
`SyncProvider` separates versioned read/conditional-write operations from merging, local state
|
||||
and UI integration, so another service can be added without replacing the synchronization logic.
|
||||
Protocol and conflict regressions run with `build.ps1 -Test` or CMake's `sync-regressions` test.
|
||||
|
||||
+8
-3
@@ -53,7 +53,6 @@ Hello, {cursor}!
|
||||
Це зручно для привітань, підписів і повторюваних відповідей. Розпізнавання тригерів підтримується між розкладками.
|
||||
|
||||
|
||||

|
||||
|
||||
Приклад: `;run` → `rider .{enter}` (вставлення тексту й натискання Enter).
|
||||
|
||||
@@ -92,7 +91,7 @@ Chrome та Edge тепер використовують виділення з
|
||||
|
||||
## Синхронізація налаштувань (v0.6.26)
|
||||
|
||||
**Settings → Sync…** доступна всім; увімкніть її після підключення власного OpenBao. **Save / Sign in / Sync** виконує звичайну двосторонню синхронізацію. **Download remote / Upload local** замінюють весь профіль: використовуйте для початкового підключення чи свідомого відновлення. **Resolve individual conflicts…** дозволяє вибрати окремі значення. Автоматичні перевірки працюють під час запуску, кожні 10 хвилин і невдовзі після Save. [Повний посібник](Sync-uk).
|
||||
**Settings → Sync…** доступна всім; увімкніть її після підключення власного OpenBao. **Save / Sign in / Sync** виконує звичайну двосторонню синхронізацію. **Download remote / Upload local** замінюють весь профіль: використовуйте для свідомої заміни/відновлення; звичайний Sync зливає дані вже при першому підключенні. **Resolve individual conflicts…** дозволяє вибрати окремі значення. Автоматичні перевірки працюють під час запуску, кожні 10 хвилин і невдовзі після Save. [Повний посібник](Sync-uk).
|
||||
|
||||
|
||||
## Клавіші доступу до меню й форм (v0.6.27)
|
||||
@@ -101,4 +100,10 @@ Chrome та Edge тепер використовують виділення з
|
||||
|
||||
У формах **Alt+підкреслена літера** натискає кнопку, перемикає прапорець або переводить фокус у поле з відповідним підписом. У Settings: **Alt+S** — Save, **Alt+C** — Cancel, **Alt+K** — Keep screen awake, **Alt+Y** — Sync. Механізм також працює у Snippets, Logs, OCR, словниках, синхронізації та діалозі конфліктів. У межах кожної форми літери унікальні й відповідають англійським підписам.
|
||||
|
||||
Якщо Windows приховує підкреслення, натисніть **Alt**. Клавіші доступу діють у відкритому меню/активному вікні й не замінюють налаштованих глобальних хоткеїв. Використовуйте розкладку, що вводить показану англійську літеру. Поле запису хоткея й далі записує Alt-комбінації: спочатку вийдіть із нього через **Tab**. Наявні скриншоти показують звичайний стан із прихованими підкресленнями; розташування та елементи керування залишаються актуальними.
|
||||
Якщо Windows приховує підкреслення, натисніть **Alt**. Клавіші доступу діють у відкритому меню/активному вікні й не замінюють налаштованих глобальних хоткеїв. Використовуйте розкладку, що вводить показану англійську літеру. Поле запису хоткея й далі записує Alt-комбінації: спочатку вийдіть із нього через **Tab**. Наявні скриншоти показують звичайний стан із прихованими підкресленнями; зміни елементів керування у v0.6.28 описано в актуальних текстових інструкціях.
|
||||
|
||||
## Діагностика виділення — v0.6.28
|
||||
|
||||
З увімкненим журналюванням невдала перевірка показує **Expected selection**, очікуваний фрагмент та **Read back**. Контекст містить скопійований текст до/після довиділення, натискання Shift+Left або кількість доставлених пакетних подій, зміни версії буфера, повтори копіювання та час. Переривання позначають події клавіатури, миші, зміну налаштувань чи оновлення розкладок. Фокус, геометрія курсора й розкладка записуються, коли Windows їх надає; межі виділення доступні для native EDIT, інакше зазначено unavailable. Зберігається до 128 подій за 30 секунд. Цей реліз покращує діагностику, але не виправляє сам механізм асинхронного виділення у вебредакторах. При повторенні збою скопіюйте повні деталі операції з Logs та вкажіть, чи виділяли текст вручну і де був курсор.
|
||||
|
||||
Часткова синхронізація зберігає розкладки та прямі гарячі клавіші цього ПК і синхронізує решту. [Sync](Sync-uk).
|
||||
|
||||
+7
-2
@@ -53,7 +53,6 @@ Hello, {cursor}!
|
||||
Use snippets for greetings, signatures and repeated replies. Triggers are recognized across keyboard layouts.
|
||||
|
||||
|
||||

|
||||
|
||||
Example: `;run` → `rider .{enter}` (insert text and press Enter).
|
||||
|
||||
@@ -92,7 +91,7 @@ Triangle: **G**; trapezoid: **B**. **Ctrl++ / Ctrl+- / Ctrl+wheel** zoom; **Ctrl
|
||||
|
||||
## Synchronize settings (v0.6.26)
|
||||
|
||||
**Settings → Sync…** is visible to everyone; enable it only after configuring your own OpenBao. **Save / Sign in / Sync** performs ordinary bidirectional synchronization. **Download remote / Upload local** replace an entire profile; use them for initial setup or deliberate recovery. **Resolve individual conflicts…** chooses individual values. Automatic checks run at startup, every 10 minutes and shortly after Save. [Complete guide](Sync).
|
||||
**Settings → Sync…** is visible to everyone; enable it only after configuring your own OpenBao. **Save / Sign in / Sync** performs ordinary bidirectional synchronization. **Download remote / Upload local** replace an entire profile; use them for deliberate replacement/recovery; ordinary Sync merges on the first connection. **Resolve individual conflicts…** chooses individual values. Automatic checks run at startup, every 10 minutes and shortly after Save. [Complete guide](Sync).
|
||||
|
||||
|
||||
## Menu and form access keys (v0.6.27)
|
||||
@@ -102,3 +101,9 @@ With a menu open, press its underlined letter. The tray menu uses **H** for clip
|
||||
In forms, press **Alt+the underlined letter** to activate a button, toggle a checkbox or focus a labeled field. Settings uses **Alt+S** for Save, **Alt+C** for Cancel, **Alt+K** for Keep screen awake and **Alt+Y** for Sync. The same mechanism is available in Snippets, Logs, OCR, dictionaries, synchronization and conflict dialogs. Letters are unique within each form and follow the English captions.
|
||||
|
||||
Press **Alt** to reveal underlines if Windows hides them. These are local access keys while the window/menu is active; they do not replace configurable global shortcuts. Use an input layout that produces the displayed English letter. A focused shortcut-capture field still records Alt combinations: press **Tab** to leave it before using access keys. Existing screenshots show the normal state with keyboard cues hidden; the layouts and controls remain applicable.
|
||||
|
||||
## Selection diagnostics — v0.6.28
|
||||
|
||||
With logging enabled, failed selection verification shows **Expected selection**, the verification target and **Read back**. The incident includes copied text before/after suffix recovery, Shift+Left progress or batch delivery counts, clipboard sequence changes, copy retries and elapsed times. Input interruptions identify keyboard, mouse, settings or layout-refresh events. Focus, caret geometry and layout are included when Windows exposes them; native EDIT selection offsets are reported, otherwise explicitly unavailable. The bounded context holds up to 128 events for 30 seconds. This release improves diagnosis, not the underlying asynchronous-editor selection behavior. If a mismatch recurs, copy the complete operation details from Logs; include whether you selected text manually and where the caret was.
|
||||
|
||||
Partial synchronization can keep this PC’s layouts and direct shortcuts while syncing other settings. [Sync](Sync).
|
||||
|
||||
Reference in New Issue
Block a user