total re-write and cleanup. removed all the old stuff and only do one xsetroot output to avoid flashing.

This commit is contained in:
forl0rn
2026-05-03 20:07:20 -05:00
parent 784a856607
commit c3aaa8ffe4
+16 -58
View File
@@ -4,74 +4,32 @@ pgrep -x "$(basename "$0")" | grep -v $$ >/dev/null && exit 0
xsetroot -name "Loading ..." xsetroot -name "Loading ..."
while (true); do while true; do
final_output=""
#set date: 04.03 15:22 #set date: 04.03 15:22
timedate=$(date +"%m.%d %H:%M") final_output=$(date +"%m.%d %H:%M")
## memory in use
#mem=$(free -m | grep Mem | awk '{print $7}')
## load average
#loadavg=$(cat /proc/loadavg | awk '{print $1 " " $2 " " $3}')
check_mpd() {
# check if mpd is playing
# if yes, output volume and song
check_play=$(mpc status | grep "playing")
if [ ! -z "$check_play" ]; then
play="[ $(mpc status | head -n 1) ]"
## volume from mopidy, not useful, use master volume below
#vol="[$(mpc vol | cut -c 8-)]"
else
#otherwise hide it
vol=""
play=""
fi
}
# function to call to update volume
# this is so I don't have to constantly poll it every 0.5
set_volume() {
## using pactl was really unreliable
#sound_card="$(pactl list sinks short | grep -i audioengine | awk '{print $1}')"
#sound_card=3
#vol="$(pactl list sinks | grep '^[[:space:]]Volume:' | head -n $sound_card | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,')%"
vol="$(pulsemixer --get-volume | awk '{print $1}')%"
}
### mouse charging
# get state (eg "charging")
#mouse_state="$(upower -i /org/freedesktop/UPower/devices/battery_hidpp_battery_6 | grep state | awk '{print $2}')"
battery_name=$(upower --dump | grep Device.*battery | awk '{print $2}')
mouse_state="$(upower -i $battery_name | grep state | awk '{print $2}')"
# get charge percentage # get charge percentage
#mouse_charge="$(upower -i $battery_name | grep percentage | awk '{print $2}')" if [[ -d "/sys/class/power_supply/BAT0" ]]; then
mouse_charge=$(< /sys/class/power_supply/BAT0/capacity) battery_output="$(< /sys/class/power_supply/BAT0/capacity)%"
# if the mouse is charging, set state to percentage. otherwise dont show it ("")
if [ $mouse_state == "charging" ] && [ $mouse_state != "discharging" ]; then
mouse_status="$mouse_charge%+"
else
mouse_status="$mouse_charge%"
fi
# volume up/down scripts will SIGHUP this PID # add the + sign if its charging
# when you receive SIGHUP just run set_volume() battery_status=$(< /sys/class/power_supply/BAT0/status)
trap set_volume SIGHUP if [[ "$battery_status" == "Charging" ]]; then
battery_output="${battery_output}+"
fi
final_output="${battery_output} ${final_output}"
fi
### weather stuff ### weather stuff
wttr_file="/tmp/weather" wttr_file="/tmp/weather"
if [[ -s "$wttr_file" ]]; then if [[ -s "$wttr_file" ]]; then
wttr=$(<"$wttr_file") wttr=$(<"$wttr_file")
xsetroot -name "$mouse_status $play $vol $wttr $timedate" final_output="${wttr} ${final_output}"
else
# output to status bar
xsetroot -name "$mouse_status $play $vol $timedate"
fi fi
# final output to status bar # final output to status bar
#xsetroot -name "$mouse_status $play $vol $timedate" xsetroot -name "$final_output"
xsetroot -name "$mouse_status $timedate" sleep 1;
sleep 0.5;
done done