Release v0.6.45: fix Far snippets and ship portable Utilities folder

This commit is contained in:
agrynco committed 2026-11-05 12:35:44 +02:00
1 parent 90b2e0841f
commit c109408a98
16 files changed
+422 -34

No files matched your search

+24 -1
View File
@@ -280,9 +280,15 @@ thumbnails and source labels aligned with the scaled fonts and spacing.
Clipboard synchronizers such as Mouse Without Borders may republish a copy only when
KSwitcher first observed it owned by the target application and the selection text and
editor selection metadata remain identical. Unobserved or altered foreign copies are rejected.
Snippets require accessibility verification of their selected trigger and pasted text,
Snippets normally require accessibility verification of their selected trigger and pasted text,
even with logging disabled. If verification is unavailable or the paste differs, expansion
stops without running cursor or Enter actions. Clipboard changes during paste also cancel actions.
Far Manager uses its native Alt+Shift+Arrow selection, Ctrl+Insert copy and Shift+Insert
paste commands instead: both the trigger and inserted text must match verified clipboard
copies from Far. Cancellation restores the full temporary selection, not one cursor step.
Far supports nonempty single-line replacements up to 4096 caret steps, including
`{cursor}` and verified `{enter}` actions. Empty or multiline replacements are rejected
before selection; pasting a newline could execute a command before it can be verified.
- Teams recent-word conversion uses a single word-selection command and validates the copied range.
If the editor's word boundary differs from the recorded typing, it falls back to paced character
selection: Teams can coalesce a burst of Shift+Left events into just one character.
@@ -536,6 +542,22 @@ OpenBao administrator setup:
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.
## Portable utilities
The tray menu's **Utilities** submenu lists `.exe` files in a `tools` folder beside
`KSwitcher.exe`, sorted by filename. For example, place `StayHere.exe` at
`tools/StayHere.exe` and choose **Utilities → StayHere** to launch it manually.
The folder is rescanned whenever the menu opens; no configuration or restart is needed.
Only files directly in `tools` are listed (not subfolders, shortcuts, or KSwitcher's
own executables beside the main program). Utilities start with `tools` as their working
directory and are never started automatically. Their lifetime is independent of KSwitcher.
An absent or empty folder displays a disabled placeholder; launch errors are reported.
From v0.6.45, the release includes `tools/README.txt`, so extracting the ZIP or
installing an update creates the folder. Add your own trusted portable executables;
none are bundled or transferred by settings synchronization. Updates preserve your
utility files and may refresh the bundled README. Repository development scripts
are not included in the portable tools folder.
## Build
The easiest reproducible local route uses the pinned portable w64devkit toolchain:
@@ -659,6 +681,7 @@ Run `./package.ps1 -PublishRelease` after building and testing to refresh the tr
.\build.ps1 -Test # Pure/native regression checks; does not touch the user's clipboard
.\build.ps1 -Ocr # Render a synthetic image, decode it with WIC and recognize it with Windows OCR
.\build.ps1 -Integration # Interactive, isolated test editor; avoid input for about 10 seconds
.\build.ps1 -Far # Explicit integration test using an isolated Far Manager profile
.\tests\configuration.ps1 # Separate-process settings tests; close KSwitcher first
```