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.
 
 
Tait Hoyem 2f7ba17fbf
Update readme
2 years ago
.github [remove] pr template 2 years ago
assets Include assets 2 years ago
contrib Add contrib from latest version 2 years ago
docs Update docs with newest version 2 years ago
src Remove common 2 years ago
.gitignore [update] add server binary to gitignore 2 years ago
.rustfmt.toml [Create] rustfmt.toml 2 years ago
CODE_OF_CONDUCT.md [create] Code of conduct.md 2 years ago
CONTRIBUTING.md [update] Contributing.md 2 years ago
Cargo.lock Attempt at working with optional keys 2 years ago
Cargo.toml Remove common 2 years ago
INSTALL.md Update docs with newest version 2 years ago
LICENSE move to permissive BSD 2-Clause "Simplified" License 2 years ago
README.md Update readme 2 years ago
com.github.sohkd.pkexec.policy Update docs with newest version 2 years ago
rust-toolchain.toml Update docs with newest version 2 years ago

README.md

SWHKD

A next-generation hotkey daemon for Wayland/X11 written in Rust.

SWHKD:

Simple Wayland HotKey Daemon

swhkd is a display protocol-independent hotkey daemon made in Rust. swhkd uses an easy-to-use configuration system inspired by sxhkd so you can easily add or remove hotkeys.

It also attempts to be a drop-in replacement for sxhkd, meaning your sxhkd config file is also compatible with swhkd.

Because swhkd can be used anywhere, the same swhkd config can be used across Xorg or Wayland desktops, and you can even use swhkd in a tty.

Installation and Building:

Installation and building instructions can be found here.

Running:

swhks &
pkexec swhkd

Runtime signals:

After opening swhkd, you can control the program through signals:

  • sudo pkill -USR1 swhkd - Pause key checking
  • sudo pkill -USR2 swhkd - Resume key checking
  • sudo pkill -HUP swhkd - Reload config file

Configuration:

Swhkd closely follows sxhkd syntax, so most existing sxhkd configs should be functional with swhkd.

The default configuration file is in /etc/swhkd/swhkdrc. If you don't like having to edit the file as root every single time, you can create a symlink from ~/.config/swhkd/swhkdrc to /etc/swhkd/swhkdrc.

If you use Vim, you can get swhkd config syntax highlighting with the swhkd-vim plugin. Install it in vim-plug with Plug 'waycrate/swhkd-vim'.

All supported key and modifier names are listed in man 5 swhkd-keys.

Autostart:

To autostart swhkd you can do one of two things:

  1. Add the commands from the "Running" section to your window managers configuration file.
  2. Enable the service file for your respective init system. Currently only systemd and OpenRC service files exist and more will be added soon including Runit.

Security:

We use a server-client model to keep you safe. The daemon ( swhkd - 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 ).

So yes, you're safe!

Support:

  1. https://matrix.to/#/#waycrate-tools:matrix.org
  2. https://discord.gg/KKZRDYrRYW

Contributors: