44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#!/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}'
|