#!/usr/bin/env bash # Get active workspace active_ws=$(hyprctl activeworkspace -j | jq -r '.id') # Get workspace info ws=$(hyprctl workspaces -j | jq ".[] | select(.id==$active_ws)") # Layout (requires hyprscroll plugin) layout=$(echo "$ws" | jq -r '.layout // "unknown"') # Window count clients=$(hyprctl clients -j | jq "[.[] | select(.workspace.id==$active_ws)]") count=$(echo "$clients" | jq 'length') # Visible windows (heuristic: fullscreen or floating doesn't matter, we count all) # If you use hyprscroll, visible windows ≈ 1 (current focus) visible=1 # Build tooltip (list all windows) tooltip=$(echo "$clients" | jq -r '.[].title' | sed ':a;N;$!ba;s/\n/\\n/g') # Conditions if [[ "$layout" != "scrolling" ]]; then echo '{"text": "", "class": "hidden"}' exit 0 fi if (( count <= visible )); then echo '{"text": "", "class": "hidden"}' exit 0 fi # Output star + count echo "{\"text\": \"★ $count\", \"tooltip\": \"$tooltip\", \"class\": \"overflow\"}"