#!/bin/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:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do update done