MeteorV's Blog

一個不斷放縱又要求自己的生活模式

在 AI 盛行時代,有時候兩台電腦一起開發還真的比較有效率。
但想切換不同 input 的時候,就得按螢幕背面那顆搖桿才能切換,非常的不方便

此文分享我如何用 keyboard 進行切換。
(本文使用 XV322QK 進行實驗)

DDC/CI 是什麼

一個螢幕的標準功能,讓電腦「透過影像線(HDMI / DP / USB-C)反過來去命令螢幕」。
平常都是電腦把畫面送給螢幕,但 DDC/CI 讓你可以從電腦端下指令,去改螢幕的亮度、對比、甚至切換輸入源

所以螢幕如果有支援,那剩下的就是如何透過程式去送訊號到螢幕。
(意思是這篇文章能成功的前提是你的螢幕支援此功能哦 !)

先找出「輸入源」的數字

DDC/CI 裡每個功能都有一個代碼,叫 VCP code。切輸入源的是 0x60(Input Select)
但每個輸入對應的「數字」各家螢幕不一樣,可以用以下工具去尋找。

Windows 此次我使用 ControlMyMonitor(免安裝),mac 應該也有

打開後,在 60 Input Select 那一行,我們可以看到 value,他顯是的是當前的 input source
而我經過實驗,得到我的螢幕是:

  • Windows(DisplayPort)→ 值是 15
  • 手動切到 Mac(USB-C)→ 值變成 16

而 ControlMyMonitor 其實就內帶改 value 的指令,如果我們開 PS Shell 來實驗

1
2
3
4
5
6
# 讀目前輸入源
ControlMyMonitor.exe /GetValue "Primary" 60
# 切到 Mac
ControlMyMonitor.exe /SetValue "Primary" 60 16
# 切回 Windows
ControlMyMonitor.exe /SetValue "Primary" 60 15

若真的有跳轉,那代表這條路通了

到這邊其實你已經可以用任何軟體來取代
例如寫兩個捷徑 (滑鼠點擊捷徑),或者整合到各種 API 來代替呼叫。(例如透過 python)
而我手邊剛好有一顆外接小鍵盤 (DOIO 16 keys),若能設定上去的話我就終於能從螢幕按鍵解脫ㄌ

想法:讓巨集鍵送 F21 / F22

keyboard 有一些按鍵是幽靈鍵,舉例來說 F21 根本不存在於一般實體鍵盤
但這種外接三方鍵盤可以設定這些幽靈鍵上去

所以想法上
(若我們稱 三方鍵盤上的按鍵叫做 巨集鍵)

1
按巨集鍵 → 送出 F21 → Windows 收到 → 觸發 ControlMyMonitor → 切螢幕

並且用兩個幽靈鍵對兩個輸入源進行 mapping

  • F21 → DP = 切 Windows(15)
  • F22 → TypeC = 切 Mac(16)

並且根據後面的實測,不管螢幕現在顯示哪一台,螢幕都收的到切換訊號
如果有些螢幕不支援在「非當前輸入」的狀態下收 DDC,那就 ... 得在另一台輸入源也實作類似概念

(Optional) 踩坑:VIA 新舊版

這個步驟是我想要設定 F21、F22 到小鍵盤。不是要用小鍵盤的可以跳過

我的三方鍵盤要改巨集鍵就得用 VIA
這台官方給的方法是「開 VIA,拉一個 json 進去」,並不支援 3.0 的網頁版 usevia.app

一開始以為是韌體太舊,即使把 json 拉進 Design 分頁,也只會跳

1
Error: '0xFEED' is not a valid vendorId.

拉 AI 來處理
解說是說 VID_FEED & PID_6060——0xFEEDQMK 的預設 / 範例 vendorId
官方明明叫大家量產要改掉,但這顆 DOIO 就這樣出貨了

然後比對了兩個版本 VIA:

我本機留著的舊 VIA 網頁 usevia.app
版本 1.3.1(2020 年的) 最新版
0xFEED 的態度 不檢查,照吃 直接擋掉

所以網頁不能用的原因不是韌體,是新版 VIA 加了 vendorId 驗證,把 0xFEED 當非法值
改 json 也沒用,因為定義檔的 VID 一定要跟硬體回報的一致,改了就對不上鍵盤了

結論:**乖乖用舊版 VIA 1.3.1 **

想讓網頁新版能用的話,唯一的路是重刷一份「把 vendorId 改成合法值 + 帶 V3 定義」的韌體。
雖然 AI 很屌但我還是不想冒風險,浪費時間 ...

把鏈子接起來:AutoHotkey

小鍵盤可以送 F21 / F22 了,但還缺一個「偵測到 F21 被按下就跑指令」的程式。
單獨一顆 F21 沒辦法綁 Windows 捷徑熱鍵(捷徑熱鍵一定要 Ctrl+Alt 開頭),於是我們請出 AutoHotkey v2

腳本:

1
2
3
4
5
6
7
8
#Requires AutoHotkey v2.0
#SingleInstance Force

# 注意: 以下的路徑,要改成 你 .exe 實際放置的路徑
CMM := '"C:\Users\你的帳號\AppData\Local\Programs\ControlMyMonitor\ControlMyMonitor.exe"'

F21::Run(CMM . ' /SetValue "Primary" 60 15') ; → Windows
F22::Run(CMM . ' /SetValue "Primary" 60 16') ; → Mac

走這條之後 Twinkle Tray(另一個 setValue 程式)就可以不用了,只需要 ControlMyMonitor 裝好就好

讓它開機自動啟動

AutoHotkey 腳本一重開機就沒了。

想讓它開機自動啟動,做法是在啟動資料夾放一個捷徑:

  1. Win + Rshell:startup 開啟動資料夾
  2. 放一個指向 AutoHotkey64.exe "腳本路徑.ahk" 的捷徑

如果有描述看不懂的可以丟 AI 問一下 XD

(Optional) 關機也讓螢幕可以 USB 供電 (TypeC 同理)

設定完的隔天起來,發現我的 Mac 一直有 "連接上電源了!" 的提示音
才發現我這螢幕如果關閉,就插著充電的裝置也會被斷電
(Mac 有走 USB-C 連接,希望它待機也能充。這條線直接承擔充電 + 螢幕訊號輸入)

後來查到 XV322QK 的 OSD 裡本來就有一個選項叫 「Power-off USB charge」(關機 USB 充電),預設是關的
打開它就會在螢幕關機/待機時繼續供電。用實體搖桿進 OSD → System 設定裡打開。

註: Acer 說這選項跟「USB-C 輸入 + 睡眠喚醒」會互相影響,我看不懂。
先用用看,有問題再上來補充

小結

整套弄完,我的體驗變成:
按小鍵盤上一顆鍵,螢幕就在 Mac 和 Windows 之間跳,再也不用慢慢的調整螢幕背面那顆搖桿了

其實這個功能,買個 KVM 也能處理,但 KVM 便宜到貴的感覺各有各的坑
如果我把鍵盤滑鼠的線也都拉到螢幕 USB 孔,搭配 USB A 線就能完全複刻 KVM。

但因為線被我放在原廠箱子,還得挖出來 ... 先將就將就 XD

End
-----------------------------------

2026.07.05

為了更好的引導訪客找到想看的文章
故作了這篇索引來方便大家閱覽

來看看怎麼更好的閱讀體驗吧 !

最新更新三篇文章 :

Read more »

今年 … 除了出國的事情,其他都記不太得了。
但與其說是對其他事情不上心,不如說這才是生活重心。

工作部分也因為越來越熟練了,加上公司業務並無太大擴展
我們 dev 就能用比較合理的速度在進行一些套件的優化與更換。

雖然我不喜歡薪水停滯的感覺,尤其是低薪停滯
但我確實得到了 Work Life Balance。
倒不如說這根本沒有 Balance,是 Life > Work。

Read more »

Aqours 也總算迎來了這天。
寫了好長的一篇來記錄 Live 體驗,以及心情

Read more »

Aqours 迎來了 Finale Live,但這次是疊 CD,人氣又很高的情況下
大家都不敢重壓,深怕籌碼丟水溝。

但對我來說不到最後一刻是不會放棄的 (包括推坑)(也希望大家不要放棄阿)
為了推坑朋友們一起來,這篇做了一點推演,希望能解一些惑,或是找回一些參與的動力

Read more »

2024 根本是臺灣 Jpop 粉絲的 Live 元年 ...

Read more »

想要在日本演唱會抽票,擁有一張自己的 SIM 卡是必須的。
而要有 "接聽電話" 能力的 SIM 卡,若沒有在留卡可以辦正規門號,選項還真的不多。
其中一個較便宜的選項,就是 Hanacell 了。
Hanacell 好在哪 ? 要怎麼申請 ? 這篇文章將會告訴你優缺。

Read more »

身為一個喜歡音樂的人,肯定是想過要把音樂播放器內嵌於文章中
但 Hexo 版本的 Aplayer Plugin 已經失效了,也不太可能自己去修
於是就研究了通用的做法來進行內嵌。

照片截圖:

(文章內有實際可以點的播放器 ! )

Read more »