You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
3.1 KiB
105 lines
3.1 KiB
4 years ago
|
.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)
|