PS: 图片我没有图床,来博客看吧
问题
当你需要频繁在两台电脑间切换显示器输入源的时候,遇到如下问题:
- 本地远程桌面 /Parsec 串流仍然具有不小延迟,且浪费性能
- 硬件切换要按好几次,略显麻烦,特别是需要改变外设的时候
❓ 那么,可以通过命令行直接切换吗?
检索发现网上很多教程并不兼容 运行 Apple Silicon 架构的 macOS Ventura 系统,故 根据 GitHub Issues 的技术讨论,作此文以分享。
解决方案
- Windows → Mac: Control-my-monitor 用于查看各输入源端口&命令行切换
-
Mac → Windows:
-
https://github.com/waydabber/m1ddc 对于 Apple Silicon 系列 & MacOS Ventura
💡 因为新系统显示器配置文件有所变动 & M1 架构有变动
-
https://github.com/kfix/ddcctl 对于 Intel 系列 mac ;
-
-
( bonus) Linux (Ubuntu, etc.) → Windows / Mac:
- https://github.com/ddccontrol/ddccontrol/ 对于所有的无特殊定制 /处理器的 Linux 系统
实现效果
- Windows → Mac
ControlMyMonitor.exe /SetValue Primary 60 15 - Mac → Windows
m1ddc display {device_id} set input 17
具体步骤
-
Windows 下载 Control-my-monitor
-
Windows 查看输入源端口

-
Windows 尝试切换:
- 进入软件所在文件夹;
- 在该文件夹打开命令行;
- 输入
ControlMyMonitor.exe /SetValue Primary 60 15并回车;
-
Mac 安装 m1ddc,需要
- 提前准备好苹果的编译
clang工具 - 自行编译,参照这里
- 提前准备好苹果的编译
-
编译好后尝试切换
- 查看设备 id ,通过
./m1ddc display list可以看到类似1 - LG HDR 4K (CCCCCCCCC-0000-0000-CCCC-010CCCCCCCCC)的输出; - 根据设备 id 和输入源 id ,切换
./m1ddc display {device_id} set input 17
- 查看设备 id ,通过
-
根据自己的需要弄成批处理脚本 /快捷键 /Raycast 等方式即可,如下:

可能存在的问题
报警 “工作频率过高”?
软件切换 HDMI 模式接入 USB-C 源,因为 USB-C 支持的协议更强大,可能遇到“工作频率过高”的报警,影响使用。
针对该问题,在显示器自带设置中手动选择 USB-C 源,然后不管软件切换什么输入源,都是 OK 的~
音频会怎样切换?
根据测试,切换至 USB-C/HDMI 信号,均会自动切换至对应信号的音频通道,无须担心。