- Refactored
diagnostic
module to be more usable as a library
- Fix buttons not being able to be overriden more than once in multi-inheritance
- In the following example,
x
would be incorrectly bound toy
infoo
- In the following example,
[a]
[[keys]]
x = 'x'
[b]
[[keys]]
x = 'y'
[c]
[[keys]]
x = 'z'
[foo]
parent = { a, b, c }
- Allow layer references in constants (
button = (cmd-button "/bin/bash $layer:my-argument")
)
- Fix layer reference parsing within Lispy buttons (
(tap-hold 50 @leader:enter XX)
)
- Fix bug where single alphabet characters would be automatically capitalized when used as rvalues
- Outside of the
defsrc
block, KMonad interprets capital letters as being shifted
- Outside of the
- Fix finnicky bug where using layer references which pointed to buttons which themselves referred to other aliases within their own layer, would cause compilation to fail ~50% of the time
- Fix bugs with tap macro parsing
- Fix single quoted strings not compiling correctly in certain cases
- Program now sets the exit code properly instead of printing it out
- Rather than printing the compiled document to stdout, correctly writes it to files
- Program now prints long help when no arguments are passed in
- Added support for string/number constant interpolation
Snippet taken from functional_tutorial.kbdx
[[private]]
scroll_sh = "~/.config/kmonad/scroll/scroll.sh"
speed_sh = "~/.config/kmonad/scroll/scroll_speed.sh"
speed-up-speed = 50
speed-down-speed = 200
exit = (layer-rem scroll)
# constants can be interpolated within double quoted strings as well
left = (cmd-button "$scroll_sh h -" "$scroll_sh h 0")
up = (cmd-button "$scroll_sh v -" "$scroll_sh v 0")
down = (cmd-button "$scroll_sh v +" "$scroll_sh v 0")
right = (cmd-button "$scroll_sh h +" "$scroll_sh h 0")
speed-up = (cmd-button "$speed_sh $speed-up-speed" "$speed_sh 0")
speed-down = (cmd-button "$speed_sh $speed-down-speed" "$speed_sh 0")
First functional release.