相关文章推荐
风流的板栗  ·  香港閱讀城·  11 月前    · 
考研的台灯  ·  OH 3.3.0 Frontail not ...·  1 年前    · 
知识渊博的斑马  ·  Excel ...·  2 年前    · 
自信的胡萝卜  ·  Nosql-neo4j-Cypher 语句 ...·  2 年前    · 

Apple Silicon Mac / Windows 命令行切换外置显示器输入源

date
Dec 30, 2022
slug
switching-input-sources-between-windows-apple-silicon-m1-m2-max
status
Published
summary
当你需要频繁在两台电脑间切换显示器输入源的时候,因为各种问题会希望通过命令行直接切换。检索发现网上很多教程并不兼容 运行 Apple Silicon 架构的 macOS Ventura 系统,故作此文以分享。
tags
Engineering
Productivity
type
Post

问题

当你需要频繁在两台电脑间切换显示器输入源的时候,遇到如下问题:
  • 本地远程桌面/Parsec 串流仍然具有不小延迟,且浪费性能
  • 硬件切换要按好几次,略显麻烦,特别是需要改变外设的时候
那么,可以通过命令行直接切换吗?
检索发现网上很多教程并不兼容 运行 Apple Silicon 架构的 macOS Ventura 系统,故 根据 GitHub Issues 的技术讨论,作此文以分享。

实现效果

  • Windows → Mac ControlMyMonitor.exe /SetValue Primary 60 15
  • Mac → Windows m1ddc display {device_id} set input 17

解决方案

具体步骤

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

可能存在的问题

报警 “工作频率过高”?

软件切换 HDMI 模式接入 USB-C 源,因为 USB-C 支持的协议更强大,可能遇到“工作频率过高”的报警,影响使用。
针对该问题,在显示器自带设置中手动选择 USB-C 源,然后不管软件切换什么输入源,都是 OK 的~

音频会怎样切换?

根据测试,切换至 USB-C/HDMI 信号, 均会自动切换至对应信号的音频通道,无须担心。
好像 HDMI in USB-C 输出不了声音,我有空看看能否解决

Reference


Reynard © 2021 - 2023

Powered by Vercel