100 lines
3.9 KiB
Bash
Executable File
100 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
print_weather() {
|
|
[ "$(stat -c %y "/home/yorune/.config/weatherreport" 2>/dev/null | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] && curl -s "wttr.in/$location" > "/home/yorune/.config/weatherreport"
|
|
|
|
printf "%s" "$(sed '16q;d' "/home/yorune/.config/weatherreport" | grep -wo "[0-9]*%" | sort -n | sed -e '$!d' | sed -e "s/^/☔ /g" | tr -d '\n')" && sed '13q;d' "/home/yorune/.config/weatherreport" | grep -o "m\\(-\\)*[0-9]\\+" | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print" ❄",$1"°","☀",$2"°"}'
|
|
}
|
|
|
|
print_volume() {
|
|
[ "$(pulsemixer --get-mute)" = "1" ] && printf "🔇" && exit
|
|
vol=$(pulsemixer --get-volume | awk '{print $1}')
|
|
printf "%s%%\\n" "🔊 $vol"
|
|
}
|
|
|
|
print_wifi(){
|
|
echo -e "$(cat /sys/class/net/w*/operstate | sed "s/down/❌/;s/up/📶/") $(cat /sys/class/net/e*/operstate | sed "s/down/❌/;s/up/🌐/")"
|
|
#echo -e "$(cat /sys/class/net/w*/operstate | sed "s/down/❌/;s/up/📶/") $(cat /sys/class/net/e*/operstate | sed "s/down/❌/;s/up/🌐/") $( [[ $(ip -br a show | awk {'print $1'}) =~ "vpn" ]] && echo "📡" || echo "❌" )"
|
|
}
|
|
|
|
print_temp(){
|
|
echo -e "🔥 $(sensors | awk '/Core 0/ {print int($3)"°C"}') $(sudo nvidia-smi -q -d temperature | grep --color=no -i "GPU Current" |egrep --color=no -o '[0-9]*')°C"
|
|
}
|
|
|
|
print_date(){
|
|
echo -e "🕛 $(date +"%d/%m %H:%M")"
|
|
}
|
|
|
|
print_mem(){
|
|
free --mebi | sed -n '2{p;q}' | awk '{printf ("🧠 %2.2fGiB", ( $3 / 1024) )}'
|
|
}
|
|
|
|
print_music(){
|
|
# Source: https://github.com/joestandring/dwm-bar
|
|
# A dwm_bar function that shows the current artist, track, position, duration, and status from cmus
|
|
# Joe Standring <git@joestandring.com>
|
|
# GNU GPLv3
|
|
# Dependencies: cmus
|
|
|
|
if ps -C cmus > /dev/null; then
|
|
ARTIST=$(cmus-remote -Q | grep -a '^tag artist' | awk '{gsub("tag artist ", "");print}')
|
|
TRACK=$(cmus-remote -Q | grep -a '^tag title' | awk '{gsub("tag title ", "");print}')
|
|
POSITION=$(cmus-remote -Q | grep -a '^position' | awk '{gsub("position ", "");print}')
|
|
DURATION=$(cmus-remote -Q | grep -a '^duration' | awk '{gsub("duration ", "");print}')
|
|
STATUS=$(cmus-remote -Q | grep -a '^status' | awk '{gsub("status ", "");print}')
|
|
SHUFFLE=$(cmus-remote -Q | grep -a '^set shuffle' | awk '{gsub("set shuffle ", "");print}')
|
|
|
|
if [ "$STATUS" = "playing" ]; then
|
|
STATUS="▶"
|
|
else
|
|
STATUS="⏸"
|
|
fi
|
|
|
|
#printf "%s%s %s - %s " "$STATUS" "$ARTIST" "$TRACK"
|
|
printf "%s" "$STATUS"
|
|
#printf "%0d:%02d/" $((POSITION%3600/60)) $((POSITION%60))
|
|
#printf "%0d:%02d" $((DURATION%3600/60)) $((DURATION%60))
|
|
#printf "%s\n"
|
|
fi
|
|
}
|
|
|
|
print_battery() {
|
|
# Find the battery level
|
|
hash acpi || return 0
|
|
onl="$(acpi -V | grep "on-line")"
|
|
charge="$(cat /sys/class/power_supply/BAT*/capacity)"
|
|
time="$(awk '{print $5}' <(acpi))"
|
|
|
|
# Determine battery glyph by percentage range
|
|
if [[ -z $onl && ${charge} -gt 80 ]]; then
|
|
echo -e "🔋 ${charge}% ${time}"
|
|
elif [[ -z $onl && ${charge} -le 80 && ${charge} -gt 60 ]]; then
|
|
echo -e "🔋 ${charge}% ${time}"
|
|
elif [[ -z $onl && ${charge} -le 60 && ${charge} -gt 40 ]]; then
|
|
echo -e "🔋 ${charge}% ${time}"
|
|
elif [[ -z $onl && ${charge} -le 40 && ${charge} -gt 20 ]]; then
|
|
echo -e "🔋 ${charge}% ${time}"
|
|
elif [[ -z $onl && ${charge} -le 20 ]]; then
|
|
echo -e "❗🔋 ${charge}% ${time}"
|
|
# If charging, use animated glyph
|
|
else
|
|
echo -e "🔌"
|
|
fi
|
|
}
|
|
|
|
print_mail(){
|
|
unread="$(find "${XDG_DATA_HOME:-$HOME/.local/share}"/mail/*/[Ii][Nn][Bb][Oo][Xx]/new/* -type f | wc -l 2>/dev/null)"
|
|
icon="$(cat "/tmp/imapsyncicon_$USER" 2>/dev/null)"
|
|
[ "$unread" = "1" ] && [ "$icon" = "" ] || echo "📬 $unread$icon"
|
|
}
|
|
|
|
print_cpu() {
|
|
cpuUse=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print int(100 - $1)"%"}')
|
|
echo -e "💻 $cpuUse"
|
|
}
|
|
|
|
while true
|
|
do
|
|
xsetroot -name "$(print_music) $(print_temp) $(print_weather) $(print_mail) $(print_cpu) $(print_mem) $(print_wifi) $(print_battery) $(print_volume) $(print_date)"
|
|
sleep 10
|
|
done
|