25 lines
732 B
Bash
Executable File
25 lines
732 B
Bash
Executable File
#!/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
|