macOS 中英文輸入法切換終極解決方案

作爲一個對工具有絕對掌控欲的強迫症程序員來說,無法得心應手的切換中英文輸入法一直讓我耿耿於懷。我想實現的是不用看通知欄就能知道當前輸入法的狀態,一鍵切換到自己需要的輸入法,做到對輸入法的絕對掌控。

使用環境:

  • macOS Sierra 版本10.12.4

具體問題:

  1. 不喜歡自帶的簡體拼音,使用的是搜狗。搜狗自帶英文模式,但有時候會誤操作切換到 ABC,而 ABC 和搜狗之間切換的快捷鍵ctrl + space很不方便。

  2. 不同的程序需要不同的輸入法。程序間的切換導致輸入法的頻繁切換,很多時候都會忘記切換輸入法,增多錯誤輸出,降低工作效率。

  3. 通知欄的輸入法狀態並不醒目,而且需要切換眼光焦點到通知欄才能獲知當前輸入法,打斷工作思路。

需求:

  1. 初級需求是把ctrl + space快捷鍵改爲左shift
    高級需求是把中英文輸入法綁定到不同的按鍵,好處是你不需要知道當前的輸入法是什麼,就能一鍵切換到想要的輸入法。

  2. 初級需求是系統能夠記住每個程序的輸入法狀態,切換到另外一個程序再切換回來的時候,還原輸入法。
    高級需求是爲每個程序設置初始輸入法,不管新打開程序也好,還是從其它程序切換回來也好,都能固定輸入法爲初始值。

    自帶的自動切換到文稿的輸入法就可以滿足初級需求。缺點是隻在程序快速切換時有意義,比如從 A 程序切換到微信回覆個消息立刻切換回來。但如果切換到 Chrome 瀏覽網頁,20分鐘後再切換回 A 程序,輸入法狀態是否被還原已經沒有意義。因爲你可能已經忘記了當時的輸入法,還是要通過看通知欄才能知道當前輸入法是什麼,做不到絕對掌控。

  3. 初級需求是能夠用餘光便可以得知當前輸入法狀態。

    其實這個問題已經不太重要。因爲在需求2得以解決的情況下,基本上可以做到任意時刻都知道當前的輸入法狀態。在需求1得以解決的情況下,可以一鍵切換到自己想要的輸入法,不需要知道當前的輸入法狀態。

解決方案

  1. 放棄搜狗的英文模式,使用 ABC + 搜狗。使用 InputSourceSelector + Keyboard Maestro 綁定中英文輸入法到不同快捷鍵,使用 Karabiner 將快捷鍵映射到左右command按鍵上。

  2. 使用 Keyboard Pilot 爲每個程序設置初始輸入法。

  3. 使用 ShowyEdge 爲不同的輸入法設置不同的通知欄顏色。

綁定輸入法到特定按鍵

  1. 下載 InputSourceSelector 並解壓(下載鏈接

  2. 啓動終端,輸入cd ~/Downloads/InputSourceSelector-master ,輸入make,輸入InputSourceSelector current,如果輸出當前的輸入法則表明 InputSourceSelector 安裝成功。
    這裏寫圖片描述

  3. 下載 Karabiner-Elements 並安裝(下載鏈接

  4. 修改其配置文件,路徑爲~/.config/karabiner/karabiner.json,配置代碼較長,以文本形式上傳(下載鏈接)。將代碼粘貼在"rules": [後即可,該配置總共做了三項工作:

    將 左Shift 鍵修改爲 F17 鍵;
    將 左command 鍵修改爲 F18 鍵;
    將 右command 鍵修改爲 F19 鍵
    

    以上修改僅在單獨按鍵時生效,和其他按鍵組合時無效。比如按左shift + s時,仍然輸出S,而單擊左shift時則爲F17

  5. 打開系統偏好設置鍵盤快捷鍵輸入法,雙擊選擇上一個輸入法的快捷鍵ctrl + space,按左shift,將其修改爲F17

  6. 下載 Keyboard Maestro 並安裝(破解版下載鏈接) 密碼:mfdl

  7. 添加Maestro,設置如下圖:

說明:

  1. 直接使用 KarabinerKeyboard Maestro 的切換輸入法功能,出現間歇性失靈的問題,表現爲輸入法切換爲中文了,但輸出仍爲英文。因此採用快捷鍵的方式切換輸入法。

  2. 由於系統默認快捷鍵ctrl + space是組合按鍵,會出現間歇性無法切換的問題。因此修改快捷鍵爲F17

  3. 直接使用 Keyboard Maestro 中的JavaScript腳本判斷當前輸入法速度較慢,大概需要350ms。因此使用 InputSourceSelector 獲取當前輸入法。

爲每個程序設置初始輸入法

Keyboard Pilot破解版下載鏈接

根據輸入法變換通知欄顏色

ShowyEdge下載鏈接

效果圖(英文輸入法)
這裏寫圖片描述
效果圖(搜狗輸入法)
這裏寫圖片描述
英文輸入法的紅色是我桌面背景本身的顏色
搜狗輸入法的藍色設置見下左圖,透明度設置見下右圖
這個顏色是和桌面背景顏色疊加而成,桌面背景不同,效果會有所差異

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章