像原生,更自由。
開源的 macOS 輸入法——完整重現系統候選窗的外觀與手感,同時讓你用 JavaScript 打造自己的輸入引擎。
候選窗為網頁模擬實際樣式,依作業系統設定不同可能略有差異;主題與外觀可在下方互動區切換。
行列為內建輸入法;注音、倉頡、嘸蝦米需匯入對應的 .cin 碼表。
候選窗
水平、垂直、可展開的網格,依你的輸入習慣切換;高亮色與深淺外觀自動跟隨系統和每個 App 的設定——看起來就像內建的。
切換佈局、色票、深淺與主題,模擬不同設定的 App 與 macOS
候選字一列排開,多頁時右端化為膠囊圓角並附翻頁箭頭,翻頁與方向鍵行為與原生一致。
MacishType 讀取前景 App 的 accent color 作為候選窗的高亮色,並套用與原生一致的亮度校正;深淺外觀不只跟隨系統整體設定,連 App 各自指定的外觀(例如系統為淺色、但時鐘固定深色)也一併尊重。
特色
從碼表、引擎到候選窗,每一層都對你開放。
一個資料夾、一份 manifest.json,就是一套輸入法。用 FSEvents 監看引擎資料夾,存檔即重載——迭代不必重啟輸入法,console.* 還能即時串流到終端機。
在 manifest 宣告設定欄位,MacishType 幫你長出原生設定介面。
Array30 碼表開箱即用:一、二級簡碼、詞庫、符號輸入、萬用字查詢俱全,並依系統字集過濾候選,不選到缺字框。
任何外部 .cin 碼表,選取即輸入。你慣用的碼表,不必等誰移植。
Sequoia 毛玻璃與 Tahoe Liquid Glass 兩套候選窗主題,貼合你正在用的那一代 macOS。
以 InputMethodKit + Swift 原生打造,輸入低延遲、資源佔用小,深淺與字型渲染全走系統框架。macOS 14 起支援,Universal Binary 同時服務 Apple Silicon 與 Intel。
候選窗本身也是可替換的元件——實作 CandidateWindowImpl 就能換上你自己的視窗。整個專案在 GitHub 上等你 fork。
JS 引擎
引擎是 duck-typed 的:export 一個 class,實作你需要的方法就好。
// Engines are duck-typed: implement only what you need. export default class MyEngine { handleKey(event) { // Space confirms the highlighted candidate. if (event.isComposing && event.code === "Space") { event.commitSelectedCandidate(); return true; } // Non-composition keys pass through to the app. if (!isCompositionKey(event.key)) { return false; } // Append the key, show it, then refresh the candidates. const code = event.markedText + event.key; event.updateMarkedText(code); event.updateCandidates(lookup(code)); // [] hides the window return true; } }
安裝
下載 .pkg 直接安裝,或 clone 原始碼自己 build。
下載 .pkg 雙擊安裝;開發者可改用 make install 從原始碼建置。
首次安裝需要重新登入,macOS 才會在輸入來源清單中列出 MacishType。
系統設定 → 鍵盤 → 輸入來源 → +,從 MacishType 區段挑選你要的輸入法。