#!/usr/bin/env bash # Debug: log what waybar passes echo "WAYBAR_OUTPUT=$WAYBAR_OUTPUT" >> /tmp/waybar-debug.log focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused==true) | .name') echo "focused_monitor=$focused_monitor" >> /tmp/waybar-debug.log # Get the focused monitor name focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused==true) | .name') # Hide if this bar's monitor is not the focused one if [ "$WAYBAR_OUTPUT" != "$focused_monitor" ]; then jq -c -n '{text:"", class:"hidden"}' exit 0 fi # Get active workspace ID on this monitor active_ws=$(hyprctl monitors -j | jq -r \ ".[] | select(.name==\"$WAYBAR_OUTPUT\") | .activeWorkspace.id") # Get clients in active workspace clients=$(hyprctl clients -j | jq -r \ ".[] | select(.workspace.id==$active_ws) | \"\(.title)\"") # Count clients (only non-empty lines) count=$(echo "$clients" | grep -c '\S') # If no clients → hide module if [ "$count" -eq 0 ]; then jq -c -n '{text:"", class:"hidden"}' exit 0 fi # Build tooltip tooltip=$(echo "$clients" | sed 's/^/• /' | paste -sd '\n' -) # Output JSON jq -c -n \ --arg text "$count" \ --arg tooltip "$tooltip" \ --arg class "active" \ '{text:$text, tooltip:$tooltip, class:$class}'