diff options
Diffstat (limited to 'dwm_bar')
-rwxr-xr-x | dwm_bar | 66 |
1 files changed, 66 insertions, 0 deletions
@@ -0,0 +1,66 @@ +#!/bin/env sh + +# INIT +printf "$$" > ~/.cache/pidofbar +sec=0 + +update_memory () { + memory="$(free -h | sed -n "2s/\([^ ]* *\)\{2\}\([^ ]*\).*/\2/p")" +} + +update_time () { + time="$(date "+[ %a %d %b ] [ %I:%M %P ]")" +} + +update_bat () { + # you might need to change the path depending on your device + read -r bat_status </sys/class/power_supply/BAT0/status + read -r bat_capacity </sys/class/power_supply/BAT0/capacity + if [ "$bat_status" = "Charging" ]; then + bat_status="" + elif [ "$bat_capacity" -gt 80 ]; then + bat_status="" + elif [ "$bat_capacity" -gt 60 ]; then + bat_status="" + elif [ "$bat_capacity" -gt 40 ]; then + bat_status="" + elif [ "$bat_capacity" -gt 20 ]; then + bat_status="" + else + bat_status="" + fi + bat="$bat_status $bat_capacity%" +} + +update_vol () { + vol="$([ "$(pamixer --get-mute)" = "false" ] && printf ' ' || printf ' ')$(pamixer --get-volume)%" +} + +# We have to run this only once. +update_vol + +display () { + xsetroot -name "[ $memory ] [ $vol ] $time" +} + +# Handling receiving signal +# RTMIN = 34 (always) +trap "update_vol;display" "RTMIN" + +## kill -m "$(cat ~/.cache/pidofbar)" +# where m = 34 + n + +while true +do + sleep 1 & + wait && { + # to update item ever n seconds with a offset of m + ## [ $((sec % n)) -eq m ] && udpate_item + [ $((sec % 5 )) -eq 0 ] && update_time + [ $((sec % 15)) -eq 0 ] && update_memory + + # how often the display updates ( 5 seconds ) + [ $((sec % 5 )) -eq 0 ] && display + sec=$((sec + 1)) + } +done |