Releases: plateaukao/ohmybias
Releases · plateaukao/ohmybias
Release list
OhMyBias 0.8.0
變更
- 英文補空白只對空白鍵生效 — 「英文補空白」開啟時,只有無候選字按空白鍵直印英文才在尾端補空白;按 Enter 送出原碼維持原樣、不再補空白(0.5.0 起兩者都補)。
OhMyBias 0.7.0
新增
- 中/英切換快速鍵 — 設定 →「輸入」新增「中/英文切換」區塊:可另外指定一組快速鍵(例如 ⌃Space、⌥⇧E、F13)切換英文模式,也可以關掉「單擊 Shift 切換」。快速鍵可直接錄製,或從「常用組合」選單挑選(⌘Space、⌃Space 這類正被系統佔用的組合,錄製時會被系統先攔走,只能從選單挑)。快速鍵以 Carbon 全域 hot key 註冊(
RegisterEventHotKey,無米蝦是目前輸入方式時才註冊、切走就取消),由系統在按鍵送到前景 app 之前攔下交給輸入法:iTerm2 這種不把 ⌘ 組合交給輸入法的 app 也切得動,Ghostty/Prowl 這種看輸入法沒插字就自己把按鍵重編碼送進 pty 的終端機也不會多出一個空白。(同一組合若被 Raycast、Alfred 之類的 app 也註冊了會被搶走,Carbon 偵測不到,設定頁只能提醒。)錄製時若該組合正被系統快速鍵佔用(Spotlight、切換輸入方式、指揮中心⋯ 這些由系統先攔截、輸入法收不到),會跳出對話框詢問是否代為停用系統那一組(寫入com.apple.symbolichotkeys並套用;若系統沒即時重讀會提示登出再登入)。沒有 ⌘⌃⌥ 的組合只接受 F 鍵,避免吃掉一般打字。
修正
- ⌘⇧/⌃⇧ 組合鍵放開後誤觸中/英切換 — 按 ⌘⇧S 之類的組合時,若先放 ⌘、再放 Shift,原本會把「Shift 單獨按住的那一小段」當成單擊而切換英文。現在 Shift 一旦與 ⌘⌃⌥ 並用,直到全部放開前都不再視為單擊。
OhMyBias 0.6.0
修正
- 切換輸入法偶爾靜默失敗(heap corruption) —
activateServer會一邊在背景執行緒建反查表、一邊在主執行緒重載同一個共用的CINTable,兩邊同時讀寫同一批 Dictionary,把 heap freelist 寫壞(BUG IN CLIENT OF LIBMALLOC/ SIGTRAP),輸入法 process 死在切換途中,系統退回英文、使用者得再按一次。CINTable改成「不可變快照+整份原子替換」:載入端在區域變數上組好完整快照再上鎖換掉,讀取端只在鎖內取出參考、其餘全在鎖外操作,建表不再擋按鍵路徑。 - 每換一個 app 就整表重載一次 — IMK 每個 client app 各建一個 controller,其
enginegetter 又呼叫InputEngine.loadTable()→cinTable.reload(),而共用的static let cinTable初始化時已經載過。移除這條重載路徑(InputEngine.loadTable()一併刪除),字表只在啟動、,,RL、匯入字表、以及偏好設定改擴充表時重載。 - 偏好設定改擴充表沒有生效 —
info.plateaukao.ohmybias.reloadTables通知從來沒有人接收(以前靠上述「換 app 就重載」矇混過去);改由AppDelegate明確接起來呼叫reloadTable()。
變更
- 不再預先建立反查表 — 反查表只有注音/同音模式、簡碼/長碼模式、字碼提示會用到,一般打字完全不碰,卻在每次從別的輸入法切進來時就丟到背景整份重建(peak footprint 一度到 207 MB)。改為真的用到才建,並在匯入完成的訊息改用只掃一次碼表的字數統計。
- 鍵盤佈局不再每次 activate 都重套 — 補回
lastAppliedKeyboardLayout判斷(宣告了但從未使用):從別的輸入法切回來時仍一律重套 ABC 佈局(對方可能改過),app 之間切換則跳過。
安裝(已簽章+公證;需 macOS 14 以上):
- Apple Silicon(M 系列):
OhMyBias-0.6.0.pkg - Intel(2019 以後的 iMac 等):
OhMyBias-0.6.0-x86_64.pkg(2026-08-23 補上,程式碼與 Apple Silicon 版相同,只是換編譯目標)
裝錯架構 Installer 會直接擋下。結尾建議登出再登入,也可稍後。
OhMyBias 0.5.0
新增
- 英文補空白(預設關閉) — 設定 →「輸入功能」新增卡片:開啟後,英文直印送出的字母尾端自動補一個空白(無候選字按空白鍵、或按 Enter 送出原碼皆適用),接著打下一個英文單字不必自己補空白。只對純英文字母的組字串生效,含標點或萬用字元(
*)的組字串維持原樣。 - 設定顯示版本號 — 說明分頁「原始碼」連結上方加上版本行(
x.y.z(build …)),回報問題時可直接對照。
安裝:雙擊 OhMyBias-0.5.0.pkg(已簽章+公證);結尾建議登出再登入,也可稍後。
OhMyBias 0.4.0
變更
- 無候選字時可續打,空白鍵原樣送出字母 — 輸入碼查無候選字時不再自動清空組字串:可以繼續打(不受碼長上限限制),按空白鍵把打到一半的字母原樣送出,作為無蝦米模式下快速輸入英文單字的途徑(與 Enter 送出原文一致)。原「打滿碼長無候選自動清空」與空白鍵清空行為移除;要放棄組字改用 Esc 或退格。注意:模糊比對(相鄰鍵)開啟時,打錯的碼若被模糊比對找到候選字,空白鍵仍會送出該候選字。
安裝:雙擊 OhMyBias-0.4.0.pkg(已簽章+公證);結尾建議登出再登入,也可稍後。
OhMyBias 0.3.0
變更
- 候選字排序改為「字表順序+
,,PIN固定排序」 — 打字路徑不再查詢/記錄字頻:原本每個按鍵最多兩次同步 SQLite 查詢(跨執行緒),且每 500 字觸發的字頻衰減(全表 UPDATE+DELETE)會讓當下那一鍵卡住。現在排序是純記憶體操作:有,,PIN的碼把固定字排前,其餘一律維持字表順序。字頻機制(記錄、排序、衰減、JSON 遷移/同步)整組移除,,,RS指令一併移除。 - FreqTracker 瘦身更名為 PinnedStore、改用
pinned.db— 只剩,,PIN固定排序單表+記憶體快取;首次啟動自動把舊freq.db的固定排序搬進pinned.db並刪除舊檔。全 controller 共用單一實例(IMK 每個 client app 各建一個 controller,原本每個都另開自己的 SQLite 連線與 pinned 快取),,,PIN立即跨 app 生效。
安裝:雙擊 OhMyBias-0.3.0.pkg(已簽章+公證);結尾建議登出再登入,也可稍後。
OhMyBias 0.2.0
首個公開發行版 — 自 Yabomish 抽出的極簡嘸蝦米輸入法。
安裝
下載 OhMyBias-0.2.0.pkg 雙擊安裝,結尾建議登出再登入,
然後到 系統設定 → 鍵盤 → 輸入方式 → + → 繁體中文 → 無米蝦。
首次切換時會引導匯入你的 liu.cin 字表(需自備合法取得的嘸蝦米字表)。
重點
- 單一 app:輸入法內建 SwiftUI 設定視窗(輸入法選單 →「偏好設定⋯」)
- 打字、查碼(注音/拼音反查)、繁簡轉換、字頻學習排序、
,,指令、擴充表 — 無聯想/詞庫/語料,約 2MB - 輸入來源顯示名稱「無米蝦」
- 修正:游標選字窗寬度隨候選字數縮放、直向模式貼齊內容寬、切換視窗不再重播模式提示
完整變更見 CHANGELOG。
🤖 Generated with Claude Code