Files
nixos/Droidnix/generated/.config/waybar/scripts/hypr-workspaces.sh
T
2026-04-11 15:21:23 +02:00

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}'