zeuikli GitHub avatar

stoat-keyboard

zeuikli

Stoat is an iOS custom Zhuyin keyboard built on librime, offering a native-like typing experience with RIME’s intelligent candidate selection and extensive customization.

Stars

13

7-day growth

No data

Forks

1

Open issues

0

License

GPL-3.0

Last updated

2026-07-21

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It uniquely combines Apple’s keyboard feel with RIME’s power—free-order input, context-aware candidate ranking, prediction, emoji/kaomoji, and multiple dictionary variants, all fully offline and open source.

Who it is for

  • Taiwanese users who type in Traditional Chinese with Zhuyin
  • RIME power users seeking a mobile port of Squirrel
  • iOS users dissatisfied with stock keyboard prediction quality
  • Developers interested in custom keyboard engineering on iOS

Use cases

  • Daily Zhuyin typing on iPhone or iPad with smart candidate prediction
  • Switching between iOS 26 glass effect and iOS 18 flat visual style
  • Using emoji and kaomoji directly from the keyboard without a separate picker
  • Sideloading a tailored dictionary variant (lite/plustrim/full) for different memory/accuracy needs

Strengths

  • Free-order (acronym/rhyme/tone input in any order) via RIME, greatly reducing typing constraints
  • Octagram-based contextual suggestion and next-word prediction improve accuracy over time
  • Liquid Glass button effects (frost/clear, tint) match iOS 26 design language
  • Completely offline with no network requests, ensuring user privacy

Considerations

  • Sideloading required; App Group unavailable for sideloaded versions (settings stored locally)
  • Cannot switch dictionary variant on-the-fly—different IPA must be built for each variant
  • First-keyboard-presentation flash is a known iOS system limitation that cannot be fully eliminated

README quick start

Stoat 白鼬注音

iOS 自製注音輸入法——以自建 librime.xcframework 為引擎,從 macOS Squirrel SPEC 移植,詞庫引用洋蔥純注音洋蔥 Plusoniondelta / Onion_Rime_Files),主打「貼近 Apple 原廠手感 + RIME 強大選字」。

  

左:注音鍵盤實際運作(內嵌組字「ㄋㄧ」→ 候選 你/尼/妳/呢…) 右:容器 App 設定

  • Bundlecom.frost.stoat(鍵盤 com.frost.stoat.keyboard
  • 平台:iOS 16.0+(iOS 26 視覺特性自動加載)
  • 引擎:librime(自建 xcframework,含 librime-lua + octagram + predict)
  • 詞庫:洋蔥純注音 bopomo_onion.schema.yaml + 洋蔥 Plus 擴充詞組(phrases.chtp),預編譯 .bin 隨 App 打包

特點

輸入核心

  • 聲韻母亂序(free-order) — RIME 精髓。聲母、韻母、聲調不必照順序打,引擎自動還原正確字。
  • 大千鍵位 ≡ QWERTY 實體鍵 — 同一顆鍵服務注音輸入;注音鍵上下划即輸入英文(ㄆ↔q、ㄇ↔a、ㄈ↔z…),不必切頁。
  • 智慧候選排序 — octagram 語法模型(contextual_suggestions)依上下文重排候選,越打越準。
  • 預測候選 — 選字後接續預測下一詞。
  • 注音內嵌輸入框(可開關) — 開:組字注音顯在打字的輸入框(marked text,像原廠);關:注音顯在候選列、跨宿主較快。⚙ 選單切換。

候選體驗(比照原廠)

  • 展開候選面板 — 點候選列右側 chevron,鍵盤區展開成扁平等寬格狀候選(列間細橫線分隔),再點收合。
  • emoji 候選 — 打「哈哈哈」直接出 🤣。
  • 顏文字候選 — 與輸入連動。
  • 生僻字 tofu 過濾 — 字型無法顯示(豆腐格)的候選自動濾除。
  • 候選無編號、原廠灰 chevron,視覺對齊系統鍵盤。

鍵盤版面

  • 原廠風格變動高度 — 總高度隨列數變(注音最高、英文/123 較矮);鍵寬/鍵高像素對標原廠(注音列多、鍵略矮=原廠比例;英文鍵較高,§182–187)。
  • 功能列空白鍵置中 — 注音/英文/123 三模式空白鍵皆置中(兩拇指等距);123 頁 Enter 加大。
  • 英文 QWERTY 頁 — 對齊 iOS 原廠,含可選常駐數字列。
  • 123 數字符號頁 — 半/全形依中英模式自動切換,亦可在設定強制。
  • 表情/顏文字面板 — emoji 鍵為原廠線條笑臉圖示;面板水平(左右)捲動瀏覽、分類 chip、內建 ⌫(長按連刪)。emoji 集對標 iOS 26(Unicode 16.0)、原廠分類順序。
  • iOS 26 圓角 — 鍵盤上緣與按鍵採連續(squircle)圓角。
  • Liquid Glass 玻璃按鍵 — iOS 26 可選開關(預設關,原廠實心白鍵/灰功能鍵)。開啟後可再選 玻璃風格(霜面/透明)與 色調(無色/藍/灰/暖)。
  • 色調與玻璃風格 — iOS 26 玻璃按鍵開啟時,⚙ 輸入選項提供「玻璃風格」(霜面 UIGlassEffect .regular/透明 .clear)與「色調」(無色/藍/灰/暖)即時切換。

手感細節

  • ⌫ 長按連續刪除;空白鍵長按滑動移游標
  • 中/英快切鍵常駐功能列。
  • 原廠按壓高亮動畫(按下即時、放開淡出)。
  • 簡繁、全半形、標點切換。
  • 第一列快捷列可開關(⚙)— idle 時的「標點」與「顏文字」兩段各自開/關;兩段全關時連空候選列一併收起、鍵盤自動變矮、不留空白帶。

切換手感(對標原廠)

  • 不疊加自家動畫 — 高度變更全程非動畫,切 App 不會額外彈跳。
  • 轉場交給系統 — 不在系統轉場期重繪介面,純讓系統 snapshot/轉場動畫處理,貼近原廠平順。
  • App resume 後乾淨重套 — 掛 willEnterForegroundNotification,回前景後在轉場完成時校正高度。
  • 誠實邊界:自訂鍵盤跨進程、只能在首繪後改高,首次呈現的微 flash 為 iOS 系統限制(Apple DTS 證實)、原生無法完全消除;App 切換的卡片動畫亦為系統行為。

設定與部署

  • 鍵盤內建選項選單(⚙)— 側載重簽會使 App Group 失效,故選項直接存鍵盤本地,側載也可用。
  • 自訂詞庫 / UserData — 容器 App 內可看可改個人詞庫。
  • 免裝機部署 — bundle 內帶預編譯 .binprebuilt_data_dir 直接指過去,裝置端免重建。

隱私

  • 全程離線,無網路請求。
  • 無語音輸入(iOS 自訂鍵盤沙盒無法錄音/叫起聽寫,已整段移除)。
  • 個人詞庫僅存於裝置本地。

Description

A custom Zhuyin (Bopomofo) keyboard for iOS — self-built librime engine, native iOS feel + powerful RIME candidate selection.

Related repositories

Similar projects matched by category, topics, and programming language.

Blaizzy
Featured
Blaizzy GitHub avatar

nativ

Nativ is a native macOS app that lets you run AI models locally on Apple silicon, offering chat, model management, performance analytics, and an OpenAI/Anthropic-compatible API server.

AI & Machine LearningAI Vision & Audio
985
uzairansaruzi
Featured
uzairansaruzi GitHub avatar

hermex

Hermex is a native SwiftUI iPhone app that lets you control a self-hosted Hermes AI agent directly from your phone, with no subscriptions, tracking, or third-party relay.

AI & Machine LearningLarge Language Models
941
simonw
Featured
simonw GitHub avatar

speech-analyzer-cli

A macOS command-line tool that uses Apple's on-device speech APIs to transcribe prerecorded audio into plain text, JSON, JSONL, SRT, or WebVTT.

Developer ToolsCLI & Terminal
20