Files
dots/config/bspwm/scripts/toggle_note_kitty.sh
2025-11-24 19:46:30 +07:00

35 lines
1.0 KiB
Bash
Executable File

#!/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 &