diff --git a/.config/eww/scripts/hypr/workspace-active-listener b/.config/eww/scripts/hypr/workspace-active-listener index d6ad335..1960748 100755 --- a/.config/eww/scripts/hypr/workspace-active-listener +++ b/.config/eww/scripts/hypr/workspace-active-listener @@ -1,17 +1,7 @@ #!/bin/sh -# REF: https://github.com/Mango0x45/dotfiles/blob/c3e4bf8/.config/eww/scripts/active-workspace-listener +# REF: https://github.com/Mango0x45/dotfiles/blob/d62026673b0b833f27b85f8a551cb646ae2bd751/.config/eww/scripts/active-workspace-listener readonly IPC="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" -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 +hyprctl -j activeworkspace | jq -r '.name' +socat -u UNIX-CONNECT:"$IPC" - | sed -n 's/^workspace>>//p' diff --git a/.config/eww/scripts/hypr/workspace-list-listener b/.config/eww/scripts/hypr/workspace-list-listener index 076ccbd..5b00fe5 100755 --- a/.config/eww/scripts/hypr/workspace-list-listener +++ b/.config/eww/scripts/hypr/workspace-list-listener @@ -1,21 +1,22 @@ #!/bin/sh -# REF: https://github.com/Mango0x45/dotfiles/blob/c3e4bf8/.config/eww/scripts/workspace-list-listener +# REF: https://github.com/Mango0x45/dotfiles/blob/d620266/.config/eww/scripts/workspace-list-listener readonly IPC="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" -hyprctl -j workspaces | jq -cr ' - [.[].id] - | group_by(. / 10 | floor) - | [.[] | map(. % 10)] -' +ws="`hyprctl -j workspaces | jq -r 'sort_by(.id) | .[] | .name'`" +jo -a $ws socat -u UNIX-CONNECT:"$IPC" - \ | stdbuf -oL grep -E '^(create|destroy)workspace>>' \ - | while read -r _ + | while IFS='>>' read -r e _ n do - hyprctl -j workspaces | jq -cr ' - [.[].id] - | group_by(. / 10 | floor) - | [.[] | map(. % 10) | sort_by(.)] - ' + 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