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

只要不是远古显示器一般都支持
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" -ForceMacOS与Windows在on_usb_connect和on_usb_disconnect配置相反即可 端口根据自己显示器后背插的线来自行决定
安装
MacOS安装:
brew install haimgel/tools/display_switch
brew services start haimgel/tools/display_switchWindows安装:
# 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/default/57.html
本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
允许自由转载和修改,但请务必标明文章来源且不得运用于商业目的并以相同方式分享。