swob (sway+wob helper) ====================== This is a simple/stupid helper script and config files to provide volume and brightness controls under Wayland using [wob]. Sway is *not* mandatory (the helper script doesn't depend on sway or any wlroots features); the name is simply because sway was the first compositor I configured this for. Other compositor configurations are available; see [§Installation](#installation). [wob]: https://github.com/francma/wob Calling wob from a script or config file is not too intuitive, because it panics if the process it's reading from hangs up. The helper script ensures that there is a process keeping wob open for a few seconds to allow it to time out, and potentially respond without invoking a whole new wob instance on successive taps of the volume/brightness controls, especially with pauses between. It doesn't go the way of keeping an always-open wob instance, instead trying to balance invoking as needed with not starting a whole new binary unnecessarily with every tap. Dependencies ------------ - POSIX sh, sed and mkfifo(1); non-POSIX mktemp(1) (all pretty universally available) - [wob] - [brightnessctl](https://github.com/Hummer12007/brightnessctl) - For volume, at least one of: - amixer, for [ALSA](https://www.alsa-project.org) - [wireplumber and wpctl](https://pipewire.pages.freedesktop.org/wireplumber) for pipewire - pactl for [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio) - As with anything pertaining to Poettering, pactl doesn't play nice, so the pactl backend is the slowest of the three: requires three calls to pactl and two to sed, compared with two calls to wpctl and one to amixer (each with only one call to sed). It is generally recommended to use one of the other two wherever possible Installation ------------