dotfiles/config/dwm/dwmbar

98 lines
2.2 KiB
Plaintext
Raw Normal View History

2020-04-27 06:47:36 +00:00
#!/usr/bin/env fish
function update
set -x text
# mpd
set music (mpc)
if string match -r playing "$music[2]"
set text $text "喇 $music[1]"
end
# volume
set vol (amixer get Master)
if string match -r '\[off\]' "$vol"
set text $text "ﱝ 0"
else
set v (string match -r '\[(\d+)%\]' $vol | tail -n 1)
set text $text " $v"
end
# network
for nic in (ls -d /sys/class/net/e*)
if grep up $nic/operstate > /dev/null
set speed (cat $nic/speed)M
set text $text " $speed"
end
end
set wifi (grep "^\s*w" /proc/net/wireless | awk '{ print int($3 * 100 / 70) "%" }')
if test -n "$wifi"
set text $text " $wifi"
end
# memory
set memory (free | awk '/^Mem:/ {print $3 "/" $2 "*" 100}' | math -s0)
set text $text " $memory%"
# cpu
set cpu (sensors | awk '/Core /{print $3}' | sort -r | head -n 1)
if test -n "$cpu"
set text $text " $cpu"
end
# battery
set battery (cat /sys/class/power_supply/BAT0/capacity 2>/dev/null || -1)
if test "$battery" -gt -1
set plugged (cat /sys/class/power_supply/AC/online)
if test "$plugged" -eq 1
set battery " $battery%"
else
if test $battery -gt 90
set battery " $battery%"
else if test $battery -gt 75
set battery " $battery%"
else if test $battery -gt 50
set battery " $battery%"
else if test $battery -gt 25
set battery " $battery%"
else
set battery " $battery%"
end
end
set text $text "$battery"
end
# | sed 's/Mon/一/; s/Tue/二/; s/Wed/三/; s/Thu/四/; s/Fri/五/; s/Sat/六/; s/Sun/日/;'
set dt (date +"%m-%d %H:%M %a")
set text $text " $dt"
set text (string join ' ' $text)
xsetroot -name " $text "
# prevent screen-saver when there is ongoing zoom metting
if xdotool search --name '^Zoom Meeting ID:'
xset s reset
end
end
function loop
while true
update
sleep 1
end
end
function start
set script (status -f)
$script loop &
end
function restart
pkill -f 'dwmbar loop'
start
end
switch "$argv[1]"
case "update"
update
case "loop"
loop
case "start"
start
case "*"
restart
end