summaryrefslogtreecommitdiff
path: root/.local/bin/spectrwmbar
blob: a106b0189f570ad469e0993892f0220ff44247b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env sh
# script for spectrwm status bar

trap 'update' 5

fgcolors=("+@fg=1;" "+@fg=2;" "+@fg=3;" "+@fg=4;" "+@fg=5;" "+@fg=6;" "+@fg=7;" "+@fg=8;")
nfgcolors=${#fgcolors[@]}

SLEEP_SEC=5m

repeat() {
    i=0; while [ $i -lt $1 ]
    do
        echo -ne "$TOKEN"
        i=$(( i + 1 ))
    done
}

cpu() {
  read cpu a b c previdle rest < /proc/stat
  prevtotal=$((a+b+c+previdle))
  sleep 0.5
  read cpu a b c idle rest < /proc/stat
  total=$((a+b+c+idle))
  cpu=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) ))
  echo -e "CPU: $cpu%"
}

battery() {
    BATTERY="$(cat /sys/class/power_supply/BAT0/capacity)"

    BAR_LEFT=$BATTERY
    BATTERY_BAR=""
    BLOCK=$(( 100 / nfgcolors ))
    TOKEN=$(printf '\u2588')

    BAT_COL=$(( $nfgcolors -1 ))
    #loops forever outputting a line every SLEEP_SEC secs
    while [ $(( BAR_LEFT - BLOCK )) -gt 0 ]
    do
        BATTERY_BAR="${fgcolors[$BAT_COL]}$(repeat $BLOCK)${BATTERY_BAR}"
        BAR_LEFT=$(( BAR_LEFT - BLOCK ))
        BAT_COL=$(( BAT_COL - 1))
    done

    BATTERY_BAR="BATTERY: ${fgcolors[$BAT_COL]}$(repeat $BAR_LEFT)${BATTERY_BAR}"
    echo $BATTERY_BAR
}

update() {
    echo "$(cpu)    $(battery)"
    wait
}

while :; do
    update
    sleep $SLEEP_SEC &
    wait
done