My Simple bar script for displaying status information in river and dwl.
Fork of sbar. Written in POSIX SHELL.
- Modules update with variable timing.
- Signalling to update modules when needed.
Start in river with my build of dam:
# https://codeberg.org/unixchad/dam
# https://github.com/gnuunixchad/dam
riverctl spawn "${HOME}/.local/bin/dam-run"(dam-run)
Start in my build of dwl:
# https://codeberg.org/unixchad/dwl
# https://github.com/gnuunixchad/dwl
alias dl="exec ssh-agent ${HOME}/.local/bin/damblocks | /usr/local/bin/dwl"depends: ttf-nerd-fonts-symbols wireplumber brightnessctl coreutils sed grep awk curl
suggests: dash bluez-utils isync newsboat calcurse mpc wob
Every function that supports signaling depends on one or more of:
- my personal scripts (~/.local/bin/)
- cronjobs (~/.config/crontab.example)
- udev rules (/etc/udev/rules)
Specific dependencies are listed in the SIGNALING session in this script
All scrips/cronjobs/rules are available on codeberg and github
- Add bar module as a function. Make sure to assign it to a variable.
update_cpu () {
cpu="$( grep -o "^[^ ]*" /proc/loadavg )"
}
- Modify display function to change the positioning of output.
xsetroot -name " [$weather] [$memory $cpu] [$bat] [$backlight] [$vol] $time "
}
You can use printf instead of xsetroot to feed it into some other bar like lemonbar.
- If signalling needed then add
trap "update_cpu;display" "RTMIN+6"
- this will update cpu when signal 40=34+6 is given to the script (RTMIN = 34)
- to update it from external commands
kill -40 "$(cat ~/.cache/pidofbar)"
- Example from my sxhkrc
{XF86AudioRaiseVolume,XF86AudioLowerVolume}
pulsemixer --change-volume {+,-}5 ; \
kill -34 "$(cat ~/.cache/pidofbar)"
- Add the update information in the while loops as follows
To update item ever 60 seconds with an offset of 2 seconds.
