About Kanata GUI
Improve keyboard comfort and usability with advanced customization
Improve keyboard comfort and usability with advanced customization
Improve keyboard comfort and usability with advanced customization
Configuration guide
Link to the appropriate configuration guide version: guide link.
Changelog (since 1.11.0)
Notable behaviour changes:
This note section highlights fixes/improvements that are a higher risk of unintentionally breaking workflows due to changing timings or event sequencing.
- The switch action now triggers the outer switch when triggerd via rpt-any.
- The switch action no longer uses the "action queue" meaning it activates one "tick" earlier, which is relevant for the ordering simultaneous action activations.
- Releases of active chordsv2 actions is now delayed until a pending chordsv2-relevant pressed key resolves to a decision.
Change log
- fix!: make switch repeatable and avoid action queue (#2004)
- fix!: queue custom action presses and releases (#2003)
- fix!(chordsv2): wait for earlier presses before processing releases (#1997)
- feat: add tap-hold-keys action with named key list options (#1990)
- feat: add tap-hold-opposite-hand-release action (#1991)
- feat: add tap-hold--order action (#1970)
- feat: add per-action require-prior-idle override for tap-hold (#1969)
- feat: add tap-hold-require-prior-idle defcfg option (#1960)
- feat: add defhands and tap-hold-opposite-hand (#1955)
- feat(switch): cmd support with init-cmd and cmd-exit
- feat(linux): add virtual to possible output bus type configuration (#1942)
- feat(macos): extend mouse support (#2011) (#2010) (#2005)
- feat(macos): release keyboard grab on lock screen and user switch (#2016)
- feat(macos): add actionable startup diagnostics and clean shutdown (#2015)
- feat(macos): elevate process QoS to mitigate duplicated keystrokes
- feat(macos): add continue-if-no-dev-found
- feat: add TapActivated and HoldActivated TCP server events (#1934)
- fix: enable --list for features == "gui" (#2002)
- fix(simulation): tick with no processing for can_block=true
- fix(tap-hold): add prior-idle to check for idle ticks (#2001)
- fix(macos): improve --list output for BLE devices and bump driverkit to 0.3.0 (#1987)
- fix(macos): don't intercept all devices when include/exclude list has no matches (#1986)
- fix: move layer change check within tick iterations (#1977)
- fix: handle PRESSED_KEYS type difference in clean_state (#1975)
- fix(chordsv2): handle overlapping timeouts correctly (#1961)
- fix(switch): boolean evaluation of not
- fix(linux): avoid permanent busy wait for unpressed keys (#1956)
- fix(linux): add fn key for use with asahi-linux …
| Publisher | jtroo |
|---|---|
| Version | 1.12.0 |
| Release date | 2026-07-05 |
| License | LGPL-3.0 |
| Installer type | zip |
| Architecture | x64, arm64 |
| Package ID | jtroo.kanata_gui |
winget install --id=jtroo.kanata_gui -ewinget upgrade --id=jtroo.kanata_gui -ewinget uninstall --id=jtroo.kanata_gui -eYes. Kanata GUI is free and open-source software released under the LGPL-3.0 license.
The latest version is 1.12.0, released on Jul 5, 2026.
The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 13947ed78cfa3284bfef854e3c542c74ab366236b72fd9f7e039f8638deead9d.
Kanata GUI runs on Windows and is available for 64-bit (x64), ARM64 systems.
Open Settings › Apps › Installed apps, find Kanata GUI and select Uninstall. From the command line, run winget uninstall --id=jtroo.kanata_gui -e.