TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

Input Source Pro 是免費開源的 Mac 輸入法自動切換工具,能依 App 與個別網站自動切換輸入法。這篇從原始碼與官方資料拆解它不靠瀏覽器擴充功能的網站偵測機制、輔助使用與輸入監控兩項權限代價、啟動時的版本回報行為,以及單人開源專案的維護節奏。
用 AI 摘要這篇文章:
在 macOS 上同時用中文和英文打字的人,幾乎都養成了同一個肌肉記憶:切到終端機之前先按一下切換鍵,回到通訊軟體再按回來。系統其實會幫每個 App 記住上次的輸入法,但這份記憶有個明顯的缺口,瀏覽器在系統眼裡永遠只是「那一個 App」。你在程式碼平台寫英文、在後台寫中文、在社群網站兩種混著用,系統一概記不住,切換的帳全記在你自己身上。
Input Source Pro 的開發者 Runju Huang 對這件事有個很明確的判斷。他在 2025 年初的更新日誌寫道,自己考慮過付費功能,但最後覺得不對:切換任務與語言是多語使用者的基本需求,這種事本來就該由作業系統處理。基於這個判斷,他先承諾 App 永久免費,幾個月後更進一步把整個專案以 GPL-3.0 授權開源。這款選單列工具做的事可以一句話講完:依你正在用的 App、甚至正在瀏覽的網站,自動切換輸入法,並在畫面上即時顯示目前的輸入狀態。
這篇把幾件關鍵的事攤開來講:它不靠瀏覽器擴充功能就知道你在哪個網站的機制、它要求你交出的兩個系統權限、啟動時它對外回報了什麼,以及一個人維護的開源專案目前的實際節奏。功能只是入場券,這些取捨才是決定要不要裝它的依據。
先把系統內建的行為講清楚,才知道這個工具補在哪一段。macOS 的輸入法是跟著 App 走的:你在記事本用注音、切到終端機它自動換英文、再切回來又恢復注音,這是系統本來就會做的。會去另外裝工具的人,通常是撞上了三種系統顧不到的情況:同一個瀏覽器裡不同網站需要不同語言;Spotlight 或搜尋框這類「明明在中文 App 裡但我想打英文」的邊界情境;以及切換當下沒有任何提示,打錯半句才發現輸入法不對。
Input Source Pro 對這三段的對應做法分別是:瀏覽器規則(指定某個網站永遠用某個輸入法)、App 規則(含 Spotlight 這類系統元件的細部控制)、以及一個跟著滑鼠或游標出現的輸入狀態指示器,長按滑鼠、切換輸入法或切換 App 時會浮出來提示當前狀態。規則的粒度做到網域層級,例如把程式碼託管平台設成英文、把寫作後台設成中文,兩邊輪流跳時就不再需要手動切換。
除了輸入法切換,2.7 版之後它還接手了幾個同類型的系統小麻煩:可以為特定 App 強制英文標點,讓 IDE 或終端機裡的引號、冒號維持半形;可以為個別 App 指定 F1 到 F12 要當標準功能鍵還是媒體鍵,寫程式和看影片各用各的。快捷鍵的選擇也變多了:除了傳統組合鍵,也支援單一或組合修飾鍵(按一下或連兩下 Shift、Command 之類)直接切換。這些功能彼此獨立,用得到就開,用不到不影響主線。
逐網站切換聽起來像是要在每個瀏覽器裝擴充功能才做得到,實際上不是。我翻了它的原始碼,網站偵測走的是 macOS 內建的輔助使用管道:App 透過這組 API 拿到瀏覽器視窗的介面樹,在裡面找到網頁內容區塊,直接讀出目前分頁的網址,再拿網址的網域去比對你設的規則。整個過程發生在你自己的機器上,網址沒有離開本機,也不需要在任何瀏覽器裡多裝一個擴充元件。
這個設計選擇帶來的直接好處是涵蓋範圍。原始碼裡內建的瀏覽器清單有 18 個,從主流的 Safari、Chrome、Edge、Firefox、Brave、Vivaldi、Arc、Opera,到 Chromium 本體、Thorium、Zen、Dia、Helium,連 Safari 技術預覽版、Brave 的 Beta 與 Nightly 版、Firefox 的開發者與 Nightly 版都各自列了對應的辨識名稱。有意思的是行銷頁面和原始碼的口徑不一致:官網繁中首頁列了 7 種瀏覽器,README 列了 10 種加一句「以及更多」。如果你用的是比較小眾的瀏覽器,值得直接看原始碼清單確認;其中 Helium 的支援是 2026 年 9 月初才合併進主分支的,要等下一次打包發布才會隨安裝檔出貨。
原始碼裡還有一個值得注意的細節:讀取網址時會明確跳過 Chromium 系瀏覽器的擴充功能頁面。也就是說當你停留在這類擴充功能的管理介面時,它不會把那種內部頁面的位址拿去比對規則,避免誤判。新分頁也做了專門判定,Safari、Chrome、Edge、Vivaldi、Firefox 的新分頁位址在原始碼裡各有一組對應,停在新分頁時不會亂套規則。這些是維護者踩過邊界情況之後補上的防呆,從側面說明網址比對這條路能走,但需要持續修。
網域比對的寫法就踩過坑。早期版本只比對網域結尾的字串,結果輸入 example.com 規則時,連 notexample.com 這種名字裡剛好包含同一段字的網站也被切換,2.11.0 版把這個比對修成真正的網域邊界判定。對使用者的實際意義是:設定規則時填網域的主體就好,不用自己發明前綴或萬用字元規則;而「停用的規則仍然生效」這類舊版本 bug,同一版也一併修掉了,如果你的規則行為怪怪的,先確認裝的是 2.11.0 以後的版本。
除了網站層,瀏覽器本身的網址列也被當成一個可以單獨設規則的對象。這個功能解決的是一個很小的干擾:你在中文網頁裡按 Command+L 想跳去另一個網站,網址列卻還停在中文輸入法,打了半天發現跑進搜尋框的是注音字元。把網址列設成英文,這一刻就順了。這種規則粒度已經比「每個 App 一個預設值」細了一層,也是原始碼裡看得出來維護者真的在用自己的工具過日子的地方。

代價面第一件事是權限。這個工具需要你開放兩項 macOS 權限:輔助使用,以及輸入監控。前者是上面整套網站偵測的基礎,沒有它 App 讀不到瀏覽器的介面樹;後者主要給修飾鍵快捷使用,偵測你按下單一修飾鍵或連按兩下的動作。這兩項都是系統裡敏感度最高的權限,等於把「看到你在用什麼、聽到你按了什麼鍵」的通道交出去,做同樣自動切換的工具多半也得跨過這一關,差別只在於你能不能查證拿走權限的人。
開源在這裡的意義因此遠超過情懷。原始碼以 GPL-3.0 授權完整公開,權限拿了做什麼、網路呼叫有哪些,都可以直接翻專案驗證,不安心的人可以用最新版 Xcode 自己編一份來裝。同樣是交出輔助使用權限,閉源 App 只能靠隱私政策的一紙承諾,開源工具的信任鏈是可重製的。之前介紹過的 Urik 開源 Android 鍵盤走的是同一套邏輯:對輸入類工具,能不能查原始碼,本身就是產品力的一部分。
原始碼裡自動發生的對外連線可以數得出來,一共三處。每次啟動時,App 會向官方網域送出一則小資料,內容是四個欄位:這次的版本、安裝前的舊版本、組建編號、macOS 系統版本。送出這則資料的程式碼在啟動流程裡是無條件執行的,設定介面裡沒有可以關掉它的開關。欄位裡沒有機器識別碼或任何使用者身分資訊,方向上接近開發者統計各版本使用分布的作法,但如果你對連網回報這件事本身是零容忍,這裡就要誠實說:它不符合零網路工具的標準。
其餘兩處自動連線:一是更新檢查,用的是 macOS 生態裡常見的 Sparkle 更新框架,定期向官方位址確認有沒有新版本;二是設定介面裡會載入開發者另一款產品的宣傳圖片。另外還有一個只在使用者主動按下時才發生的意見回饋表單,會把你填的訊息與信箱送到同一個官方網域。整個專案沒有接任何分析或錯誤回報服務,依賴清單裡也沒有這類套件。換句話說,它的遙測面積小而且可以被原始碼驗證,這點比多數閉源同類工具透明,但「完全離線」這四個字它擔不起,也不該這樣形容它。
這個專案的歷史值得知道,因為它直接影響你對長期維護的預期。Input Source Pro 起初以閉源形式發行,到 2025 年 4 月的 2.6.1 版更新才正式以 GPL-3.0 釋出原始碼,開發者在年初的免費宣言裡提過自己剛當了父親,在這份開源說明裡又說自己正在找工作,能投入的時間有限,維護會盡力但節奏不保證,歡迎社群提交程式碼。
之後的發展某種程度上驗證了開源這個決定。2026 年初的 2.7.0 版是個轉折點,那次的更新內容幾乎都來自第一次貢獻程式碼的外部參與者:Zen 瀏覽器支援、Dia 瀏覽器支援、強制英文標點功能,都由社群加上。緊接著 2.8 到 2.11 這半年間的功能演進相當扎實:單修飾鍵與組合修飾鍵快捷、按 App 切換功能鍵模式、設定備份匯出匯入,到 2.11.0 加入用 inputsourcepro:// 網址格式從命令列匯入設定的能力,管理人員可以腳本化還原整組規則。
版本記錄裡還有一條值得中文使用者多看兩眼的修復。macOS 切換輸入法有個存在多年的怪現象:剛切過去的瞬間,系統有時又跳回原本的輸入法,這在中日韓越這幾個使用輸入法的語言圈裡特別明顯。2.10.0 版針對這個問題加了可選的修正手法,做法是在切換後極短暫地把焦點挪開再回來,讓系統穩定地固定在你指定的輸入法上;對懸浮視窗類的 App 也做了自動排除,避免修正手法反而干擾正常操作。如果你曾經遇過「明明設了規則卻偶爾不生效」的情況,這條修復說明問題出在系統這層的行為,跟你的規則無關。
需要留意的則是版本打包的節奏落差。主分支上最後一次程式修改是 2026 年 9 月上旬,包含 Helium 瀏覽器支援、一個網址列規則修正和幾個輸入狀態指示器的改進,但這些改動還沒打包成新的安裝版本,目前能下載的正式版仍是 6 月的 2.11.0。另外,9 月有一則使用者回報反映切換功能會無預警失效,而且設定介面裡找不到任何紀錄或錯誤訊息可以協助除錯,這則回報到 9 月中為止還沒有得到回覆。對依賴它工作的人來說,出問題時能提供的診斷資訊很少,是一個實際存在的風險,也是這類小巧工具常見的罩門。

同品類在 Mac App Store 上能看到的是免費的 Input Sources、30 美元的 isHUD 等競品,這款則選擇留在商店之外。安裝管道有三條:官網直接下載 DMG(約 7.9 MB)、GitHub Releases 頁、或者用 Homebrew 一行指令:brew install --cask input-source-pro。系統需求是 macOS 11 以上,對不少同類工具來說算是寬鬆的門檻,舊一點的 Intel 機器也能裝,Homebrew 的 cask 也維持在最新版 2.11.0。用 Homebrew 安裝的好處是之後 brew upgrade 會一併處理更新,不需要等 App 內建的更新檢查。
第一次啟動的流程很短:App 會引導你到系統設定開啟輔助使用權限,要用修飾鍵快捷的話再補開輸入監控,之後在選單列的圖示裡新增規則就能開始用。設定本身支援匯出成檔案備份,換機器或重灌後可以用匯入或前述的命令列方式還原,不需要一條一條重設。宣傳上它是一款多語使用者工具,介面有繁中在內的多種語系,設定頁的說明文字算是清楚,不太需要查文件就能上手。
最適合的族群輪廓很清楚:在 Mac 上穩定使用兩種以上輸入法,而且工作會在瀏覽器裡跨多個網站跳換的人。工程師在程式碼平台、文件、通訊軟體之間輪流切,內容工作者在中文後台和英文資料之間來回,這兩種情境受惠最直接。強制英文標點和功能鍵模式再各自加分一些,寫程式的人幾乎一定會用到前者。
可以跳過的情況也說明白。如果你 95% 的時間只用一種輸入法,系統內建的每 App 記憶已經夠用,多裝一個常駐工具沒有意義。如果你對輔助使用權限的交付有原則上的保留,這個工具大概不適合你,它沒有不交出權限的降級模式可選。而如果你的痛點其實在打字慢而不是切換煩,想找的是用說的代替打的,之前介紹過的 Input 0 開源語音輸入工具或 LazyTyper 語音輸入工具是更對題的方向。
整體看,它把一件系統該做而沒做好的事,用一種不需要擴充功能、不需要把瀏覽資料送出門的方式補上了,程式碼公開可驗,免費、沒有付費牆,也未內建第三方廣告。要付出的對價是兩項高敏感權限、一則無法關閉的啟動版本回報,以及接受單人維護專案的節奏不確定性。對多語工作的 Mac 使用者來說,這筆交換值得;對隱私零容忍或單語使用者來說,先看看系統內建能滿足到哪裡,再決定也不遲。