30 lines
1.4 KiB
Bash
Executable File
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
|