mirror of
https://github.com/Dichgrem/DCGOS.git
synced 2025-12-17 11:41:59 -05:00
53 lines
1.2 KiB
Bash
Vendored
53 lines
1.2 KiB
Bash
Vendored
#!/bin/bash
|
|
|
|
STATE_FILE="/tmp/hypr_monitor_mode"
|
|
INTERNAL="eDP-1"
|
|
EXTERNAL="DP-1"
|
|
|
|
# 预设模式参数
|
|
INT_RES="2560x1600@165,0x0,1.25"
|
|
EXT_RES="2560x1440@144,2560x0,1.25"
|
|
MIRROR_RES="2560x1440@144,0x0,1.25"
|
|
|
|
# 模式顺序:内屏 → 外屏 → 扩展
|
|
MODES=("internal_only" "external_only" "extended")
|
|
|
|
# 读取上次模式
|
|
if [[ -f "$STATE_FILE" ]]; then
|
|
LAST_MODE=$(cat "$STATE_FILE")
|
|
else
|
|
LAST_MODE="extended"
|
|
fi
|
|
|
|
# 找出下一个模式
|
|
NEXT_INDEX=0
|
|
for i in "${!MODES[@]}"; do
|
|
if [[ "${MODES[$i]}" == "$LAST_MODE" ]]; then
|
|
NEXT_INDEX=$(((i + 1) % ${#MODES[@]}))
|
|
break
|
|
fi
|
|
done
|
|
NEXT_MODE="${MODES[$NEXT_INDEX]}"
|
|
|
|
# 应用新模式
|
|
case "$NEXT_MODE" in
|
|
internal_only)
|
|
hyprctl keyword monitor "$EXTERNAL,disable"
|
|
hyprctl keyword monitor "$INTERNAL,$INT_RES"
|
|
notify-send "显示模式" "仅内屏"
|
|
;;
|
|
external_only)
|
|
hyprctl keyword monitor "$INTERNAL,disable"
|
|
hyprctl keyword monitor "$EXTERNAL,$EXT_RES"
|
|
notify-send "显示模式" "仅外屏"
|
|
;;
|
|
extended)
|
|
hyprctl keyword monitor "$INTERNAL,$INT_RES"
|
|
hyprctl keyword monitor "$EXTERNAL,$EXT_RES"
|
|
notify-send "显示模式" "扩展模式"
|
|
;;
|
|
esac
|
|
|
|
# 保存新模式
|
|
echo "$NEXT_MODE" >"$STATE_FILE"
|