This commit is contained in:
jay
2026-03-22 20:46:20 +08:00
parent a4faab3db1
commit 35abfa07bc
17 changed files with 603 additions and 216 deletions
@@ -0,0 +1,18 @@
#!/bin/bash
# 獲取目前亮度百分比
get_brightness() {
brightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}'
}
case $1 in
get)
get_brightness
;;
icon)
BR=$(get_brightness)
if [ "$BR" -gt 66 ]; then echo "☀️";
elif [ "$BR" -gt 33 ]; then echo "🌤️";
else echo "🔅"; fi
;;
esac
@@ -0,0 +1,13 @@
#!/bin/bash
# 需安裝 jq
get_workspaces() {
swaymsg -t get_workspaces | jq -c 'sort_by(.num)'
}
# 初始輸出
get_workspaces
# 監聽事件並更新
swaymsg -t subscribe '["workspace"]' -m | while read -r line; do
get_workspaces
done
@@ -0,0 +1,15 @@
#!/bin/bash
# 定義 PID 檔案路徑
PID_FILE="/tmp/eww-inhibit.pid"
if [ -f "$PID_FILE" ]; then
# 讀取 PID 並殺掉程序
PID=$(cat "$PID_FILE")
kill "$PID" 2>/dev/null
rm "$PID_FILE"
else
# 啟動並記錄 PID
systemd-inhibit --what=idle --mode=block sleep infinity &
echo $! > "$PID_FILE"
fi
@@ -0,0 +1,24 @@
#!/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
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# 獲取預設輸出裝置的音量資訊 (輸出範例: Volume: 0.50 [MUTED])
GET_VOL=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)
# 提取數值並轉換為百分比 (0-100)
# 使用 printf %.0f 將小數四捨五入為整數
VOL=$(echo "$GET_VOL" | awk '{print $2 * 100}' | xargs printf "%.0f")
if [ "$1" == "get" ]; then
echo "$VOL"
elif [ "$1" == "icon" ]; then
# 檢查是否含有 [MUTED] 字樣
if echo "$GET_VOL" | grep -q "\[MUTED\]"; then
echo "🔇"
else
if [ "$VOL" -gt 60 ]; then echo "🔊";
elif [ "$VOL" -gt 30 ]; then echo "🔉";
else echo "🔈"; fi
fi
fi