# !/bin/env sh cpu() { cpu="$(grep -o "^[^ ]*" /proc/loadavg)" } memory() { memory="$(free -h | sed -n "2s/\([^ ]* *\)\{2\}\([^ ]*\).*/\2/p")" } disk() { disk="$(df -h | awk 'NR==2{print $4}')" } datetime() { datetime="$(date "+%F %a %H:%M")" } bat() { read -r bat_status "$FIFO" echo "all status 🔈$vol $datetime" >"$FIFO" } printf "%s" "$$" > "$XDG_RUNTIME_DIR/status_pid" FIFO="$XDG_RUNTIME_DIR/sandbar" [ -e "$FIFO" ] || mkfifo "$FIFO" sec=0 while true; do sleep 1 & wait && { #[ $((sec % 15)) -eq 0 ] && memory #[ $((sec % 15)) -eq 0 ] && cpu #[ $((sec % 15)) -eq 0 ] && disk #[ $((sec % 60)) -eq 0 ] && bat [ $((sec % 5)) -eq 0 ] && vol [ $((sec % 5)) -eq 0 ] && datetime [ $((sec % 5)) -eq 0 ] && display sec=$((sec + 1)) } done