1
0
Fork 0
chezmoi/dot_config/herbstluftwm/executable_panel-generator
2022-07-08 14:11:10 +02:00

81 lines
2.1 KiB
Bash

#!/bin/bash
#pids=
#trap 'for p in $pids ; do kill $p ; done ' EXIT
batt_name=BAT0
declare -A state
update() {
local what="$1"
local new="$2"
if [[ "${state[$what]}" != "$new" ]]
then
herbstclient emit_hook "$(printf '%s\t%s' "$what" "$new")"
# echo "$what :: $new"
state[$what]="$new"
fi
}
(
playerctl metadata --format '{{playerName}}|{{status}}|{{artist}}|{{xesam:comment}}|{{title}}' -a -F |
while IFS='|' read -r player status artist comment title
do
test -n "$status" || status=off
update "$(echo -en "player\t$player")" "$(printf '%s\t%s\t%s\t%s' "$status" "$artist" "$comment" "$title")"
done
notify-send -u critical "Player" "Player monitoring loop failed!"
) &
#pids="$!"
(
while :
do
pactl subscribe | ag "Event 'change' on sink" | while read -r _
do
volume="$(pactl get-sink-volume "$(pactl get-default-sink)" | grep -E -o '[0-9]+%' | uniq | tr '\n' ',' | sed 's/,$//')"
update volume "$volume"
done
sleep 10
done
) &
while :
do
# shellcheck source=/sys/class/power_supply/BAT0/uevent # most likely
#. /sys/class/power_supply/$batt_name/uevent
if [[ -e /sys/devices/platform/smapi/BAT0/ ]]
then
read -r batt_perc < /sys/devices/platform/smapi/BAT0/remaining_percent
read -r ac < /sys/devices/platform/smapi/BAT0/state
fi
[[ -e "/sys/devices/platform/coretemp.0/hwmon/" ]] && read -r temp < /sys/devices/platform/coretemp.0/hwmon/hwmon?/temp1_input
read -r load _ < /proc/loadavg
update ac "$ac"
update load "$load"
update battery "$batt_perc"
update temperature "$((temp / 1000 ))"
update network "$(ip -br addr show dev eth0 | awk '{ print $2"\t"$3 }')"
which iwctl &>/dev/null && update wifi "$(iwctl station wlan0 show |grep 'Connected network' | sed 's/ */ /g' | cut -d ' ' -f 4-)"
#if [ -e /run/user/1000/cmus-socket ]
#then
#update player "$(printf '%s\t%s \t%s' "$(playerctl metadata artist | tr -d "'" )" "$(playerctl metadata xesam:comment)" "$(playerctl metadata title)")"
#else
#update player ""
#fi
update date "%{T2}%{T-} $(date '+%{F#efefef}%H:%M%{F#909090}, %Y-%m-%{F#efefef}%d')"
sleep 10
done