diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..8abe656 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,38 @@ +# AUR: + +We have packaged `swhkd-git`. `swhkd-bin` has been packaged separately by a user of swhkd. + +# Building: + +`swhkd` and `swhks` 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 ) +- Uinput kernel module +- Evdev kernel module + +**Compile time:** + +- git +- scdoc (If present, man-pages will be generated) +- make +- rustup + +# 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` + +# Running: + +``` +swhks & +pkexec swhkd +``` diff --git a/com.github.sohkd.pkexec.policy b/com.github.sohkd.pkexec.policy new file mode 100644 index 0000000..45e7d25 --- /dev/null +++ b/com.github.sohkd.pkexec.policy @@ -0,0 +1,13 @@ + + + + + Authentication is required to run Simple Wayland Hotkey Daemon + + no + no + yes + + /usr/bin/sohkd + + diff --git a/docs/INSTALL.md b/docs/INSTALL.md deleted file mode 100644 index 99dda2f..0000000 --- a/docs/INSTALL.md +++ /dev/null @@ -1,28 +0,0 @@ -# Install - -`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) - -## Compile time: - -* rustup -* make - -# Compiling: - -* `git clone https://github.com/waycrate/sohkd;cd sohkd` -* `make setup` -* `make clean` - * `make` for a musl compile. - * `make glibc` for a glibc compile. -* `sudo make install` - -# Running: - -`sohks` -`pkexec sohkd` diff --git a/docs/assets/swhkd-svg-bg.svg b/docs/assets/swhkd-svg-bg.svg deleted file mode 100644 index 6e80e7b..0000000 --- a/docs/assets/swhkd-svg-bg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/assets/swhkd-svg.svg b/docs/assets/swhkd-svg.svg deleted file mode 100644 index 10520ed..0000000 --- a/docs/assets/swhkd-svg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/assets/swhkd.png b/docs/assets/swhkd.png deleted file mode 100644 index 526cba6..0000000 Binary files a/docs/assets/swhkd.png and /dev/null differ diff --git a/docs/sohkdrc b/docs/sohkdrc deleted file mode 100644 index 84d14fa..0000000 --- a/docs/sohkdrc +++ /dev/null @@ -1,26 +0,0 @@ -# This goes in /etc/sohkd/sohkdrc -# ! = consume key -# [XYZ] = only in mode XYZ; if not mode is specified, the hotkey is *always* used - -! + [browse] + h - sohkctl "nextInTree" "role=Header" -! + [browse] + k - sohkctl "nextInTree" "role=Link" -! + [browse] + b - sohkctl "nextInTree" "role=Button" -! + [browse] + t - sohkctl "nextInTree" "role=Table" -! + [browse] + Shift + h - sohkctl "prevInTree" "role=Header" -! + [browse] + Shift + k - sohkctl "prevInTree" "role=Link" -! + [browse] + Shift + b - sohkctl "prevInTree" "role=Button" -! + [browse] + Shift + t - sohkctl "prevInTree" "role=Table" - -! + super + b - sohkmc "browse" "browse mode" - -! + super + f - sohkmc "focus" "focus mode" diff --git a/docs/swhkd-keys.5.gz b/docs/swhkd-keys.5.gz new file mode 100644 index 0000000..c185737 --- /dev/null +++ b/docs/swhkd-keys.5.gz @@ -0,0 +1,1435 @@ +.\" Generated by scdoc 1.11.2 +.\" Complete documentation for this program is not available as a GNU info page +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.nh +.ad l +.\" Begin generated content: +.TH "swhkd" "5" "2022-08-14" "github.com/waycrate/swhkd" "File Formats Manual" +.P +.SH NAME +.P +swhkd - Hotkey daemon inspired by sxhkd written in rust +.P +.SH VALID MODIFIERS +.P +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Ctrl +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Control +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Super +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Mod4 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Alt +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Mod1 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Shift + +.RE +.P +.RE +.SH VALID KEYS +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +q +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +w +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +e +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +r +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +t +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +y +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +u +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +i +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +o +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +p +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +a +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +s +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +d +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +g +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +h +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +j +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +k +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +l +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +z +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +x +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +c +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +v +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +b +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +n +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +m +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +1 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +2 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +3 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +4 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +5 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +6 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +7 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +8 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +9 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +0 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +escape +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +backspace +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +capslock +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +return +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +enter +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +tab +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +space +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +plus +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp0 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp1 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp2 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp3 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp4 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp5 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp6 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp7 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp8 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kp9 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpasterisk +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpcomma +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpdot +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpenter +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpequal +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpjpcomma +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpleftparen +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpminus +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kpplusminus +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +kprightparen +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +minus +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +- +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +equal +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} += +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +grave +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +` +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +print +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +volumeup +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audioraisevolume +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +volumedown +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audiolowervolume +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +mute +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audiomute +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +brightnessup +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86monbrightnessup +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +brightnessdown +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audiomedia +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audiomicmute +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +micmute +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audionext +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audioplay +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audioprev +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86audiostop +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +xf86monbrightnessdown +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +, +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +comma +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\&.\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +dot +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +period +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +/ +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +question +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +slash +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +backslash +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +leftbrace +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +[ +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +bracketleft +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +rightbrace +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +] +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +bracketright +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +; +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +scroll_lock +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +semicolon +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\&'\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +apostrophe +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +left +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +right +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +up +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +down +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +pause +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +home +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +delete +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +insert +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +end +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +pause +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +prior +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +next +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +pagedown +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +pageup +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f1 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f2 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f3 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f4 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f5 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f6 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f7 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f8 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f9 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f10 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f11 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f12 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f13 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f14 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f15 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f16 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f17 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f18 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f19 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f20 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f21 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f22 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f23 +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +f24 + +.RE +.P +.RE +.SH AUTHORS +.P +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria .\& +For more information about development, see .\& +.P +.SH SEE ALSO +.P +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd(1)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd(5)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhks(1)\fR +.RE diff --git a/docs/swhkd-keys.5.scd b/docs/swhkd-keys.5.scd new file mode 100644 index 0000000..a5e0370 --- /dev/null +++ b/docs/swhkd-keys.5.scd @@ -0,0 +1,174 @@ +swhkd(5) "github.com/waycrate/swhkd" "File Formats Manual" + +# NAME + +swhkd - Hotkey daemon inspired by sxhkd written in rust + +# VALID MODIFIERS + + - Ctrl + - Control + - Super + - Mod4 + - Alt + - Mod1 + - Shift + +# VALID KEYS + - q + - w + - e + - r + - t + - y + - u + - i + - o + - p + - a + - s + - d + - f + - g + - h + - j + - k + - l + - z + - x + - c + - v + - b + - n + - m + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 0 + - escape + - backspace + - capslock + - return + - enter + - tab + - space + - plus + - kp0 + - kp1 + - kp2 + - kp3 + - kp4 + - kp5 + - kp6 + - kp7 + - kp8 + - kp9 + - kpasterisk + - kpcomma + - kpdot + - kpenter + - kpequal + - kpjpcomma + - kpleftparen + - kpminus + - kpplusminus + - kprightparen + - minus + - - + - equal + - = + - grave + - ` + - print + - volumeup + - xf86audioraisevolume + - volumedown + - xf86audiolowervolume + - mute + - xf86audiomute + - brightnessup + - xf86monbrightnessup + - brightnessdown + - xf86audiomedia + - xf86audiomicmute + - micmute + - xf86audionext + - xf86audioplay + - xf86audioprev + - xf86audiostop + - xf86monbrightnessdown + - , + - comma + - . + - dot + - period + - / + - question + - slash + - backslash + - leftbrace + - [ + - bracketleft + - rightbrace + - ] + - bracketright + - ; + - scroll_lock + - semicolon + - ' + - apostrophe + - left + - right + - up + - down + - pause + - home + - delete + - insert + - end + - pause + - prior + - next + - pagedown + - pageup + - f1 + - f2 + - f3 + - f4 + - f5 + - f6 + - f7 + - f8 + - f9 + - f10 + - f11 + - f12 + - f13 + - f14 + - f15 + - f16 + - f17 + - f18 + - f19 + - f20 + - f21 + - f22 + - f23 + - f24 + +# AUTHORS + +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria . +For more information about development, see . + +# SEE ALSO + +- *swhkd(1)* +- *swhkd(5)* +- *swhks(1)* diff --git a/docs/swhkd.1.gz b/docs/swhkd.1.gz new file mode 100644 index 0000000..4370bb2 --- /dev/null +++ b/docs/swhkd.1.gz @@ -0,0 +1,157 @@ +.\" Generated by scdoc 1.11.2 +.\" Complete documentation for this program is not available as a GNU info page +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.nh +.ad l +.\" Begin generated content: +.TH "swhkd" "1" "2022-08-14" "github.com/shinyzenith/swhkd" "General Commands Manual" +.P +.SH NAME +.P +swhkd - Hotkey daemon inspired by sxhkd written in rust +.P +.SH SYNOPSIS +.P +\fBpkexec swhkd\fR [\fIflags\fR] +.P +.SH CONFIG FILE +.P +The config file goes in \fB/etc/swhkd/swhkdrc\fR.\& Since swhkd is written with a pkexec privilege escalation model in mind, we can'\&t detect +\fB$XDG_CONFIG_HOME\fR.\& +.P +This can be avoided as such: +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Using the \fBinclude\fR statement in your config file.\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Using the \fB-c\fR flag to mention a custom config file at runtime.\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Symlinking the config file from \fB~/.\&config/swhkd/swhkdrc\fR or any other directory of choice to \fB/etc/swhkd/swhkdrc\fR.\& + +.RE +.P +.RE +More about the config file syntax in `swhkd(5)` +.P +.SH OPTIONS +.P +\fB-h\fR, \fB--help\fR +.RS 4 +Print help message and quit.\& +.P +.RE +\fB-V\fR, \fB--version\fR +.RS 4 +Print version information.\& +.P +.RE +\fB-c\fR, \fB--config\fR +.RS 4 +Set a custom config file path.\& +.P +.RE +\fB-C\fR, \fB--cooldown\fR +.RS 4 +Set a custom repeat cooldown duration.\& Default is 250ms.\& Most wayland +compositors handle this server side however, either way works.\& +.P +.RE +\fB-d\fR, \fB--debug\fR +.RS 4 +Enable debug mode.\& +.P +.RE +\fB-D, --device\fR +.RS 4 +Manually set the keyboard devices to use.\& Can occur multiple times.\& +.P +.RE +.SH SIGNALS +.P +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Reload config file: `sudo pkill -HUP swhkd` +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Pause Hotkey checking: `sudo pkill -USR1 swhkd` +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Resume key checking: `sudo pkill -USR2 swhkd` + +.RE +.P +.RE +.SH AUTHORS +.P +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria .\& +For more information about development, see .\& +.P +.SH SEE ALSO +.P +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd(5)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd-keys(5)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhks(1)\fR +.RE diff --git a/docs/swhkd.1.scd b/docs/swhkd.1.scd new file mode 100644 index 0000000..f83e712 --- /dev/null +++ b/docs/swhkd.1.scd @@ -0,0 +1,59 @@ +swhkd(1) "github.com/shinyzenith/swhkd" "General Commands Manual" + +# NAME + +swhkd - Hotkey daemon inspired by sxhkd written in rust + +# SYNOPSIS + +*pkexec swhkd* [_flags_] + +# CONFIG FILE + +The config file goes in */etc/swhkd/swhkdrc*. Since swhkd is written with a pkexec privilege escalation model in mind, we can't detect +*$XDG_CONFIG_HOME*. + +This can be avoided as such: + - Using the *include* statement in your config file. + - Using the *-c* flag to mention a custom config file at runtime. + - Symlinking the config file from *~/.config/swhkd/swhkdrc* or any other directory of choice to */etc/swhkd/swhkdrc*. + +More about the config file syntax in `swhkd(5)` + +# OPTIONS + +*-h*, *--help* + Print help message and quit. + +*-V*, *--version* + Print version information. + +*-c*, *--config* + Set a custom config file path. + +*-C*, *--cooldown* + Set a custom repeat cooldown duration. Default is 250ms. Most wayland + compositors handle this server side however, either way works. + +*-d*, *--debug* + Enable debug mode. + +*-D, --device* + Manually set the keyboard devices to use. Can occur multiple times. + +# SIGNALS + + - Reload config file: `sudo pkill -HUP swhkd` + - Pause Hotkey checking: `sudo pkill -USR1 swhkd` + - Resume key checking: `sudo pkill -USR2 swhkd` + +# AUTHORS + +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria . +For more information about development, see . + +# SEE ALSO + + - *swhkd(5)* + - *swhkd-keys(5)* + - *swhks(1)* diff --git a/docs/swhkd.5.gz b/docs/swhkd.5.gz new file mode 100644 index 0000000..bc9a8a9 --- /dev/null +++ b/docs/swhkd.5.gz @@ -0,0 +1,186 @@ +.\" Generated by scdoc 1.11.2 +.\" Complete documentation for this program is not available as a GNU info page +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.nh +.ad l +.\" Begin generated content: +.TH "swhkd" "5" "2022-08-14" "github.com/waycrate/swhkd" "File Formats Manual" +.P +.SH NAME +.P +swhkd - Hotkey daemon inspired by sxhkd written in rust +.P +.SH CONFIG FILE +.P +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +A global config can be defined in \fB/etc/swhkd/swhkdrc\fR.\& Swhkd attempts to look in your \fB$XDG_CONFIG_HOME\fR, failing which it defaults to \fB~/.\&config\fR.\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +A local config overrides the global one.\& Local configs should be placed in the root of the project.\& + +.RE +.P +.RE +.SH SYNTAX +.P +Each line of the configuration file is interpreted as so: +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +If it is empty or starts with #, it is ignored.\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +If it starts with a space, it is read as a command.\& +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +Otherwise, it is read as a hotkey.\& + +.RE +.P +.RE +For valid keys and modifiers, check \fBswhkd-keys(5)\fR +.P +.SH EXAMPLE +.P +.nf +.RS 4 +# Import another configuration file\&. +# NOTE: the path provided must be absolute and not relative such as `~`\&. +include /home/YourUserName/\&.config/swhkd/swhkdrc + +ignore alt + print # globally ignore a key binding + +# terminal +super + ReTuRn # case insensitive + alacritty + +super + shift + enter # enter = return + kitty + +# file manager +super + shift + f + pcmanfm + +# web-browser +super + w + firefox + +# bspwm +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +super + ctrl + alt + {Left +,Down +,Up +,Right} + n=10; + { d1=left; d2=right; dx=-$n; dy=0; + , d1=bottom; d2=top; dx=0; dy=$n; + , d1=top; d2=bottom; dx=0; dy=-$n; + , d1=right; d2=left; dx=$n; dy=0; + } + bspc node --resize $d1 $dx $dy || bspc node --resize $d2 $dx $dy + +super + {,, \&.} + bspc node -f {next\&.local,prev\&.local} + +# screenshot +print + scrot + +any + print # any represent at least one of the valid modifiers + scrot -s + +# Append with @ to run on key-release\&. +@super + shift + f + pcmanfm + +# Append with ~ to emit the hotkey after the command is triggered\&. Aka, don\&'t swallow the hotkey\&. +~super + shift + f + pcmanfm + +super + m + # commands starting with @ are internal commands\&. + # internal commands can be combined with normal commands with \&'&&\&'\&. + # \&'@enter\&' pushes a mode into the mode stack and starts listening only the + # key bindings defined in that mode + @enter music && echo "music" > ~/\&.config/waybar/swhkd-mode + +mode music # use the mode statement to define a mode +q + # \&'@escape\&' pops the current mode out of the mode stack + # the default mode is \&'normal mode\&', which is always on the bottom of the mode + # stack and can never be escaped + @escape && echo "normal" > ~/\&.config/waybar/swhkd-mode +{n, p, space, r, z, y} + mpc {next, prev, toggle, repeat, random, single} +endmode # use endmode if you want to set more key bindings for normal mode + +.fi +.RE +.SH AUTHORS +.P +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria .\& +For more information about development, see .\& +.P +.SH SEE ALSO +.P +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd(1)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd-keys(5)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhks(1)\fR +.RE diff --git a/docs/swhkd.5.scd b/docs/swhkd.5.scd new file mode 100644 index 0000000..1579733 --- /dev/null +++ b/docs/swhkd.5.scd @@ -0,0 +1,106 @@ +swhkd(5) "github.com/waycrate/swhkd" "File Formats Manual" + +# NAME + +swhkd - Hotkey daemon inspired by sxhkd written in rust + +# CONFIG FILE + + - A global config can be defined in */etc/swhkd/swhkdrc*. Swhkd attempts to look in your *$XDG_CONFIG_HOME*, failing which it defaults to *~/.config*. + - A local config overrides the global one. Local configs should be placed in the root of the project. + +# SYNTAX + +Each line of the configuration file is interpreted as so: + - If it is empty or starts with #, it is ignored. + - If it starts with a space, it is read as a command. + - Otherwise, it is read as a hotkey. + +For valid keys and modifiers, check *swhkd-keys(5)* + +# EXAMPLE + +``` +# Import another configuration file. +# NOTE: the path provided must be absolute and not relative such as `~`. +include /home/YourUserName/.config/swhkd/swhkdrc + +ignore alt + print # globally ignore a key binding + +# terminal +super + ReTuRn # case insensitive + alacritty + +super + shift + enter # enter = return + kitty + +# file manager +super + shift + f + pcmanfm + +# web-browser +super + w + firefox + +# bspwm +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +super + ctrl + alt + {Left\ +,Down\ +,Up\ +,Right} + n=10; \ + { d1=left; d2=right; dx=-$n; dy=0; \ + , d1=bottom; d2=top; dx=0; dy=$n; \ + , d1=top; d2=bottom; dx=0; dy=-$n; \ + , d1=right; d2=left; dx=$n; dy=0; \ + } \ + bspc node --resize $d1 $dx $dy || bspc node --resize $d2 $dx $dy + +super + {\,, .} + bspc node -f {next.local,prev.local} + +# screenshot +print + scrot + +any + print # any represent at least one of the valid modifiers + scrot -s + +# Append with @ to run on key-release. +@super + shift + f + pcmanfm + +# Append with ~ to emit the hotkey after the command is triggered. Aka, don't swallow the hotkey. +~super + shift + f + pcmanfm + +super + m + # commands starting with @ are internal commands. + # internal commands can be combined with normal commands with '&&'. + # '@enter' pushes a mode into the mode stack and starts listening only the + # key bindings defined in that mode + @enter music && echo "music" > ~/.config/waybar/swhkd-mode + +mode music # use the mode statement to define a mode +q + # '@escape' pops the current mode out of the mode stack + # the default mode is 'normal mode', which is always on the bottom of the mode + # stack and can never be escaped + @escape && echo "normal" > ~/.config/waybar/swhkd-mode +{n, p, space, r, z, y} + mpc {next, prev, toggle, repeat, random, single} +endmode # use endmode if you want to set more key bindings for normal mode + +``` +# AUTHORS + +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria . +For more information about development, see . + +# SEE ALSO + + - *swhkd(1)* + - *swhkd-keys(5)* + - *swhks(1)* diff --git a/docs/swhks.1.gz b/docs/swhks.1.gz new file mode 100644 index 0000000..02c76b3 --- /dev/null +++ b/docs/swhks.1.gz @@ -0,0 +1,52 @@ +.\" Generated by scdoc 1.11.2 +.\" Complete documentation for this program is not available as a GNU info page +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.nh +.ad l +.\" Begin generated content: +.TH "swhks" "1" "2022-08-14" "github.com/shinyzenith/swhkd" "General Commands Manual" +.P +.SH NAME +.P +swhks - Server for swhkd, used to run user level commands over IPC.\& +.P +.SH SYNOPSIS +.P +\fBswhks\fR +.P +.SH AUTHORS +.P +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria .\& +For more information about development, see .\& +.P +.SH SEE ALSO +.P +.RS 4 +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd(1)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd(5)\fR +.RE +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.IP \(bu 4 +.\} +\fBswhkd-keys(5)\fR +.RE diff --git a/docs/swhks.1.scd b/docs/swhks.1.scd new file mode 100644 index 0000000..7fded90 --- /dev/null +++ b/docs/swhks.1.scd @@ -0,0 +1,20 @@ +swhks(1) "github.com/shinyzenith/swhkd" "General Commands Manual" + +# NAME + +swhks - Server for swhkd, used to run user level commands over IPC. + +# SYNOPSIS + +*swhks* + +# AUTHORS + +Maintained by Shinyzenith , EdenQwQ , and Angelo Fallaria . +For more information about development, see . + +# SEE ALSO + + - *swhkd(1)* + - *swhkd(5)* + - *swhkd-keys(5)* diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..292fe49 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "stable"