get app icons for each workspace
This commit is contained in:
33
eww/scripts/get-active-window.sh
Executable file
33
eww/scripts/get-active-window.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
OUTPUT="${1:-DP-2}"
|
||||
|
||||
get_socket() {
|
||||
local runtime="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
|
||||
local sig
|
||||
sig=$(ls "$runtime/hypr/" 2>/dev/null | head -n1)
|
||||
echo "$runtime/hypr/$sig/.socket2.sock"
|
||||
}
|
||||
|
||||
emit() {
|
||||
local monitor_ws title
|
||||
|
||||
monitor_ws=$(hyprctl monitors -j 2>/dev/null \
|
||||
| jq -r ".[] | select(.name==\"$OUTPUT\") | .activeWorkspace.id")
|
||||
|
||||
title=$(hyprctl clients -j 2>/dev/null \
|
||||
| jq -r ".[] | select(.workspace.id==$monitor_ws and .focusHistoryID==0) | .title" \
|
||||
| head -n1)
|
||||
|
||||
printf '%s\n' "${title:-}"
|
||||
}
|
||||
|
||||
emit
|
||||
|
||||
SOCKET=$(get_socket)
|
||||
|
||||
socat -u "UNIX-CONNECT:$SOCKET" - \
|
||||
| stdbuf -oL grep -E "^(activewindow|focusedmon|workspace|closewindow)>" \
|
||||
| while IFS= read -r _; do
|
||||
sleep 0.05
|
||||
emit
|
||||
done
|
||||
Reference in New Issue
Block a user