first commit
This commit is contained in:
29
hypr/scripts/restore_window.sh
Executable file
29
hypr/scripts/restore_window.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user