Release v0.2.1: support remote input, safe updates and high-DPI windows
This commit is contained in:
@@ -36,6 +36,36 @@ combinations are intercepted. Unassigned shortcuts and simulated copy/paste pass
|
||||
Choose another shortcut or exit KSwitcher to restore the original action. Windows protects
|
||||
Ctrl+Alt+Delete and Win+L; these cannot be assigned.
|
||||
|
||||
Keyboard and mouse input forwarded by Microsoft Mouse Without Borders follows the same input
|
||||
path as a local keyboard/mouse, including shortcuts, recent-word conversion and snippets.
|
||||
KSwitcher marks its own generated input so copy/paste, selection, modifier releases and shell-mask
|
||||
keys cannot trigger recursive commands or overwrite the recorded typing run. Other injected input
|
||||
is accepted, including key-up events and VK-only keyboard events. Unicode packets do not provide
|
||||
physical key positions and therefore reset recent-word tracking; selection conversion still works.
|
||||
|
||||
### Updates
|
||||
|
||||
Select **Update** in the tray menu to check the stable Releases of
|
||||
[this repository](https://gitea.hrynco.com/hrynco/hrynco-kswitcher/releases).
|
||||
A startup check also reports an available version, but never installs it automatically.
|
||||
Confirm the offered version to download and install it. The updater uses the existing
|
||||
`KSwitcher-win-x64.zip` and `SHA256SUMS.txt` assets, checks the checksum, package contents, x64
|
||||
executable identity and version, then closes and restarts KSwitcher. Downloads and staging happen
|
||||
before the application exits. If replacement or startup fails, it restores the previous files;
|
||||
if recovery itself fails, it reports the retained backup directory.
|
||||
|
||||
Saved settings and clipboard history in `data/` or the local-app-data fallback are preserved.
|
||||
Existing dictionary files are preserved too; missing dictionary files are installed. Save settings
|
||||
edits before updating. The installation directory must be writable at KSwitcher's current privilege
|
||||
level. A blocked network request, incomplete release or checksum mismatch leaves the running version
|
||||
intact and is reported when Update is selected. Startup network failures remain non-interactive.
|
||||
The helper uses Windows' built-in Windows PowerShell 5.1; no additional runtime is installed.
|
||||
|
||||
Settings and the other utility windows use the destination monitor's DPI for their initial frame,
|
||||
controls and fonts. They can be resized, stay within a remaining monitor's work area after display
|
||||
changes, and provide scrollbars when their content does not fit. Tab navigation scrolls the focused
|
||||
field into view; Shift+wheel scrolls horizontally.
|
||||
|
||||
## Implemented
|
||||
|
||||
- Installed Windows keyboard layouts, configurable cycle/order and direct shortcuts; IMEs are switch-only.
|
||||
@@ -114,10 +144,8 @@ This is a working native implementation, not a claim of complete UI/release pari
|
||||
|
||||
- UI currently uses English and the native Windows control appearance. [Typlo](https://github.com/bitcodepro/Typlo)'s ten-language UI and
|
||||
explicit light/dark theme selector are not yet ported.
|
||||
- Automatic release download/replacement is not enabled. KSwitcher has no configured release feed;
|
||||
using [Typlo](https://github.com/bitcodepro/Typlo)'s feed would install the wrong application. Updates are manual.
|
||||
- No import of old encrypted clipboard history. Export/import applies to settings.
|
||||
- The clipboard popup is fixed-size with per-monitor DPI scaling; PNG/DIB previews use Windows WIC/GDI.
|
||||
- The clipboard popup uses per-monitor DPI scaling and scrolls when space is limited; PNG/DIB previews use Windows WIC/GDI.
|
||||
|
||||
The Windows focus/injection rules still apply: an unelevated process cannot edit an elevated app.
|
||||
Conversion is cancelled rather than pasting into a different window or replacing unverified recent text.
|
||||
@@ -201,6 +229,18 @@ Run `./package.ps1 -PublishRelease` after building and testing to refresh the tr
|
||||
.\build.ps1 -Integration # Interactive, isolated test editor; avoid input for about 10 seconds
|
||||
```
|
||||
|
||||
`-Test` also checks remote/own input separation, hidden Settings layout and scrolling, and updater
|
||||
package validation, file preservation and rollback in temporary fixture directories. It does not
|
||||
replace a running installation. Optional read-only network checks:
|
||||
|
||||
```powershell
|
||||
.\build\KSwitcherInputTests.exe --update-check
|
||||
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tests\update.ps1 -Network
|
||||
```
|
||||
|
||||
These validate the live release metadata/download/checksum in a temporary directory. They do not
|
||||
prove hardware interoperability between two laptops or a physical monitor-disconnection sequence.
|
||||
|
||||
The interactive test requires installed English-US and Russian layouts. It opens its own editor,
|
||||
tests real copy/paste, undo, repeat conversion, recent-input verification and snippet cursor placement,
|
||||
then restores the clipboard. Test data is stored in its own temporary directory. It never sends messages
|
||||
|
||||
Reference in New Issue
Block a user