GoForum🌐 V2EX

niri 怎么连自动切换显示器都这么难啊

richiewu · 2026-05-20 21:23 · 0 次点赞 · 0 条回复

折腾几个小时了,能自动熄屏内置,拔了外置的线,内置不能点亮,这种功能都没有原生的,怎么玩

#!/bin/bash

将所有输出(包括报错)追加写入到日志文件中

exec >> ~/screen-switch.log 2>&1 echo “=== $(date) 脚本被触发 ===”

第一次防抖:等待系统初步刷新显示器连接状态

sleep 2

提取纯显示器代号

connected_outputs=\((wlr-randr | grep "DP-3 ") echo "当前识别到的连接显示器: \)connected_outputs”

检查外接显示器 DP-3

if echo “$connected_outputs” | grep -q “DP-3”; then

echo "判断结果:检测到外接显示器 DP-3 ,准备切换..."
# 第二次防抖:避开热插拔瞬间的底层冲突
sleep 1
wlr-randr --output eDP-1 --off
wlr-randr --output DP-3 --on

else

echo "判断结果:未检测到 DP-3 ,准备恢复内置屏 eDP-1..."
# 第二次防抖
sleep 1
# 💡 核心改动:先强制关闭内置屏,再重新打开(重置状态)
wlr-randr --output eDP-1 --off
sleep 0.5
wlr-randr --output eDP-1 --on
# 确保外置屏彻底关闭
wlr-randr --output DP-3 --off

fi echo “命令执行完毕。”

// 监听显示器变化事件,并自动执行切换脚本 spawn-at-startup “sh” “-c” “niri msg –json event-stream | while read -r event; do echo \”$event\” | grep -q ‘OutputsChanged’ && ~/auto-switch-screen.sh; done”

// 2. 新增:开机/登录后延迟 5 秒自动执行一次脚本(负责初始状态的切换) spawn-at-startup “sh” “-c” “sleep 5 && ~/auto-switch-screen.sh”

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: richiewu
发布: 2026-05-20
点赞: 0
回复: 0