chore(release): v1.4.0

Shortcuts gain several bindings per action, mouse buttons and a searchable
picker, and the stored shortcut schema changes shape, so this is a minor bump.
Existing shortcuts migrate on first launch.

Play release notes state that this release carries no mobile feature changes;
the work is desktop-only.
This commit is contained in:
Yun Chan 2026-09-21 13:41:59 +09:00
parent 4ad1ae6ed4
commit 30d51c952f
25 changed files with 89 additions and 47 deletions

View file

@ -13,6 +13,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Cloud-optional backup (encrypted, opt-in)
- Plugin system for custom pipelines
## [1.4.0] - 2026-09-21
### Added
- **Several shortcuts per action.** Every action now holds a list of bindings
instead of a single one, so a second (or third) shortcut can be added with the
`+` button and removed individually.
- **Mouse buttons as shortcuts.** Side buttons (back / forward) can be bound on
their own; right and middle click require a modifier. Left click cannot be
bound because it drives every on-screen interaction. Mouse events cannot be
swallowed, so a bound button still performs its original action — the settings
screen says so before the binding is saved.
- **Pick a key from a searchable list.** Besides pressing the key, a shortcut can
now be chosen from a grouped dropdown with a search box inside it, which also
makes keys reachable that are awkward to press while recording.
- **The history and command popups are rebindable.** `Ctrl+Shift+V` and
`Ctrl+Shift+C` were fixed in code and had no settings entry; they are now
ordinary actions. The voice command shortcut, which had never been exposed in
settings, is visible as well.
### Fixed
- **Double-press hands-free never triggered.** Dictation and hands-free ship with
the same default key and are told apart by the double press, but shortcut
lookup stopped at the first match, so hands-free was unreachable in installed
builds. Both actions now receive the event and are split by press type.
- **Reserved system shortcuts could be assigned anyway.** The check compared
joined key names, so pressing the modifiers in a different order let `Ctrl+C`
and friends through. Combinations are now compared structurally.
- **Turning shortcuts off also killed the popup shortcuts permanently.** Disabling
global shortcuts released every registration in the process, including ones it
did not own, and re-enabling never restored them.
- **Enabling shortcuts after starting with them off left nothing bound.**
- **Shortcut labels were frozen in the language they were recorded in** and did not
follow the app language or platform conventions. They are now derived on display.
- **The dashboard caption indicator never reflected the real state** because the
event payload was stored instead of the state inside it.
### Changed
- Shortcuts are stored as one list per action. Existing shortcuts are migrated
automatically on first launch; no reconfiguration is needed.
## [1.3.7] - 2026-09-19
### Fixed