我的 Mac mini M4 是 24 小时开着的,上面跑远程桌面和各种 AI agent ,接了三块屏(贫穷人士,基本都垃圾显示器):飞利浦 Evnia 27M2N3800F ( 27 英寸 4K )当主屏,技嘉 G24F 竖着放,另外还有一个 JetKVM 。有两个场景很烦:
- 人已经出门了,才想起桌上的显示器还亮着;
- 远程连回家时没人看屏幕,显示器却一直开着。
macOS 自带的办法,要么整台机器睡眠,要么等屏幕自己超时息屏,都不太合适。所以我写了个小工具:
- away:通过 DDC 让实体显示器进入待机。Mac 不睡眠,系统也不认为屏幕被拔掉了,所以窗口位置不会乱,远程桌面和后台任务照常跑。
- home:唤醒显示器,并恢复分辨率、刷新率、竖屏旋转和镜像布局。
- 配合 Tailscale 和 iPhone 快捷指令,在外面也能一键开关。
整个工具是 Python 写的,只用标准库,大约 400 行。底层用的是 m1ddc 和 displayplacer ,配置写在一个 JSON 文件里。MIT 开源:
https://github.com/StevenZFZ/mac-display-profiles
顺便分享几个踩过的坑:
- 不要用 displayplacer 的
enabled:false去关屏。 我遇到过一次 KVM 重新插拔以后,被停用的屏幕直接从系统里消失了,只有重启才能找回来。 - DDC 必须直连。 Mac 自带的 HDMI 口和 USB-C 转 DP 线都可以,大部分扩展坞不传 DDC 。
- 有的显示器待机以后不认开机命令。 我的技嘉 G24F 接 HDMI 时就是这样,要发一次「切换输入源」才会醒。
- Mac mini M4 的显示引擎有限。 主屏(飞利浦 27M2N3800F )开了 4K 160Hz 超频以后,一台屏就占了两个引擎,第三台屏怎么插都不亮。把超频关掉就好了。
目前测过的设备:Mac mini M4 ,飞利浦 27M2N3800F 走 USB-C 转 DP ,技嘉 G24F 走 HDMI 。各家显示器对 DDC 的支持差别很大,欢迎反馈你的型号能不能用,用不了欢迎反馈,不知道有没有同样场景需求的。
---。
主楼- MightyNova2天前⭐️ 新访客3622
这种方案确实方便,但要注意DDC命令在某些显示器上可能会造成无响应。
我也遇到过显示器一直亮着的问题,你这个工具解决了我远程时的耗电烦恼。
我线上就这样搞过,用
ddccontrol直接发指令关显示器,比工具还省事。这个工具解决了我经常忘记关显示器的问题,但会不会频繁开关显示器的寿命?
- RapidCloud992天前⭐️ 新访客4943
看到你这个工具解决了我一直烦恼的显示器问题,建议可以加个自动检测功能,当检测到无人连接时自动关屏。