kmonad-0.4.4: changelog.md
# Changelog
A log of all notable changes to KMonad.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0)
## Unreleased
### Added
### Changed
### Fixed
## 0.4.4 – 2025-04-11
### Added
- Added names for the keys `rfkill` and `micmute` (#883).
If you previously used the buttons `missing247` and `missing248`, please update to the new names.
- Added more MacOS keys (#936)
- Added keycodes above 255. If you are on linux you can use them now. (#935)
- Added `boot.initrd.services.kmonad.enable` NixOS option to use KMonad in the initrd (#941).
- Added `key-seq-delay`, a more general version of `cmp-seq-delay`, which enforces a minimum delay
after each key event. (#908)
- Added `tap-hold-next-press` which is like `tap-next-press` but with an additional timeout. (#971)
- Set unknown keyboard names to "Unknown External Keyboard" on Macos. (#980)
### Changed
- `multi-tap` now holds when interrupted by another key while held. (#897)
- `key-seq-delay` defaults to 1ms (#975).
If this slowdown in e.g. `tap-macro`s bothers you, you may want to set it to 0.
If you used `cmp-seq-delay`, you probably no longer have to,
as `key-seq-delay` effectivly already implies a `cmp-seq-delay`.
### Fixed
- Fixed `tapMacro` and `tapMacroRelease` behaviour which was slightly broken in #873 (#906)
- Fixed keycode translation problem on windows (#894)
- Fixed keyrepeat not working in tty on linux (#913)
- Fixed `multi-tap` not holding (#958, #976)
- Fixed `multi-tap` cancelling on release of other keys (#974)
## 0.4.3 – 2024-09-11
### Added
- Added `stepped`. It performs the next button from a circular sequence
whenever it is pressed.
- Implemented named source blocks.
To name a source block add `:name <name>` at the beginning of the
`defsrc` block. To use it add `:source <name>` after the layer name to the
`deflayer` block. (#831)
- Added `around-only`, which works like `around` but releases the outer button
when others are pressed. (#859)
- Added `around-when-alone`, which also represses the outer button when only
the inner button is pressed and all others have been released. (#859)
- Allow customization of implicit `around`s (#859)
### Changed
- Update Karabiner-DriverKit to 3.1.0 (#780)
- Added tests to check that every button has documentation (#857)
- `defsrc` with duplicate keycodes are now forbidden (#860)
### Fixed
- Fixed crash on non-US backslash under MacOS (#766)
- Fixed broken keyboard due to circular event handling under MacOS (#781)
- Fixed crash on unhandled buttons by ignoring them (#807)
- Fixed parse errors relating to whitespace (#796, #875)
- Fixed broken compose sequences (#823, #869)
- Fixed parse errors when using keys only available on Darwin OS (#828)
- Fixed `around-next` wasn't parsable (#857)
- Fixed most buttons which behave weird in nested tap situations (#873)
## 0.4.2 – 2023-10-07
### Added
- Added `around-next-single`, a variant of `around-next` that will release its
context on any change, as opposed to only on the release of the 'arounded'
button.
- Added default compose sequence for Ü
- Added systemd user unit
- Added runit startup script
- Added short delay in startup
- Added macOS 11.0 support
- Added a `sticky-key`
- Expanded documentation
- Added `--version` (`-V`) flag
- Added `+,` for "add a cedilla"
- Added `:timeout-button` keyword to `tap-hold-next` and
`tap-hold-next-release`, so that they can switch to a button other than the
hold button when the timeout expires.
- Added openrc startup script
### Changed
- Reorganized codebase
- The `multi-tap` key now immediately taps the current key when another
key is pressed during tapping.
### Fixed
- Fixed compilation error under Mac, having to do with typo in Keycodes
- Fixed issue with empty-names for uinput-sinks
- Ignore SIGCHLD to deal with non-termination bug
## 0.4.1 - 2020-09-12
- First release where we start tracking changes.