笔记本自动切换配置档案:mons -a -x脚本化工作流的实战案例 笔记本自动切换配置档案mons -a -x脚本化工作流的实战案例【免费下载链接】monsPOSIX Shell script to quickly manage monitors on X项目地址: https://gitcode.com/gh_mirrors/mo/mons每次插拔外接显示器都要手动敲 xrandr桌面布局还总乱成一团mons是一款基于 xrandr 的极简显示器管理 Shell 脚本配合-a -x守护模式就能把显示器切换做成一套自动运行的脚本化工作流插上屏幕自动加载配置拔掉屏幕自动恢复全程无需干预。本文用一个真实笔记本场景带你 10 分钟搭建属于自己的自动切换配置档案。为什么笔记本需要自动切换配置档案先看几个真实的日常痛点 在家外接大屏摆在笔记本上方想要上扩展布局 在办公室外接显示器在右侧想要右扩展布局 开会投影仪拔掉后希望笔记本屏幕立刻恢复显示没有自动化时每次插拔都要敲一堆 xrandr 命令还要记准 LVDS-1、DP-1 这类输出名称稍有不慎桌面就乱。而 mons 的核心价值正是把显示器切换封装成一条命令再用-a -x把它升级为全自动的脚本化工作流。mons 是什么一个仅依赖 xrandr 的显示器管理脚本✅ 纯 POSIX Shell 实现主程序只有mons.sh一个文件✅ 唯一依赖 xorg-xrandr几乎任何 Linux 发行版都能跑✅ 内置笔记本模式、投影模式、复制、镜像、扩展等双屏操作✅ 支持三屏以上场景的指定选择-O、-S常用模式速查表命令效果mons列出已连接显示器及 idmons -o仅笔记本主屏mons -s仅外接屏mons -e right向右扩展mons -e top向上扩展mons -m/-d镜像 / 复制mons -n right一条命令循环所有双屏模式完整用法说明在项目README.md中都有记录。最快安装方法Arch 用户可直接pacaur -S monsFreeBSD 用户可pkg install mons。通用手动安装也很简单git clone https://gitcode.com/gh_mirrors/mo/mons cd mons sudo make install安装后先运行mons会列出所有已连接显示器及其 id 和状态方便你确认环境。理解核心原理mons -a 守护模式如何感知显示器插拔mons -a进入守护模式后每 2 秒轮询一次/sys/class/drm/*/status统计已连接的显示器数量。一旦数量发生变化若带-x 脚本立即执行该脚本并通过环境变量MONS_NUMBER告诉它当前有几台显示器若不带-x当只剩 1 台显示器时自动执行xrandr --auto恢复显示这正是配置档案的触发器。相关逻辑位于mons.sh的守护模式部分约第 268-285 行代码非常简短值得一看。实战一编写第一份自动切换配置档案新建~/.config/mons/profile.sh内容如下#!/bin/sh case ${MONS_NUMBER} in 1) mons -o # 只剩内置屏恢复单屏 ;; 2) mons -e right # 外接屏已插上向右扩展 ;; esac赋予执行权限并启动守护进程chmod x ~/.config/mons/profile.sh nohup mons -a -x ~/.config/mons/profile.sh /dev/null 21 从这一刻起拔掉外接屏自动切回内置屏插上外接屏自动向右扩展——配置档案已经接管了你的桌面。️实战二家庭与办公室双场景配置档案自动切换把场景再升级一层。家庭与办公室的外接屏位置不同一个要mons -e top向上扩展一个要mons -e right向右扩展。而-x脚本按显示器数量触发两个场景的MONS_NUMBER都是 2怎么区分最直接的办法是准备两套脚本home-profile.sh与work-profile.sh到了哪个环境就启动哪个守护进程互不干扰。想更省事的话也可以在脚本里用 xrandr 查询具体的输出名称把两个场景写进同一个配置档案按显示器型号自动分流。项目 README 中也给出了home-profile.sh、work-profile.sh的示例思路可以直接借鉴。进阶技巧让配置档案更聪明️联动壁纸脚本里调用 feh按显示器数量为每块屏设置不同壁纸修正 DPI 与主屏mons -e right --dpi 96 --primary DP-1高分辨率外接屏不再发虚开机自启把 nohup 启动命令写进.xprofile或会话自启项⌨️快捷键循环mons -n right一条命令轮流切换单屏/扩展/镜像演示时特别好用常见问题排查❌xrandr: command not found→ 先安装 xorg-xrandr❌-x: option can only be used in conjunction with -a→-x必须与-a搭配使用❌ 脚本没有生效 → 检查脚本是否有可执行权限并打印MONS_NUMBER确认取值❌DISPLAY: no variable set→ 确保在图形会话中运行而不是纯终端 SSH结语mons 用极小的依赖把显示器管理变成了一套可编程的脚本化工作流。掌握mons -a -x加MONS_NUMBER这套组合拳后笔记本的插拔切换再也不用手动操心。现在就动手写一份属于你自己的自动切换配置档案吧⚡【免费下载链接】monsPOSIX Shell script to quickly manage monitors on X项目地址: https://gitcode.com/gh_mirrors/mo/mons创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考