sohkd is a display protocol-independent hotkey daemon made in Rust. sohkd uses an easy-to-use configuration system inspired by sxhkd so you can easily add or remove hotkeys.
The default configuration file is in `/etc/sohkd/sohkdrc`. If you don't like having to edit the file as root every single time, you can create a symlink from `~/.config/sohkd/sohkdrc` to `/etc/sohkd/sohkdrc`.
1. Add the commands from the ["Running" section](https://github.com/waycrate/sohkd#running) to your window managers configuration file.
1. Enable the [service file](https://github.com/waycrate/sohkd/tree/main/contrib/init) for your respective init system. Currently only systemd and OpenRC service files exist and more will be added soon including Runit.
We use a server-client model to keep you safe. The daemon ( sohkd - privileged process ) communicates to the server ( swhks - running as non root user ) after checking for valid keybinds. Since the daemon is totally separate from the server, no other process can read your keystrokes. As for shell commands, you might be thinking that any program can send shell commands to the server and that's true! But the server runs the commands as the currently logged in user so no extra permissions are provided ( This is essentially the same as any app on your desktop calling shell commands ).