What's new in kanata 1.6.1 Pre-release 1
Apr 26, 2024
- Fixed: some major issues with defchordsv2-experimental usability
- Fixed: key repeat now works again for transparent/unmapped-but-processed keys in Windows and Linux TTY (macOS unknown if affected).
New in kanata 1.6.0 Pre-release 4 (Apr 15, 2024)
- deflayermap no longer uses the mapping string - it now uses configuration pairs similar items like defvar and defalias, instead of triples.
New in kanata 1.6.0 Pre-release 3 (Mar 29, 2024)
- Fix: kanata_winIOv2.exe now handles arrow keys and other "extended scancode" keys correctly at the input side.
New in kanata 1.6.0 Pre-release 2 (Mar 26, 2024)
- Added: concurrent-tap-hold to defcfg, allowing tap-hold actions to time out in parallel
- Added: --check argument to verify config file without starting kanata
- Added: lrld-num action, allowing live reloading a specific config argument position
- Added: block-unmapped-keys to defcfg
- Added: rapid-event-delay as a mitigation around desktop environments incorrectly handling some rapid events
- Added: template definition and expansion for reducing boilerplate
- Added: more switch logic (not, key-timing, input, input-history)
- Added: lrld-file action
- Added: improved wording + syntax of fake key operations, changing name from fake to virtual
- Added: more TCP client requests and server events
- Added (Windows Interception): windows-interception-keyboard-hwids to specify specific keyboards to intercept
- Added (Windows Interception): windows-interception-mouse-hwids to specify multiple mice to intercept
- Added (macOS): kext support for macOS version 10
- Fixed: chord key association for presses/releases
- Fixed: chords resulting in multiple tap-holds can now activate both holds
- Fixed (Linux): exit on SIGTSTP to prevent locking out users from using the keyboard
- Fixed (Windows LLHOOK): reduced blast radius of lsft workaround (properly this time)
- Fixed (Windows LLHOOK): handling of locking via Win+L works correctly
New in kanata 1.6.0 Pre-release 1 (Feb 11, 2024)
- Added: concurrent-tap-hold to defcfg, allowing tap-hold actions to time out in parallel
- Added: --check argument to verify config file without starting kanata
- Added: lrld-num action, allowing live reloading a specific config argument position
- Added: block-unmapped-keys to defcfg
- Added (Windows Interception): windows-interception-keyboard-hwids to specify specific keyboards to intercept
New in kanata 1.5.0 (Dec 25, 2023)
- Added: on-idle-fakekey action
- Added: toggle option for fake key actions
- Added: error message improvement when list action isnot ina list
- Added: movemouse-inherit-accel-state
- Added: movemouse-smooth-diagonals
- Added: mouse wheel events in defsrc for Linux and Interception
- Added: unmod and unshift actions
- Added: key-history in switch
- Added: tap-hold-except-keys
- Added (macOS): limited support
- Added (Linux): allow list syntax to define devices
- Fixed: avoid crash in an error case of macro parsing
- Fixed: change unicode yen key mapping to mean KEY_YEN instead of backslash
- Fixed: rpt-any works in more cases
- Fixed: allow unmodded list in macro
- Fixed (Windows-Interception): mbck/mfwd up/down were switched, making Windows behave strangely
- Fixed (Windows-Interception): send/release Esc for OsCode with unknown mapping instead of crashing
- Fixed (Linux): maybe-fixed an issue around high CPU and memory consumption due to the rustix dependency
- Fixed (Linux): fixed issue related to touchpad disable
New in kanata 1.5.0 Pre-release 3 (Nov 24, 2023)
- Added: on-idle-fakekey action
- Added: toggle option for fake key actions
- Added: error message improvement when list action isnot ina list
- Added: movemouse-inherit-accel-state
- Added: movemouse-smooth-diagonals
- Added: mouse wheel events in defsrc for Linux and Interception
- Added: unmod and unshift actions
- Added: key-history in switch
- Fixed: avoid crash in an error case of macro parsing
- Fixed: change unicode yen key mapping to mean KEY_YEN instead of backslash
- Fixed: rpt-any works in more cases
- Fixed: allow unmodded list in macro
- Fixed (Windows-Interception): mbck/mfwd up/down were switched, making Windows behave strangely
- Fixed (Windows-Interception): send/release Esc for OsCode with unknown mapping instead of crashing
- Fixed (Linux): maybe-fixed an issue around high CPU and memory consumption due to the rustix dependency
New in kanata 1.5.0 Pre-release 2 (Oct 25, 2023)
- BREAKING FIXES:
- Change unicode yen key mapping to mean KEY_YEN instead of backslash
- Clear non-oneshot output chord (e.g. C-a) on next action
New in kanata 1.5.0 Pre-release 1 (Aug 28, 2023)
- Added: on-idle-fakekey action
- Added: toggle option for fake key actions
- Fixed: avoid crash in an error case of macro parsing
- Fixed: change unicode yen key mapping to mean KEY_YEN instead of backslash
- Fixed: rpt-any works in more cases
- Fixed (Windows-Interception): mbck/mfwd up/down were switched, making Windows behave strangely
New in kanata 1.4.0 (Jul 31, 2023)
- BREAKING FIX: kanata now errors on unknown defcfg options instead of silently ignoring them.
- BREAKING FIX: kanata now errors on unknown defcfg boolean values (e.g. this-is-not-yes) instead of silently ignoring them.
- BREAKING FIX: kanata timer handling accuracy has improved. The accuracy should now be +-1ms of the configuration. It was slow before this version, meaning a value of 100 for a delay/timeout might result in 110 ms instead. This might mean your configured timeouts and delays are now too fast for what you're used to.
New in kanata 1.4.0 Pre-release 3 (Jul 7, 2023)
- Fixed: macro with delay at end now behaves correctly
- Fixed: rpt now follows caps-word
- Fixed: trigger error on duplicate file name
- Fixed: time handling accuracy is now +- 1ms.
- Fixed(Linux): kanata hi-res scroll now works properly
- Fixed(Linux): symlink path was incorrect
- Fixed(Windows): swiss $ key
- Fixed(Windows): kprt key behaviour with Interception
- Fixed(Windows): lsft-arrow workaround now triggers more accurately, breaking fewer use cases
- Added: chords in defseq
- Added: caps-word
- Added: macro-repeat
- Added: dynamic-macro-record-stop-truncate
- Added: defaliasenvcond
- Added: config directory discovery for kanata cfg file
- Added: rpt-any
- Added: flag to remove kanata startup delay
- Added: chord output key(s)/layer-while-held release only when all input keys are released
- Added: defcfg item to delegate transparent keys to first layer
- Added: include in configuration to include other files
- Added(Windows): increase kanata process priority for better responsiveness
- Added(Linux): defcfg items for filtering by device name
- Added(Linux-X11): defcfg item for setting key repeat delay and rate
New in kanata 1.4.0 Pre-release 2 (May 23, 2023)
- BREAKING CHANGE: kanata now errors on unknown defcfg options instead of silently ignoring them
- Change log:
- Fixed: macro with delay at end now behaves correctly
- Fixed: rpt now follows caps-word
- Fixed: trigger error on duplicate file name
- Fixed(Linux): kanata hi-res scroll now works properly
- Fixed(Windows): kprt key behaviour with Interception
- Fixed(Windows): lsft-arrow workaround now triggers more accurately, breaking fewer use cases
- Added: caps-word
- Added: macro-repeat
- Added: dynamic-macro-record-stop-truncate
- Added: defaliasenvcond
- Added: config directory discovery for kanata cfg file
- Added: rpt-any
- Added: flag to remove kanata startup delay
- Added: chord output key(s)/layer-while-held release only when all input keys are released
- Added(Linux): defcfg items for filtering by device name
New in kanata 1.4.0 Pre-release 1 (Apr 3, 2023)
- Fixed: kprt key behaviour with Windows Interception
- Added: caps-word
- Added: macro-repeat
- Added: dynamic-macro-record-stop-truncate
New in kanata 1.3.0 (Mar 27, 2023)
- WARNING: Kanata now errors on invalid top-level config items. Kanata previously would ignore these and they would do nothing. Now they result in errors in the configuration.
- Fix: do not close immediately on error
- Fix: increase keyberon key queue size to help with long tap-hold durations
- Fix(Linux): change locking pattern causing unresponsiveness in some cases
- Fix(Linux): add accidentally uncfg'd key names
- Fix(Windows): release shift properly on shifted arrows
- Fix(Windows-Interception): correction of deflocalkeys-wintercept
- Fix(Windows-Interception): fix issue with Interception driver sending Esc
- Fix(Windows-Interception): use Interception mouse movement instead of SendInput
- Added: -timeout variants of tap-hold that add a third potential action
- Added: pretty errors using the miette crate
- Added: make defcfg optional
- Added: allow disabling of layer logging
- Added: ensure all keys are released at the end of a dynamic macro
- Added: tap-hold-release-keys
- Added: one-shot variants
- Added: defvar to allow defining variables
- Added: fork action that chooses left or right actions based on currently active keys
- Added(Linux): mouse move support to Linux
- Added(Linux): systemd notification when kanata has finished starting up
- Added(Windows-Interception): use SendInput for arbitrary-code in Interception as well
New in kanata 1.3.0 Pre-release 3 (Mar 17, 2023)
- Fix: do not close immediately on error
- Fix: increase keyberon key queue size to help with long tap-hold durations
- Fix(Linux): change locking pattern causing unresponsiveness in some cases
- Fix(Linux): add accidentally uncfg'd key names
- Fix(Windows): release shift properly on shifted arrows
- Fix(Windows-Interception): correction of deflocalkeys-wintercept
- Fix(Windows-Interception): fix issue with Interception driver sending Esc
- Fix(Windows-Interception): use Interception mouse movement instead of SendInput
New in kanata 1.3.0 Pre-release 2 (Mar 12, 2023)
- Fix: do not close immediately on error
- Fix: increase keyberon key queue size to help with long tap-hold durations
- Fix(Windows): release shift properly on shifted arrows
- Fix(Windows-Interception): correction of deflocalkeys-wintercept
- Fix(Windows-Interception): fix issue with Interception driver sending Esc
- Fix(Windows-Interception): use Interception mouse movement instead of SendInput
- Added: -timeout variants of tap-hold that add a third potential action
- Added: pretty errors using the miette crate
- Added: make defcfg optional
- Added: allow disabling of layer logging
- Added: ensure all keys are released at the end of a dynamic macro
- Added: tap-hold-release-keys
- Added(Windows-Interception): use SendInput for arbitrary-code in Interception as well
New in kanata 1.3.0 Pre-release 1 (Feb 27, 2023)
- Fix: do not close immediately on error
- Fix(Windows-Interception): correct of deflocalkeys-wintercept
- Fix(Windows-Interception): fix issue with Interception driver sending Esc
- Fix(Windows-Interception): use Interception mouse movement instead of SendInput
- Added: -timeout variants of tap-hold that add a third potential action
- Added: pretty errors using the miette crate
- Added: make defcfg optional
- Added: ensure all keys are released at the end of a dynamic macro
- Added(Windows-Interception): use SendInput for arbitrary-code in Interception as well
New in kanata 1.2.1 Pre-release 3 (Feb 22, 2023)
- Fix name of deflocalkeys-wintercept
- Fix Windows Interception driver randomly pressing esc
- Fix dynamic macro behaviour keys held at end of macro
- Fix a locking pattern that causes unresponsiveness
- Add Linux systemd notification for kanata startup
- Add Linux support for existing move mouse actions
New in kanata 1.2.1 Pre-release 2 (Feb 19, 2023)
- Fix name of deflocalkeys-wintercept
- Fix Windows Interception driver randomly pressing esc
- Fix dynamic macro behaviour keys held at end of macro
- Add Linux systemd notification for kanata startup
- Add Linux support for existing move mouse actions
New in kanata 1.2.1 Pre-release 1 (Feb 12, 2023)
- Fix name of deflocalkeys-wintercept
- Fix Windows Interception driver randomly pressing esc
- Attempted fix for dynamic macro layer change behaviour
New in kanata 1.2.0 (Feb 11, 2023)
- Fix a bug in fake keys with incorrect layer assignment in the layout
- Fix sequence timeout
- Fix some keycodes, add new ones
- Fix support for multiline comment syntax in cfg file
- Fix memory leak in live reload
- Improve device discovery behaviour in Linux
- Add support for defsrc mouse buttons in Windows
- Add deflocalkeys to help with non-US layouts
- Add tap-dance-eager
- Add mouse movement actions
- Add sending an initial LayerChange message to newly connected TCP clients
- Add dynamic macro
- Add different sequence input modes
- Add sending arbitrary keycodes
- Add configuration cycling with lrld-next and lrld-prev
- Add mappings for higher numbered OS codes
New in kanata 1.2.0 Pre-release 1 (Jan 31, 2023)
- Changelog:
- Fix a bug in fake keys with incorrect layer assignment in the layout
- Fix sequence timeout
- Fix some keycodes, add new ones
- Fix support for multiline comment syntax in cfg file
- Improve device discovery behaviour in Linux
- Add support for defsrc mouse buttons in Windows
- Add defcustomkeys to help with non-US layouts
- Add tap-dance-eager
- Add mouse movement actions
- Add sending an initial LayerChange message to newly connected TCP clients
- Add dynamic macro
- Add different sequence input modes
New in kanata 1.1.1 Pre-release 1 (Dec 21, 2022)
- Fix a bug in fake keys with incorrect layer assignment in the layout
- Add/fix some keycodes
- Explicitly add support for multiline comment syntax in cfg file
- Windows: Implement preliminary (still buggy) defsrc mouse buttons
- Linux: improve device discovery behaviour
- Add defcustomkeys to help with non-US layouts
New in kanata 1.1.0 (Nov 27, 2022)
- fix incorrect mapping of kp0
- fix key repeat behaviour with some key actions
- add cancellable macro
- allow some actions in macro
- improve leniency with linux device definitions
New in kanata 1.0.8 (Nov 6, 2022)
- Fixes to some Interception keys
- Improve CPU usage when nothing is being typed
- Allow colons in device path by escaping with backslash
- Add AltGr chord shortcut (AG- or RA-)
- Autodetect keyboard devices if linux-dev is omitted
- Add more mappable keys
- Add guaranteed termination of kanata using the key combo LCtrl+Space+Escape
- Enable defsrc and rempping of mouse buttons in Linux
- Allow automatic handling of unmapped keys
- Fix an issue on Windows related to keys mapped to shift
- Fix behaviour of nested multi actions
- Fix one-shot behaviour when followed by certain other special actions
- Add more remappable mouse buttons
New in kanata 1.0.7 (Aug 20, 2022)
- Add support for the interception driver
- Add vertical and horizontal mouse scrolling actions
- Add fake keys feature with press-only, release-only actions
- Add leader->sequence actions that activate a fake key tap
- Fix mouse button regression in Linux in v1.0.6
New in kanata 1.0.6 (Jul 31, 2022)
- Add TCP server for changing layers and publishing layer changes
- Add release-key and release-layer
- Add ro key (ABNT2 slash key)
- Add tap-hold-press and tap-hold-release actions
- Add Windows AltGr behaviour mitigations
- Enable Linux to listen for multiple devices