diff --git a/.config/eww/scripts/hypr/hyprland-getsocket b/.config/eww/scripts/hypr/hyprland-getsocket deleted file mode 100755 index 2eaf931..0000000 --- a/.config/eww/scripts/hypr/hyprland-getsocket +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -tmp=/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock -[ -f $tmp ] && echo $tmp || echo $XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock diff --git a/.config/eww/scripts/hypr/workspace-active-listener b/.config/eww/scripts/hypr/workspace-active-listener index c5e600f..d6ad335 100755 --- a/.config/eww/scripts/hypr/workspace-active-listener +++ b/.config/eww/scripts/hypr/workspace-active-listener @@ -1,7 +1,17 @@ #!/bin/sh -# REF: https://github.com/Mango0x45/dotfiles/blob/d62026673b0b833f27b85f8a551cb646ae2bd751/.config/eww/scripts/active-workspace-listener +# REF: https://github.com/Mango0x45/dotfiles/blob/c3e4bf8/.config/eww/scripts/active-workspace-listener -readonly IPC=$(./scripts/hypr/hyprland-getsocket) +readonly IPC="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" -hyprctl -j activeworkspace | jq -r '.name' -socat -u UNIX-CONNECT:"$IPC" - | sed -n 's/^workspace>>//p' +report() { + hyprctl -j monitors | jq -cr '[.[] | .activeWorkspace.id % 10]' +} + +report +socat -u UNIX-CONNECT:"$IPC" - | while read -r _ +do + case "${_%>>*}" in + workspace|moveworkspace) + report + esac +done diff --git a/.config/eww/scripts/hypr/workspace-list-listener b/.config/eww/scripts/hypr/workspace-list-listener index e865f1d..076ccbd 100755 --- a/.config/eww/scripts/hypr/workspace-list-listener +++ b/.config/eww/scripts/hypr/workspace-list-listener @@ -1,22 +1,21 @@ #!/bin/sh -# REF: https://github.com/Mango0x45/dotfiles/blob/d620266/.config/eww/scripts/workspace-list-listener +# REF: https://github.com/Mango0x45/dotfiles/blob/c3e4bf8/.config/eww/scripts/workspace-list-listener -readonly IPC=$(./scripts/hypr/hyprland-getsocket) +readonly IPC="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" -ws="`hyprctl -j workspaces | jq -r 'sort_by(.id) | .[] | .name'`" -jo -a $ws +hyprctl -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 + | while read -r _ 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 + hyprctl -j workspaces | jq -cr ' + [.[].id] + | group_by(. / 10 | floor) + | [.[] | map(. % 10) | sort_by(.)] + ' done