因为经常切换系统的同时切换屏幕 还要伸手按屏幕背键很麻烦 所以尝试找一些解决方案
由于是二进二出KVM方案 市面上KVM切换器要嘛很贵 要嘛多多少少存在问题:
- 符合有type-c(或usb-a)、hdmi、dp口的基本300rmb往上 (当然还有协议)
- 显示不支持hdmi、dp口混用,两台显示器需使用同一类型接口
- 显示不支持无缝切换 即无黑屏
- 屏幕布局失忆
- 需额外电源和没有延长切换按钮
基于以上犯了选择强迫症 准备放弃的时候 在reddit上发现了display-switch
其通用性很强
前置
验证显示器是否支持DDC/CI
Windows可以下载Twinkle-Tray查看
MacOS可以使用 BetterDisplay 查看

只要不是远古显示器一般都支持
USB切换器
购置二进四出USB切换器 本文使用绿联USB3.0二进四出切换器 海鲜市场不到100rmb 按自己需求购置即可
二进(显示器)四出(键鼠)难道不是四进二出嘛(恼
配置前需要获取USB切换器ID
MacOS
左上角mac图标 -> 关于本机 -> 更多信息 -> 系统报告

或
# system_profiler SPUSBDataType
USB:
USB 3.1 Bus:
Host Controller Driver: AppleT6000USBXHCI
USB3.1 Hub:
...
Extra Operating Current (mA): 0
USB3.1 Hub:
Product ID: 0x0626
Vendor ID: 0x05e3 (Genesys Logic, Inc.)
...
Windows
设备管理器 -> 通用串行总线控制器

USB ID为 05e3:0626
准备配置文件
安装前需要准备配置文件
usb_device为上述获取的USB IDmonitor_id为从显示器名称或ID中提取的子字符串on_usb_connect、on_usb_disconnect为连接和断开连接时切换的显示器端口
- 端口可设置为:
Hdmi1、Hdmi2、DisplayPort1、DisplayPort2、Dvi1、Dvi2、Vga1- USB-C端口可设置为:
DisplayPort2或0x10
MacOS配置
# display-switch.ini
usb_device = "05e3:0626"
[monitor1]
monitor_id = "u2790"
on_usb_connect = "DisplayPort1"
on_usb_disconnect = "Hdmi1"
[monitor2]
monitor_id = "phl"
on_usb_connect = "hdmi1"
on_usb_disconnect = "DisplayPort1"
cp display-switch.ini ~/Library/Preferences/display-switch.ini
Windows配置
# display-switch.ini
usb_device = "05e3:0626"
[monitor1]
monitor_id = "u2790"
on_usb_connect = "Hdmi1"
on_usb_disconnect = "DisplayPort1"
[monitor2]
monitor_id = "phl"
on_usb_connect = "DisplayPort1"
on_usb_disconnect = "Hdmi1"
# PowerShell
Copy-Item "display-switch.ini" "$env:APPDATA\display-switch\display-switch.ini" -Force
MacOS与Windows在on_usb_connect和on_usb_disconnect配置相反即可 端口根据自己显示器后背插的线来自行决定
安装
MacOS安装
brew install haimgel/tools/display_switch
brew services start haimgel/tools/display_switch
Windows安装
# PowerShell
Invoke-WebRequest -Uri "https://github.com/haimgel/display-switch/releases/download/1.4.1/display_switch-v1.4.1-windows-amd64.zip" -OutFile "display_switch-v1.4.1-windows-amd64.zip";
Expand-Archive "display_switch-v1.4.1-windows-amd64.zip" -DestinationPath "." -Force;
Copy-Item "display-switch.exe" "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" -Force
Tips
理论上还有很多玩法
- 激活键盘或鼠标设备USB连接
- 设备套娃
- 蓝牙监听
参考
版权属于:羽子
本文链接:https://reki.me/playing/usb-to-kvm.html
本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
允许自由转载和修改,但请务必标明文章来源且不得运用于商业目的并以相同方式分享。