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