爱意满满的作品展示区。
stevenfzzhen

写了个小工具:手机一键关掉 Mac 的显示器, Mac 不睡、远程和后台任务照跑

  •  
  •   stevenfzzhen · 2h 50m ago · 172 views
    我的 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

    顺便分享几个踩过的坑:

    1. **不要用 displayplacer 的 `enabled:false` 去关屏。** 我遇到过一次 KVM 重新插拔以后,被停用的屏幕直接从系统里消失了,只有重启才能找回来。
    2. **DDC 必须直连。** Mac 自带的 HDMI 口和 USB-C 转 DP 线都可以,大部分扩展坞不传 DDC 。
    3. **有的显示器待机以后不认开机命令。** 我的技嘉 G24F 接 HDMI 时就是这样,要发一次「切换输入源」才会醒。
    4. **Mac mini M4 的显示引擎有限。** 主屏(飞利浦 27M2N3800F )开了 4K 160Hz 超频以后,一台屏就占了两个引擎,第三台屏怎么插都不亮。把超频关掉就好了。

    目前测过的设备:Mac mini M4 ,飞利浦 27M2N3800F 走 USB-C 转 DP ,技嘉 G24F 走 HDMI 。各家显示器对 DDC 的支持差别很大,欢迎反馈你的型号能不能用,用不了欢迎反馈,不知道有没有同样场景需求的。

    ---
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4023 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:08 · PVG 15:08 · LAX 23:08 · JFK 02:08
    ♥ Do have faith in what you're doing.