去年底阿麥換了新的 MacBook Pro,于是她自學生時代就一直在用的老款 MacBook Pro 就歸我當玩具了。一度考慮過將其出售,但是想到自己還閑置了一塊 SSD,就想著干脆換上讓它繼續服役。
于是買了光驅硬盤支架,想著有時間就給換上。然而換了新工作以后實在忙碌,這一拖就到了上個月。那天下午在想事情,手里沒自覺的就拆開了支架包裝,索性花了半小時把原來的光驅拆了,換上了硬盤。之后就邊工作,邊裝著系統,還順手把 SSD 和原來的 HDD 做成了 Fusion Drive。我沒有測速度的習慣,總之裝上以后覺得速度簡直飛起,就已經心滿意足了。
不過這臺 2012 年中的 MBP 實在太重了,完全沒有「移動辦公」的欲望。剛好我還有個 HHKB 是閑著的,就連在了電腦上來用,像頭圖那樣。
不過這樣就帶來了一個問題,你在敲擊上方的鍵盤以后,內建的鍵盤也有可能被觸動,從而引發一些錯誤的輸入。理想的解法當然是插上外接鍵盤就禁用內建的,拔掉外接就恢復內建。在 GitHub 找了一個名為「HHKBAssistant」的插件,奈何代碼過于久遠,它可以成功監測鍵盤的拔插,但是沒法成功禁用內建的鍵盤。
研究了一番源代碼以后發現其禁用內建鍵盤的功能是通過 unload 其驅動來實現的,其實只要一行代碼就完成了:
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/
我直接在終端(Terminal.app)里輸入,并且輸入管理員密碼以后就成功將內建鍵盤禁用了。但不知何故,其腳本沒能運行,猜測是因為沒法在新系統上獲得權限導致的,打算有時間再研究一下該插件的源代碼,改好以后提交一個版本好了。
禁用鍵盤以后要恢復也簡單,也是一行代碼重新裝載對應的驅動就行:
sudo kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/
最近因為一直開著終端研究 Python 代碼,所以就把這兩個動作各自添了個 TextExpander 的 Snippet,一個短語就調用了。也可以做成 bash 腳本,或者是用 Alfred、Keyboard Maestro 運行,都可以。
已知問題:
如果電腦休眠以后恢復,內建鍵盤會自動掛載驅動,此時再使用上述命令不生效,重啟可以解決。