25 lines
732 B
Plaintext
25 lines
732 B
Plaintext
|
#!/usr/bin/env zsh
|
||
|
|
||
|
function get-titles-for-monitors {
|
||
|
jq -c --null-input \
|
||
|
--argjson 'monitors' "$(hyprctl -j monitors)" \
|
||
|
--argjson 'workspaces' "$(hyprctl -j workspaces)" \
|
||
|
'[$monitors.[].activeWorkspace.id as $active |
|
||
|
$workspaces.[] | select(.id | IN($active))] |
|
||
|
map({(.monitor): (if .lastwindowtitle == "" then "hyprland" else .lastwindowtitle end)}) | add'
|
||
|
}
|
||
|
|
||
|
function handle {
|
||
|
case "${1}" in
|
||
|
activewindow\>\>*|openwindow*|closewindow*)
|
||
|
get-titles-for-monitors
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
get-titles-for-monitors
|
||
|
socat -U - "unix-connect:/tmp/hypr/${HYPRLAND_INSTANCE_SIGNATURE}/.socket2.sock" |
|
||
|
while read line; do
|
||
|
handle "${line}"
|
||
|
done
|