Files
dotfilesv2/hypr/scripts/restore_window.sh
2026-03-28 16:48:16 +00:00

30 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# 1. Сразу получаем ID текущего активного воркспейса (куда будем возвращать окно)
current_ws=$(hyprctl activeworkspace -j | jq -r '.id')
# 2. Получаем список скрытых окон
# Формат: "ADDRESS | Title"
windows=$(hyprctl clients -j | jq -r '.[] | select(.workspace.name == "special:minimized") | "\(.address) | \(.title)"')
if [ -z "$windows" ]; then
notify-send "Скрытые окна" "Список пуст"
exit 0
fi
# 3. Выбираем через Fuzzel
selected=$(echo "$windows" | fuzzel --dmenu --prompt "Вернуть > " --width 60)
# 4. Если выбор сделан
if [ -n "$selected" ]; then
# Берем адрес (первое слово до пробела)
addr=$(echo "$selected" | awk '{print $1}')
# ДЛЯ ОТЛАДКИ (Если не сработает, раскомментируйте строку ниже, чтобы увидеть, какой адрес и ID получил скрипт)
# notify-send "Debug" "Window: $addr \nTarget Workspace: $current_ws"
# 5. Перемещаем окно на запомненный активный воркспейс
# Используем 'address:' явно, чтобы Hyprland точно понял, что это адрес
hyprctl dispatch movetoworkspace "$current_ws,address:$addr"
fi