#!/usr/bin/env bash WIN_CLASS="nvim_notes" find_node() { for id in $(bspc query -N -n .window); do xprop -id "$id" WM_CLASS 2>/dev/null | grep -q "$WIN_CLASS" && echo "$id" && return done } NODE=$(find_node) if [ -n "$NODE" ]; then # если окно скрыто — показать, иначе скрыть HIDDEN=$(bspc query -N -n "$NODE" --names 2>/dev/null | grep -q hidden && echo yes || echo no) # надёжно: проверим фокус FOC=$(bspc query -N -n focused.window 2>/dev/null) if [ "$NODE" = "$FOC" ]; then bspc node "$NODE" -g hidden=on exit 0 fi # toggle hidden state # попробуем прочитать флаг hidden через query -T (если доступно) if bspc query -T -n "$NODE" 2>/dev/null | grep -q '"hidden": true'; then bspc node "$NODE" -g hidden=off bspc node "$NODE" -d focused bspc node "$NODE" -f else bspc node "$NODE" -g hidden=on fi exit 0 fi # если не найден — запустить ~/.config/bspwm/scripts/nvim_notes.sh &