MacishType

像原生,更自由。

開源的 macOS 輸入法——完整重現系統候選窗的外觀與手感,同時讓你用 JavaScript 打造自己的輸入引擎。

Universal .pkg · 支援 Apple Silicon 與 Intel

未命名 — 文字編輯

候選窗為網頁模擬實際樣式,依作業系統設定不同可能略有差異;主題與外觀可在下方互動區切換。
行列為內建輸入法;注音、倉頡、嘸蝦米需匯入對應的 .cin 碼表。

候選窗

三種姿態,融入每個 App。

水平、垂直、可展開的網格,依你的輸入習慣切換;高亮色與深淺外觀自動跟隨系統和每個 App 的設定——看起來就像內建的。

備忘錄
仿 1仿 2 3 4 5 6 7 8

切換佈局、色票、深淺與主題,模擬不同設定的 App 與 macOS

水平佈局

候選字一列排開,多頁時右端化為膠囊圓角並附翻頁箭頭,翻頁與方向鍵行為與原生一致。

不是主題色,是「它的」顏色

MacishType 讀取前景 App 的 accent color 作為候選窗的高亮色,並套用與原生一致的亮度校正;深淺外觀不只跟隨系統整體設定,連 App 各自指定的外觀(例如系統為淺色、但時鐘固定深色)也一併尊重。

特色

該有的都有,該改的都能改。

從碼表、引擎到候選窗,每一層都對你開放。

⚡️

用 JavaScript 寫引擎

一個資料夾、一份 manifest.json,就是一套輸入法。用 FSEvents 監看引擎資料夾,存檔即重載——迭代不必重啟輸入法,console.* 還能即時串流到終端機。

$ make log-js [Example] demo.txt loaded, entries: 42 [Example] engine reloaded ← 剛存檔,0.1 秒後生效
🎛️

Settings 自動生成

在 manifest 宣告設定欄位,MacishType 幫你長出原生設定介面。

📸 JS 引擎設定頁截圖 Settings 視窗中由 manifest.json 自動生成的引擎設定頁 img/settings-js.webp
⌨️

內建行列輸入法

Array30 碼表開箱即用:一、二級簡碼、詞庫、符號輸入、萬用字查詢俱全,並依系統字集過濾候選,不選到缺字框。

📄

.cin 隨插即用

任何外部 .cin 碼表,選取即輸入。你慣用的碼表,不必等誰移植。

🪟

雙世代視覺主題

Sequoia 毛玻璃與 Tahoe Liquid Glass 兩套候選窗主題,貼合你正在用的那一代 macOS。

🍎

原生 Swift 打造

以 InputMethodKit + Swift 原生打造,輸入低延遲、資源佔用小,深淺與字型渲染全走系統框架。macOS 14 起支援,Universal Binary 同時服務 Apple Silicon 與 Intel。

🔓

完全開源

候選窗本身也是可替換的元件——實作 CandidateWindowImpl 就能換上你自己的視窗。整個專案在 GitHub 上等你 fork。

JS 引擎

用 JavaScript,
寫你自己的輸入法。

引擎是 duck-typed 的:export 一個 class,實作你需要的方法就好。

📁
資料夾即引擎manifest.json + index.js,從 Settings 選取資料夾即載入。
🔄
存檔即重載FSEvents 監看變更,編輯器一存檔,引擎立刻換新。
🧩
型別定義齊全MacishType.d.ts 提供完整 API 型別,IDE 自動補全、bundler 也能直接吃。
🧰
主程式資源字頻表、字集(字型可顯示範圍,即時跟隨)、符號名稱等資料表可直接查用,並內建繁體轉換簡體中文輸出選項。
🪵
Log 即時串流console.* 與未捕捉例外全部進 OSLog,make log-js 一行看到。
閱讀引擎開發指南 →
// 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。

01

安裝

下載 .pkg 雙擊安裝;開發者可改用 make install 從原始碼建置。

02

登出,再登入

首次安裝需要重新登入,macOS 才會在輸入來源清單中列出 MacishType。

03

加入輸入來源

系統設定 → 鍵盤 → 輸入來源 → +,從 MacishType 區段挑選你要的輸入法。

準備好換一套輸入法了嗎?

macOS 14.0 或之後版本 · Universal Binary · 開源授權