main
Tait Hoyem 2 years ago
parent 2795ee8bb4
commit 3e622b7192

@ -1,45 +1,31 @@
<p align=center>
<img src="./docs/assets/swhkd.png" alt=SWHKD width=60%>
<p align=center>A next-generation hotkey daemon for Wayland/X11 written in Rust.</p>
<p align="center">
<a href="./LICENSE.md"><img src="https://img.shields.io/github/license/waycrate/swhkd?style=flat-square&logo=appveyor"></a>
<img src="https://img.shields.io/badge/cargo-v1.0.0-green?style=flat-square&logo=appveyor">
<img src="https://img.shields.io/github/issues/waycrate/swhkd?style=flat-square&logo=appveyor">
<img src="https://img.shields.io/github/forks/waycrate/swhkd?style=flat-square&logo=appveyor">
<img src="https://img.shields.io/github/stars/waycrate/swhkd?style=flat-square&logo=appveyor">
</p>
</p>
# SOHKD
## SWHKD
**S**imple **O**dilia **H**ot**K**ey **D**aemon
**S**imple **W**ayland **H**ot**K**ey **D**aemon
*A next-generation hotkey daemon for Wayland/X11 written in Rust.*
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.
sohkd is a display protocol-independent hotkey daemon made in Rust (based off the original, [swhkd](https://waycrate.github.io/swhkd/)). sohkd uses an easy-to-use configuration system inspired by swhkd so you can easily add or remove hotkeys, and it integrates with the [Odilia screen reader](https://odilia.app) to provide modal access to key bindings.
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.
Because sohkd can be used anywhere, the same sohkd config can be used across Xorg or Wayland desktops, and you can even use swhkd in a tty.
**Note: The project is a WIP.**
**BUT!! It does work right now however it's not a drop-in replacement yet. [Example config file](./docs/swhkdrc).**
## Installation
See [INSTALL.md](./docs/INSTALL.md) for installing swhkd.
See [INSTALL.md](./docs/INSTALL.md) for installing sohkd.
## Running:
```bash
swhks &
pkexec swhkd
sohks &
pkexec sohkd
```
To refresh the config at runtime, make a script like so:
```bash
#!/bin/sh
sudo killall swhkd
pkexec swhkd
sudo killall sohkd
pkexec sohkd
```
Mark it as executable using `chmod +x <path_to_refresh_script>`.

@ -1,30 +1,28 @@
# AUR:
`swhkd-git` `swhkd-musl-git` have been packaged. `swhkd-bin` & `swhkd-musl-bin` will be released soon.
# Install
`swhkd` and `swhks` install to `/usr/local/bin/` by default. You can change this behaviour by editing the [Makefile](../Makefile) variable, `TARGET_DIR`.
`sohkd` and `sohks` install to `/usr/local/bin/` by default. You can change this behaviour by editing the [Makefile](../Makefile) variable, `TARGET_DIR`.
# Dependencies:
## Runtime:
- Policy Kit Daemon ( polkit )
* Policy Kit Daemon (polkit)
## Compile time:
- rustup
- make
* rustup
* make
# Compiling:
- `git clone https://github.com/waycrate/swhkd;cd swhkd`
- `make setup`
- `make clean`
- `make` for a musl compile.
- `make glibc` for a glibc compile.
- `sudo make install`
* `git clone https://github.com/waycrate/swhkd;cd swhkd`
* `make setup`
* `make clean`
* `make` for a musl compile.
* `make glibc` for a glibc compile.
* `sudo make install`
# Running:
`swhks`
`pkexec swhkd`

@ -0,0 +1 @@
KERNEL=="uinput", MODE="660", GROUP="odilia", OPTIONS+="static_mode=uinput"

@ -1,5 +0,0 @@
polkit.addRule(function(action, subject) {
if (action.lookup("program") == "/usr/bin/swhkd") {
return polkit.Result.YES;
}
})
Loading…
Cancel
Save