sbar icon indicating copy to clipboard operation
sbar copied to clipboard

Simple dwm bar script with variable timing and signalling in posix

sbar

Simple bar script for dwm and other window managers.

screenshot

Inspired by dwmblocks. Written in posix.

Features

  • Modules update with variable timing.
  • Signalling to update modules when needed.

Setup

  • 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.
display () { 
	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
[ $((sec % 60)) -eq 2 ] && update_cpu

To update item ever 60 seconds with an offset of 2 seconds.