47 lines
1.3 KiB
Bash
47 lines
1.3 KiB
Bash
|
#!/bin/sh
|
||
|
# baraction.sh for spectrwm status bar
|
||
|
|
||
|
## DISK
|
||
|
hdd() {
|
||
|
hdd="$(df -h | grep "/$" | awk '{print $1, $3, $5}')"
|
||
|
echo "$hdd"
|
||
|
}
|
||
|
|
||
|
## RAM
|
||
|
mem() {
|
||
|
mem=`free | awk '/Mem/ {printf "%dM/%dM\n", $3 / 1024.0, $2 / 1024.0 }'`
|
||
|
echo "$mem"
|
||
|
}
|
||
|
|
||
|
## CPU
|
||
|
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 "CPU: $cpu%"
|
||
|
}
|
||
|
|
||
|
## VOLUME
|
||
|
vol() {
|
||
|
vol=$(amixer get Master | awk -F'[][]' 'END{ print $4":"$2 }' | sed 's/on://g')
|
||
|
#vol="$(pulsemixer --get-volume | awk '{print $1}')"
|
||
|
|
||
|
echo "VOL: $vol"
|
||
|
}
|
||
|
|
||
|
SLEEP_SEC=15
|
||
|
#loops forever outputting a line every SLEEP_SEC secs
|
||
|
echo "$$" > ~/.cache/statusbar_pid
|
||
|
|
||
|
# It seems that we are limited to how many characters can be displayed via
|
||
|
# the baraction script output. And the the markup tags count in that limit.
|
||
|
# So I would love to add more functions to this script but it makes the
|
||
|
# echo output too long to display correctly.
|
||
|
while :; do
|
||
|
echo "+@fg=1; +@fn=1;💻+@fn=0; $(cpu) +@fg=0; | +@fg=2; +@fn=1;💾+@fn=0; $(mem) +@fg=0; | +@fg=3; +@fn=1;💿+@fn=0; $(hdd) +@fg=0; | +@fg=4; +@fn=1;🔈+@fn=0; $(vol) +@fg=0; |"
|
||
|
sleep $SLEEP_SEC
|
||
|
done
|