aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: c26bd7e6d6e3f392f5fe773cc6dcf5d10085b929 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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) but a sway
config snippet is provided for convenience.

[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]
- [amixer (from alsa-utils)](https://www.alsa-project.org)
- [brightnessctl](https://github.com/Hummer12007/brightnessctl)

Installation
------------

- Put swob.sh on your PATH, or edit the sway(5) config snippet to point to its
  exact location.
- Copy the sway config snippet into your own sway config file, or source it
  from that file, or copy it into /etc/sway/config.d -- obviously if you
  aren't on sway, do the equivalent for your window manager.
- Copy swob-wob.ini to one of: `$XDG_CONFIG_DIR`/swob/wob.ini,
  ~/.config/swob/wob.ini, /etc/swob/wob.ini

Copying
-------

Copyright &copy; 2024 The Remph <lhr@disroot.org>

These files are free software; the Remph gives unlimited permission to copy
and/or distribute them, with or without modification, as long as this notice
is preserved.

This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.