summaryrefslogtreecommitdiff
path: root/.config/eww/scripts/workspace-list-listener
diff options
context:
space:
mode:
Diffstat (limited to '.config/eww/scripts/workspace-list-listener')
-rwxr-xr-x.config/eww/scripts/workspace-list-listener25
1 files changed, 11 insertions, 14 deletions
diff --git a/.config/eww/scripts/workspace-list-listener b/.config/eww/scripts/workspace-list-listener
index 9ad35ca..5ab5c19 100755
--- a/.config/eww/scripts/workspace-list-listener
+++ b/.config/eww/scripts/workspace-list-listener
@@ -2,20 +2,17 @@
readonly IPC=/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock
-ws="`hyprctl -j workspaces | jq -r 'sort_by(.id) | .[] | .name'`"
-jo -a $ws
+hyptctl -j workspaces | jq -cr '
+ [.[].id]
+ | group_by(. / 10 | floor)
+ | [.[] | map(. % 10)]
+'
socat -u UNIX-CONNECT:"$IPC" - \
| stdbuf -oL grep -E '^(create|destroy)workspace>>' \
- | while IFS='>>' read -r e _ n
- do
- case "$e" in
- c*)
- ws="`printf '%s\n%s\n' "$ws" $n | sort -n`"
- ;;
- d*)
- ws="`echo "$ws" | grep -v "^$n$"`"
- ;;
- esac
- jo -a $ws
- done
+ | while read -r _; do hyprctl -j workspaces; done \
+ | jq -cr '
+ [.[].id]
+ | group_by(. / 10 | floor)
+ | [.[] | map(. % 10) | sort_by(.)]
+ '