52 lines
976 B
Bash
Executable file
52 lines
976 B
Bash
Executable file
#!/usr/bin/env dash
|
|
|
|
# Monitor duplication daemon
|
|
WIDGET_NAME=bar
|
|
|
|
mon_count=0
|
|
|
|
# Generates $1 different window names
|
|
gen_names () {
|
|
end=$(($1-1))
|
|
out=""
|
|
for i in $(seq 0 $end); do
|
|
out="$out $WIDGET_NAME:$WIDGET_NAME$i"
|
|
done
|
|
echo $out
|
|
}
|
|
|
|
# Generates $1 monitor args
|
|
gen_args () {
|
|
end=$(($1-1))
|
|
out=""
|
|
for i in $(seq 0 $end); do
|
|
out="$out --arg $WIDGET_NAME$i:monitor=$i"
|
|
done
|
|
echo $out
|
|
}
|
|
|
|
update (){
|
|
monitors=$(hyprctl monitors -j)
|
|
count=$(echo "$monitors" | jq -c length)
|
|
|
|
if [ $mon_count -ne $count ]; then
|
|
# Close bars
|
|
eww close $(seq -s " " 0 $(($mon_count-1)))
|
|
# Open new window count
|
|
echo "eww open-many $(gen_names $count) $(gen_args $count)"
|
|
eww open-many $(gen_names $count) $(gen_args $count)
|
|
# Update mon_count
|
|
mon_count=$count
|
|
fi
|
|
}
|
|
|
|
# Open bar
|
|
update
|
|
|
|
# Open other widgets
|
|
eww open-many timer music
|
|
|
|
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
|
update
|
|
done
|
|
|