new features:
- hkd now uses mmap internally for loading config files, this allows for better
handling of large files and simplifies the code
- using aliases no longer requires '<' in the config file, instead the alias
name can be used anywhere in the following commands to be replaced
- aliases are now correctly replaced
- some minor fixes in the man page
Changes since last version
Fixes:
- Fixed compile error on arm due to different char size
- Fixed child processes becoming zombies
- Fixed infinite loop on config files bigger than 512B
- Fixed memory allocation bug upon reloading config file
- Fixed crash upon suspending and resuming computer
- Fixed bug where last hotkey would be ignored
- Fixed crash with small parse block sizes
Additions:
- Added -h flag
- Added -d flag
- Added some keys aliases
- Added button events
- Parsed keys are now case-insensitive
Others:
- Better code readability
- Added license in source file
- Keys are now stored in keys.h
- Better errors regarding invalid config files
- Makefile respects system's $CC
This check causes problems on architectures where char is unsigned, thus
EOF which is a signed int has a value less of the minimum permitted by the type.
To be honest this check could just be avoided alltogether, maybe in the future.
bug fixes, check commits for details
implemented new parser, altough it adds some lines it lowers the comlexity and
it should be faster especially for bigger config files
- better recognition of invalid config files
- general polish of error messages
- hkd follows the rule of silence
- when using -v the correct key names are shown
- commands in config files can be multiline (using \\n)
turned off the "error" messages by default and using the -v flag to turn
them back on as they are not useful for normal use, also now those messages
are printed to stdout
the program is finally in a usable status, many things were added in
this commit:
- config file parsing from tests
- config multiple config file locations
- more I can't grasp
anyways have fun.
this allows for a less error-prone parsing method
(as wordexp(3) is in libc) and enables for shell-like
word expansion, refer to the man page for more info
about wordexp(3)
In the future one can specify that the hotkey triggers
only when the keys are pressed in the right order, or
in any order, this will be configured per-hotkey in the
config file