From e66eb551bb221b9ab91080d9f5fde7ea459a2bc1 Mon Sep 17 00:00:00 2001
From: Justine Smithies <justine@smithies.me.uk>
Date: Sat, 6 Jul 2024 20:36:25 +0100
Subject: Make sure that eww bar focus on lowest focused tag for each output

---
 .config/eww/scripts/start.sh | 50 ++++++++++++++++++++++++++------------------
 1 file changed, 30 insertions(+), 20 deletions(-)

(limited to '.config/eww/scripts')

diff --git a/.config/eww/scripts/start.sh b/.config/eww/scripts/start.sh
index 9819fa0..5d46693 100755
--- a/.config/eww/scripts/start.sh
+++ b/.config/eww/scripts/start.sh
@@ -1,5 +1,30 @@
 #!/bin/bash
 
+focusactivetag() {
+	export arg="$1"
+	echo "Arg: "$arg	
+	# Focus the lowest active tag
+	num=$(river-bedload -print outputs | jq -r '.['$arg'] | select(.).view_tags')
+	b=0                                                                                                           
+	while [[ $num -gt 0 ]]                                                                                        
+	do
+  			let temp=$num%2                                                                                       
+  			if [[ $temp -eq 1 ]]                                                                                  
+  			then                                                                                                  
+  	    	let count=$count+1                                                                                        
+				fi                                                                                                    
+				let num=$num/2                                                                                        
+	let b=b+1                                                                                                   
+	if [[ $temp -eq 1 ]]                                                                                        
+	then                                                                                                        
+  	echo $b
+  	riverctl set-focused-tags $((1 << ($b - 1)))
+  	return                                                                                                   
+	fi                                                                                                          
+done
+return
+}
+
 # kill any running instances if they exist
 eww kill
 
@@ -11,27 +36,12 @@ monitors=$(wlr-randr | grep "^[^ ]" | awk '{ print$1 }' | wc -l | xargs)
 total=$(wlr-randr | grep "^[^ ]" | awk '{ print$1 }' | wc -l | xargs)
 monitors=$(($monitors-1))
 # for ((i = 0 ; i < $monitors ; i++)); do
-for ((i = $monitors ; i >= 0 ; i-=1)); do 
-	eww open bar${i}
+for ((i = $monitors ; i >= 0 ; i-=1)); do
+  eww open bar${i}
+	riverctl focus-output $(wlr-randr | grep "^[^ ]" | awk '{ print$1 }' | awk 'FNR == '$i+1' {print}')
+	focusactivetag $i
 done
 if [ "$total" -gt "1" ]; then
 	riverctl focus-output HDMI-A-1
-	# Focus the lowest active tag
-	num=$(river-bedload -print outputs | jq -r '.['0'] | select(.).view_tags')
-	b=0                                                                                                           
-	while [[ $num -gt 0 ]]                                                                                        
-	do
-  	let temp=$num%2                                                                                       
-  	if [[ $temp -eq 1 ]]                                                                                  
-  	then                                                                                                  
-  	let count=$count+1                                                                                        
-	fi                                                                                                    
-	let num=$num/2                                                                                        
-	let b=b+1                                                                                                   
-	if [[ $temp -eq 1 ]]                                                                                        
-	then                                                                                                        
-  	riverctl set-focused-tags $((1 << ($b - 1)))
-  	exit 0                                                                                                   
-	fi                                                                                                          
-	done
 fi
+
-- 
cgit v1.2.3