我的辦公顯示器連接了兩台電腦,一台是畫圖用的 Windows 台式機(連接到顯示器的 DP 口),一台是日常愛「玩」的 MacBook Air M1(連接到顯示器的 Type-C 口),當領導過來的時候我希望能快速切換到 DP 口,但是顯示器自帶的 OSD 實體按鍵(On-Screen Display)不是很好用,需要按 4 到 5 下才能切換完成,顯然無法適應日常摸魚的需求。
經過一番研究,通過 DDC/CI 協議,最終實現了鍵盤一鍵切換的效果:

這個方案需要你的顯示器兼容 DDC/CI 協議,並需在 Mac 和 Windows 上分別安裝對應的 DDC 控制軟體。幸運的是,這些軟體都可以免費下載。
▍顯示器的統一「語言」DDC
DDC 是數據顯示通道(Digital Display Channel),是一條主機和顯示器之間的資訊通道,通過它可以將顯示器的物理數據直接傳輸給主機。
DDC/CI 協議是 Display Data Channel Command Interface 的簡稱,基於 DDC/CI 協議,我們可以通過鼠標和人性化的軟體界面來完成顯示器的各項設置和色彩調節,而不必使用傳統的 OSD 菜單。
什麼是 OSD
OSD(On-Screen Display)即螢幕菜單式調節方式。一般是按 Menu 鍵後螢幕彈出的顯示器各項調節項目資訊的矩形菜單,可通過該菜單對顯示器各項工作指標包括色彩、模式、幾何形狀等進行調整,從而達到最佳的使用狀態。

我的雜牌 4K 顯示器的 OSD 菜單
有些顯示器(比如 Dell)可以設置快捷操作,把兩個物理按鍵設置為輸入源切換,這樣可以快一點點:

Dell顯示器設置好快捷切換輸入源後的 OSD 菜單
而我的雜牌顯示器需要按 4 到 5 次才能切換成功:

▍解決方案
Windows 端找到顯示器對應接口
首先需要知道你的顯示器是否支持 DDC。在安裝 ControlMyMonitor 這個軟體後,打開後如果能顯示下圖的界面,那就意味著你的顯示器是支持 DDC 控制的;如果不能,那麼這篇文章就幫不了你了。

Control My Monitor 軟體界面
接著,找到 VCP Code Name 這一列找到 Input Select, Input Select 對應的 Current Value 就是你的顯示器 DisplayPort 口的通道值了。

可以看到我的 DP 口對應的通道值是 8
用命令行切換到其他顯示器
儘管有些教學告訴你可以通過雙擊 Current Value 來直接輸入其他通道值來改變輸入源,但我個人的測試發現這樣完全無效。所以,我建議還是通過命令行來進行修改。
"MyMonitor.exe" /SetValue Primary 60 7*

這是我的測試記錄,從 0 一直嘗試到 7 才切換到顯示器的 C口
對 PowerShell 不太熟悉的朋友可以先把 Control My Monitor 軟體的文件夾放到 D 盤根目錄,接著在開始菜單的 Windows 圖標上點右鍵,選擇 Windows PowerShell,然後把 .exe 文件拖入窗口,接著輸入上面的命令即可:

把這個文件拖入 PowerShell 窗口
然後在60
後面就可以開始嘗試輸入從0
到最大值(最大值也可以在Control My Monitor 軟體里看到)之間的數字了,我是從0
一直嘗試到7
才找到我的顯示器 C 口對應的通道值是7
。
當然,每次去命令行這樣輸入代碼也挺麻煩的,快速切換的方法無非是兩種,一是將代碼保存為 bat 文件,雙擊即可運行(方便在鍵盤不是連接的 Windows 電腦的情況使用);二是通過快捷鍵軟體來執行:
這裡以 WinHotKey 為例,在安裝完軟體後新建一個快捷鍵(我設置的是 Win Shift A),快捷鍵的作用是打開 Control My Monitor 軟體,在高級選項里加入啟動參數(其中7
需自行更改):
/SetValue Primary 60 7

選定新建的快捷鍵,點擊 Edit Hotkey 可以設置鍵位組合和高級選項

自行更改
有一點需要注意的是,只有 Mac 在喚醒的狀態下,才可以一鍵切過去。如果 Mac 進入睡眠狀態了,則會先黑屏一下然後又回到 Windows。
Windows 筆記本值得注意的細節
本文介紹的在 Windows 和 Mac 電腦之間的切換,如果你是兩台 Windows 電腦共用一個顯示器,台式機的話方法一樣;但如果是台式機和筆記本之間切換,則稍微複雜一些,因為筆記本自己有內建的螢幕,那麼在Control My Monitor 軟體里你需要看看顯示器是 Display 多少:


按這裡的值修改下面的代碼
如果是 Display 2,那麼代碼需要修改為:
"ControlMyMonitor.exe" /SetValue ".DISPLAY2Monitor2*"60 8*
兩處 * 的位置,也就是DISPLAY2
和8
需根據實際情況修改。

注意Monitor0"和60之間有個空格
Mac 端
Mac 端軟體生態相對豐富,所以也沒切換顯示源自然也沒 Windows 端那麼複雜。這裡我推薦 BetterDisplay 2 ,它對於很多人最常用的用途還是給 2K 顯示器開啟 HiDPI 的支持,當然這款軟體也支持調節顯示器亮度等等功能,這裡受限於篇幅就不做展開了。
安裝好後,點擊菜單欄中 BetterDisplay 的圖標,在彈出的選單里點擊 DDC 輸入源。這時候會看到很多顯示接口名稱,如 HDMI X、USB-C、DP 等。可能有用也可能沒有用,需要自己測試。
從上文我們已經知道,當前 C 口對應的是7
,一般情況下,DDC 輸入源可能與相鄰的數字有關,所以可以嘗試6
或8
。


這裡的值就是接口對應的通道值了,描述里寫的什麽其實不重要
BetterDisplay默認帶的 DDC 輸入源菜單選項非常多,多達 4 頁,你可以先一個個點擊,哪個能切換到 Windows 去就記下來,然後在設置里找到這個值,把對應的描述改為 Windows,圖標選成對應的接口形狀(非完美主義者可以跳過),最後打到這樣的效果:

這倆都在第一頁,其他全部隱藏
然後當我們點擊 MenuBar 里的 BetterDisplay 圖標的時候,就只有兩個選項了:

其實只需要 Win10 這一個就夠,因為無法通過BetterDisplay從 Win 切回 Mac
點擊就可以切換回 Windows 了。
顯示器搞定了,鼠標鍵盤就看大家各顯神通了。進過幾天的使用,我覺得雖然看起來只是省了幾下按顯示器物理按鍵的功夫,但是時間還是能節約下來不少的,大大增加在兩個系統間切換的意願。
番外
最後還有個小心得,就是當 Mac 連接了顯示器C 口這種一線通的線纜後,有時候其實只想充電不想輸出到外接顯示器(實際場景是當我要畫圖了,顯示器是顯示Windows 的,但是之前外接 Mac 的時候有些窗口是在顯示器上的,在內建顯示屏里看不到也沒法直接都改回來),之前都只能在「設置-顯示器」里,從「擴展顯示器」改為「內建顯示器的鏡像」,比較麻煩;
現在有了 BetterDisplay 2,就可以直接在這裡按一下開關:

彈出的提示里選擇「再也不提示」
就可以關閉輸出到外接顯示器了,之前顯示器上的窗口都會回到內建顯示屏上。