mirror of
https://github.com/Dichgrem/DCGOS.git
synced 2025-12-16 11:12:00 -05:00
update:flake Version 406 -> 407: bat: 0.26.0 → 0.26.1, +17.6 KiB brave: 1.84.141 → 1.85.111, +2964.5 KiB hyprlang: 0.6.6 → 0.6.7 ipxe: 1.21.1-unstable-2025-11-26 → 1.21.1-unstable-2025-12-03 kazumi: 1.9.0 → 1.9.1, +218.1 KiB libbytesize: 2.11 → 2.12 libvlc: 3.0.21 → 3.0.22, +1912.7 KiB mesa: 25.3.0 → 25.3.1, +52.0 KiB nixos-system-dos: 26.05.20251202.418468a → 26.05.20251205.f61125a scx_full: 1.0.18 → 1.0.19, +27223.4 KiB source: +548.8 KiB xwayland-satellite: 0.7 → 0.8, +891.4 KiB zed-editor: 0.214.7 → 0.215.3, +16693.9 KiB
55 lines
1.3 KiB
Bash
Executable File
Vendored
55 lines
1.3 KiB
Bash
Executable File
Vendored
#!/usr/bin/env bash
|
|
# ~/.config/niri/switch_monitors.sh
|
|
# 切换 Niri 下显示模式:内屏 → 外屏 → 扩展
|
|
|
|
STATE_FILE="/tmp/niri_monitor_mode"
|
|
INTERNAL="eDP-1"
|
|
EXTERNAL="DP-1"
|
|
|
|
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)
|
|
wlr-randr --output "$EXTERNAL" --off
|
|
wlr-randr --output "$INTERNAL" --on --mode 2560x1600 --pos 0,0 --scale 1.25
|
|
notify-send "显示模式" "仅内屏"
|
|
;;
|
|
external_only)
|
|
wlr-randr --output "$EXTERNAL" --on --mode 2560x1440@144 --pos 0,0 --scale 1.25
|
|
wlr-randr --output "$INTERNAL" --off
|
|
notify-send "显示模式" "仅外屏"
|
|
;;
|
|
extended)
|
|
wlr-randr --output "$INTERNAL" --on
|
|
notify-send "显示模式" "扩展模式"
|
|
;;
|
|
esac
|
|
|
|
echo "$NEXT_MODE" > "$STATE_FILE"
|
|
|
|
# 刷新 Niri 布局(防止残影)
|
|
sleep 0.5
|
|
niri msg reload-layout >/dev/null 2>&1 || true
|
|
pkill swayosd-server
|
|
(swayosd-server &>/dev/null &)
|
|
pkill wl-gammarelay-rs
|
|
(wl-gammarelay-rs &>/dev/null &)
|