parent
a4fcd4de31
commit
c011888c5f
@ -0,0 +1,104 @@ |
|||||||
|
.TH HKD 1 "JULY 2020" "Alessandro Mauri" |
||||||
|
|
||||||
|
.SH NAME |
||||||
|
hkd \- simple HotKey Daemon |
||||||
|
|
||||||
|
.SH SYNOPSIS |
||||||
|
.SY hkd |
||||||
|
.OP \-v |
||||||
|
.YS |
||||||
|
|
||||||
|
.SH DESCRIPTION |
||||||
|
.PP |
||||||
|
hkd is a simple hotkey daemon that executes commands after pressing certain |
||||||
|
key combinations specified in the config file. |
||||||
|
.PP |
||||||
|
hkd works without a graphical session loaded as it uses the linux evdev |
||||||
|
interface, as such it can be used in a TTY. hkd also supports live reloading |
||||||
|
of input devices in and out, so newly inserted (or removed) devices are detected |
||||||
|
correctly. |
||||||
|
|
||||||
|
.SH OPTIONS |
||||||
|
.IP \-v |
||||||
|
verbose, prints the internal pressed key buffer upon change acting as a crude |
||||||
|
keylogger :^) |
||||||
|
|
||||||
|
.SH FILES |
||||||
|
The configuration files are searched in the following order: |
||||||
|
.I $XDG_CONFIG_HOME/hkd/config, $HOME/.config/hkd/config, /etc/hkd/config |
||||||
|
|
||||||
|
.SH USAGE |
||||||
|
For hkd to work properly the user starting it needs to be either in the |
||||||
|
.I root |
||||||
|
group or the |
||||||
|
.I input |
||||||
|
group, this is needed to acces the appropriate system files. |
||||||
|
.PP |
||||||
|
The config file is parsed as follows: |
||||||
|
.IP # |
||||||
|
lines staring with '#' are comments |
||||||
|
.PP |
||||||
|
Every new hotkey starts with one of these markers: |
||||||
|
.IP - |
||||||
|
normal matching |
||||||
|
.IP * |
||||||
|
fuzzy matching |
||||||
|
.PP |
||||||
|
Normal matching means that the keys need to be pressed in the same order as they |
||||||
|
are declared, whereas fuzzy matching means that they can be pressed in any order. |
||||||
|
.PP |
||||||
|
Leading or trailing whitespaces are ignored, whitespaces between the marker and |
||||||
|
the ':' are also ignored, whitespaces after the ':' are not ignored. The general |
||||||
|
syntax for a hotkey is: |
||||||
|
.I <marker> <keys>: <command> |
||||||
|
.PP |
||||||
|
Commads are expanded using |
||||||
|
.BR wordexp(3) |
||||||
|
so "|&;<>(){}" as well as unescaped newlines are forbidden and will result in |
||||||
|
error, read the manpage for |
||||||
|
.BR wordexp(3) |
||||||
|
for more info about the possible word expansion capabilities. |
||||||
|
.PP |
||||||
|
Possible keys are taken directly from linux's input.h header file, those |
||||||
|
include normal keys, multimedia keys and special keys, for the full list |
||||||
|
of available keys either refer to the header file or this project's hkd.c |
||||||
|
source file. Keys as specified by the kernel are named "KEY_<name>", in this |
||||||
|
configuration file only the <name> is required. |
||||||
|
Key names are always capitalized and do not differenciate between upper or |
||||||
|
lower case, as such hotkeys that require a capitalized letter need to include |
||||||
|
RIGHTSHIFT or LEFTSHIFT in the keys section. |
||||||
|
Keys are intended as a list of comma separated strings. |
||||||
|
|
||||||
|
.SH EXAMPLES |
||||||
|
This is a valid config file example |
||||||
|
.PP |
||||||
|
.EX |
||||||
|
# Contents of |
||||||
|
# $HOME/.config/hkd/config |
||||||
|
\- LEFALT,LEFTSHIFT,S: ~/screenshot.sh \-c |
||||||
|
* LEFTMETA,1,D: $SCRIPTDIR/wonkyscript |
||||||
|
\- LEFTMETA,LEFTALT,LEFTSHIFT,S: shutdown now |
||||||
|
.EE |
||||||
|
|
||||||
|
.SH BUGS |
||||||
|
.PP |
||||||
|
Known bugs are: |
||||||
|
.IP - |
||||||
|
Commands in the config file cannot be multiline |
||||||
|
.IP - |
||||||
|
Child processes |
||||||
|
are waited at program exit possibly causing the process tree to hang as there is |
||||||
|
no real child process control |
||||||
|
.IP - |
||||||
|
Upon removing or adding devices the program waits a couple of seconds for the |
||||||
|
devices to settle, during this time the program stops working. |
||||||
|
.PP |
||||||
|
To send bug reports open an issue or submint a merge request at |
||||||
|
https://git.alemauri.eu/alema/hkd |
||||||
|
|
||||||
|
.SH AUTHOR |
||||||
|
Alessandro Mauri <alemauri001@gmail.com> |
||||||
|
|
||||||
|
.SH "SEE ALSO" |
||||||
|
.BR sxhkd(1), |
||||||
|
.BR thd(1) |
Loading…
Reference in new issue