25 lines
698 B
Bash
25 lines
698 B
Bash
#!/bin/bash
|
|
|
|
# 目標視窗名稱
|
|
TARGET=$1
|
|
|
|
# 獲取目前所有已開啟的視窗名稱 (提取冒號前文字並去空格)
|
|
OPENED_WINDOWS=$(eww active-windows | cut -d: -f1 | tr -d ' ')
|
|
|
|
# 所有受管理的彈出視窗清單
|
|
MANAGED_WINDOWS=("calendar" "volume_popup" "brightness_popup")
|
|
|
|
# 遍歷目前已開啟的視窗
|
|
for win in $OPENED_WINDOWS; do
|
|
# 檢查該視窗是否在受管名單內,且不是目標視窗
|
|
# 我們不關閉 "bar" 視窗
|
|
if [[ " ${MANAGED_WINDOWS[@]} " =~ " ${win} " ]] && [ "$win" != "$TARGET" ]; then
|
|
eww close "$win"
|
|
fi
|
|
done
|
|
|
|
# 如果有目標視窗,則切換其顯示狀態
|
|
if [ -n "$TARGET" ]; then
|
|
eww open --toggle "$TARGET"
|
|
fi
|