Files
nixos/Droidnix/generated/.config/waybar/scripts/hyprscroll-overflow.sh
T
2026-04-01 19:09:28 +02:00

34 lines
1021 B
Bash

#!/usr/bin/env bash
set -euo pipefail
# Fallback output
fallback='{"text":" ","class":"hidden"}'
# Get active workspace
active_ws=$(hyprctl activeworkspace -j 2>/dev/null | jq -r '.id' 2>/dev/null) || {
echo "$fallback"
exit 0
}
# Get workspace info
ws=$(hyprctl workspaces -j 2>/dev/null | jq ".[] | select(.id==$active_ws)" 2>/dev/null) || {
echo "$fallback"
exit 0
}
# Layout
layout=$(echo "$ws" | jq -r '.layout // "unknown"' 2>/dev/null)
# Clients
clients=$(hyprctl clients -j 2>/dev/null | jq "[.[] | select(.workspace.id==$active_ws)]" 2>/dev/null) || {
echo "$fallback"
exit 0
}
count=$(echo "$clients" | jq 'length' 2>/dev/null)
# In scrolling layout, only 1 is visible
visible=1
# Conditions
if [[ "$layout" != "scrolling" ]] || (( count <= visible )); then
echo "$fallback"
exit 0
fi
# Tooltip (safe escaping)
tooltip=$(echo "$clients" | jq -r '.[].title' 2>/dev/null | sed ':a;N;$!ba;s/\n/\\n/g')
# Final output
echo "{\"text\":\"★ $count\",\"tooltip\":\"$tooltip\",\"class\":\"overflow\"}"