#!/bin/sh into_block='{ "full_text": (.name[0:50] // ""), "short_text": ([.app_id, .window_title, .name] | map(select(. != null and . != "")) | (first // "") | .[0:25]), }' swaymsg -t get_tree | jq -c '.. | select(.focused? == true and .type == "con") | '"$into_block" swaymsg --monitor -t subscribe '["window", "workspace"]' | jq -c --unbuffered ' select((.change | test("close|focus|title")) and (.current.type == "workspace" or .container.focused)) | if .current.type == "workspace" or .change == "close" then { "full_text": "" } else .container | '"$into_block"' end '