francma / Wob
Programming Languages
Projects that are alternatives of or similar to Wob
wob — Wayland Overlay Bar
A lightweight overlay volume/backlight/progress/anything bar for wlroots based Wayland compositors (requrires support for wlr_layer_shell_unstable_v1
). This project is inspired by xob - X Overlay Bar.
Release signatures
Releases are signed with 5C6DA024DDE27178073EA103F4B432D5D67990E3 and published on GitHub.
Installation
Compiling from source
Install dependencies:
- wayland
- wayland-protocols *
- meson *
- scdoc (optional: man page) *
- libseccomp (optional: Linux kernel syscall filtering) *
* compile-time dependecy
Run these commands:
git clone [email protected]:francma/wob.git
cd wob
meson build
ninja -C build
sudo ninja -C build install
From packages
Usage
Launch wob in a terminal, enter a value (positive integer), press return.
wob
General case
You may manage a bar for audio volume, backlight intensity, or whatever, using a named pipe. Create a named pipe, e.g. /tmp/wobpipe, on your filesystem using.
mkfifo /tmp/wobpipe
Connect the named pipe to the standard input of an wob instance.
tail -f /tmp/wobpipe | wob
Set up your environment so that after updating audio volume, backlight intensity, or whatever, to a new value like 43, it writes that value into the pipe:
echo 43 > /tmp/wobpipe
Adapt this use-case to your workflow (scripts, callbacks, or keybindings handled by the window manager).
See man page for styling and positioning options.
Sway WM example
Add these lines to your Sway config file:
exec mkfifo $SWAYSOCK.wob && tail -f $SWAYSOCK.wob | wob
Volume using alsa:
bindsym XF86AudioRaiseVolume exec amixer sset Master 5%+ | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $SWAYSOCK.wob
bindsym XF86AudioLowerVolume exec amixer sset Master 5%- | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $SWAYSOCK.wob
bindsym XF86AudioMute exec amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > $SWAYSOCK.wob
Volume using pulse audio:
bindsym XF86AudioRaiseVolume exec pamixer -ui 2 && pamixer --get-volume > $SWAYSOCK.wob
bindsym XF86AudioLowerVolume exec pamixer -ud 2 && pamixer --get-volume > $SWAYSOCK.wob
bindsym XF86AudioMute exec pamixer --toggle-mute && ( pamixer --get-mute && echo 0 > $SWAYSOCK.wob ) || pamixer --get-volume > $SWAYSOCK.wob
Brightness using haikarainen/light:
bindsym XF86MonBrightnessUp exec light -A 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob
bindsym XF86MonBrightnessDown exec light -U 5 && light -G | cut -d'.' -f1 > $SWAYSOCK.wob
Brightness using brightnessctl:
bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $SWAYSOCK.wob
bindsym XF86MonBrightnessUp exec brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $SWAYSOCK.wob
See the wiki for useful scripts.
License
ISC, see LICENSE.