Skip to content

Releases: wolfprince12/squirrel-Panel

Squirrel Panel v2.0.4

Choose a tag to compare

@wolfprince12 wolfprince12 released this 06 Sep 01:15

v2.0.4 是一个纯 bug 修复版本,只做了一件事:修掉「应用适配」页删除已添加应用时面板必崩的问题。

问题现象

在「应用适配」页面,给任意应用点了最右侧的减号 → 面板立刻崩溃退出(macOS 崩溃报告:EXC_CRASH (SIGABRT),Abort trap: 6)。v2.0.3 上删除任意一个应用都会 100% 复现,不是偶发。

根因

Swift 运行时的「独占性检查」(Exclusivity Enforcement)拦下了同一次操作里的两次重叠访问:

ForEach($store.appOptions) { $entry in
  AppOptionRow(entry: $entry) {
    store.appOptions.removeAll { $0.bundleID == entry.bundleID }   // ← 必崩
  }
}
  • removeAll(where:)store.appOptions@Observable 类的存储属性)发起贯穿整个遍历的 modify(读写)访问
  • 谓词里的 entry.bundleID 来自 ForEach($store.appOptions) 派发的元素 Binding,读取时又对同一个属性发起一次 read 访问

两次访问重叠 → swift_beginAccess 检测到冲突 → fatalErrorabort()。崩溃栈第 7 帧的 key path getter for SettingsStore.availableSchemas/appOptions 与第 11–17 帧的 Binding.readValue() 完全对得上。

修复

  1. SettingsStore 新增 removeAppOption(bundleID:),删除逻辑收敛到模型层;
  2. 视图改为 store.removeAppOption(bundleID: entry.bundleID) —— bundleID 先求值成值类型再传参,读访问在调用前结束,读与写拆成两次不重叠的访问

写盘侧无需改动:compileSquirrelPatch() 本来就会按 originalAppBundleIDs 把被删条目清成 null,删除后点「应用并重新部署」照常生效。

界面零改动,其余功能与 v2.0.3 完全一致。

安装

  1. 下载下方 Squirrel-Panel-2.0.4.dmg,挂载后把 Squirrel Panel.app 拖到 Applications 覆盖旧版;
  2. 首次运行若被 Gatekeeper 拦截(本项目未做 Apple 公证),运行 DMG 内的 fix.command 放行即可;
  3. Homebrew 用户:brew upgrade --cask squirrel-panel

校验

  • swift build 通过;单元测试 64 例,2 例失败为 v2.0.3 既有问题(判脏逻辑为异步重算、测试同步断言),与本次改动无关。
  • DMG sha256:f3fe62bb07850cad1f6b2392b7a08eab9c86058c08de29f09ace79d75e4e17c2

Mr大狼 · 先求稳定,再求创新。

Squirrel Panel v2.0.3

Choose a tag to compare

@wolfprince12 wolfprince12 released this 28 Aug 10:38

Squirrel Panel v2.0.3 更新说明

本次更新聚焦内核(Core)健壮性,不改变任何界面

一、核心优化:行级「外科手术式」YAML 写入 + 写后回读校验

控制面板现在采用逐行手术式写入(移植自 TriFecta 的 YamlLineEditor),并对每一次落盘做写后回读校验(WriteVerifier):

  • 只动该动的行:仅改写本面板托管的键所对应的那一行,你手写在 squirrel.custom.yaml / rime_ice.custom.yaml 里的其它条目、注释、缩进与排版原样保留,不再被整文件重序列化冲刷掉。
  • 写后回读校验:配置写盘后会立即重新解析校验,确认每个键确实落地;若未落地则自动回滚到 .bak 备份,杜绝「写了但没生效」的静默失败。
  • 顺手修了一个真实 bug:原先删除某个键时,会把它紧邻的「节级注释」一并误删;现已改为只删键值行与更深层子块,你的手写注释一个字都不丢。

一句话:你用文本编辑器在补丁文件里手动加的注释、调的格式,控制面板不会再给你抹掉。

二、与 TriFecta 三色输入法共存说明(重要)

经实测:本控制面板与在鼠须管(Squirrel)基础上二创的 TriFecta 三色输入法可以共存,二者各自管理自己的配置,互不冲突。

但需注意一个上游风险:

  • 鼠须管本体 通过自动更新升级,而 TriFecta 没有 fork 跟随鼠须管同步升级,TriFecta 可能会被原版鼠须管输入法覆盖(二者共用同一套输入法骨架)。
  • 这并非本控制面板的问题,而是二创输入法需自行跟进上游升级。如使用 TriFecta,请关注其仓库是否跟随鼠须管发布同步更新。

三、安装

  1. 下载下方的 Squirrel-Panel-2.0.3.dmg
  2. 挂载后把 Squirrel Panel.app 拖入「应用程序」;
  3. 若已装旧版,先退出旧版再覆盖即可(用户配置不丢失)。

四、校验

DMG SHA256:

55ede768964f70a7d271d280384161f29df59ca9a99d458590e6484d7d59e0d9

Mr大狼 · 先求稳定,再求创新。

Squirrel Panel v2.0.2

Choose a tag to compare

@wolfprince12 wolfprince12 released this 25 Aug 08:26

鼠须管控制面板 · 紫毫纠错词典导出导入

这一版我做了一件之前从来没做过的事——让用户自己编辑自己的纠错词典

我自己是简体中文用户,紫毫纠错模型用的那一套出厂词表对我完全够用。但繁体中文用户怎么办?他们的候选词列表跟简体不一样——他们不会从我的出厂词典里捞到想要的词。

我跟他们一样想用紫毫纠错,可我不会做繁体纠错词典。那就让他们自己做。


一、紫毫纠错词典导出 / 导入

在「紫毫纠错模型」面板的「候选数量」之后,新增了「纠错词典」区块,提供三个按钮:

  • 导出词典…:把当前生效的纠错词表导出为文本文件
  • 导入词典…:选中你编辑过的文本文件,覆盖当前生效词表
  • 恢复出厂词典:万一改坏了,一键回到简体中文出厂词表

导入的文件必须是「拼音 <TAB> 权重 <TAB> 候选词」三列格式,每行一个词条。只需要改第三列——把简体中文候选词改成繁体中文候选词就好,拼音别动。

紫毫纠错词典

底层我把导入的词典写到独立文件 ~/Library/Rime/correction_pinyin_user.txt。lua 加载时优先读你这个文件,否则才回退到出厂词典。任何「应用并重新部署」都不会覆盖你导入的版本——它和出厂词典分两个文件,互不干扰。


二、品牌名收敛

页面文案统一了品牌名:

  • 「启用智能纠错」→「启用紫毫纠错」
  • 「纠错词表」→「纠错词典」

之前贪图顺口用过「智能」两个字,但既然定名紫毫,面板里也别再出现「智能」了。


安装

  1. 下载下方 Squirrel-Panel-2.0.2.dmg
  2. 打开 DMG,把 Squirrel Panel.app 拖进「应用程序」(应用名随系统语言:Squirrel Panel / 鼠须管控制面板 / 鼠鬚管控制面板)
  3. 首次打开若提示「无法打开」,去 系统设置 → 隐私与安全性 点「仍要打开」,或运行 DMG 中的 fix.command 进行解限。

确保你的 Mac 已安装鼠须管输入法(官方下载)。

校验

  • 构建产物:make dmg(release 构建,原生 arm64)
  • Lua 资源:随构建通过 check-lua 做 Lua 5.1 语法校验
  • 二进制已 xattr -cr + ad-hoc codesign

Mr大狼 · 先求稳定,再求创新。

Squirrel Panel v2.0.1

Choose a tag to compare

@wolfprince12 wolfprince12 released this 25 Aug 05:08

修复了一个小bug。不值一提

Squirrel Panel v2.0.0

Choose a tag to compare

@wolfprince12 wolfprince12 released this 23 Aug 17:06

鼠须管控制面板 · 紫毫纠错模型 + 苹果原生界面回归

憋了很久的一次大版本。这一版把界面、配色、纠错三件大事一次做完,并在 macOS 27 上做了完整验证。


一、回归苹果原生界面

之前为了在 macOS 27 上避开界面 bug,着急发版,曾把界面改成完全自绘的 HStack 布局。但心里一直念念不忘——还是想用苹果系统原生的界面

这一版花了很长时间,把界面重新搬回 NavigationSplitView 原生结构,并且在 macOS 27 上反复测试:

  • ✅ 消除了此前 macOS 27 下侧边栏顶部的灰色折叠胶囊占位
  • ✅ 消除了 detail 区域顶部那条半透明暗条
  • ✅ 标题栏出现系统原生的侧边栏切换按钮,行为符合系统预期

现在界面既是苹果原生骨架,又在最新系统上干干净净。


二、侧边栏重构

顺着调界面 UI,我把侧边栏重新规划了一遍:

  • 那只等着起名的小耗子(应用图标)
  • 版本号
  • 最重要的「应用并重新部署」按钮

全部收进了侧边栏。操作路径更短,主区域更专注。


三、用户自定义配色增强

应一位实际使用朋友的需求,这一版把「用户自定义配色」模块的能力加强了:

  • 最多可以同时启用 3 套用户自定义配色方案
  • 方案列表可以容纳更多方案,不再局促
  • 深色模式配色下拉列表里也可以直接选中自定义方案

外观与配色


四、Bug 修复

这一版一并修掉了一批老问题:

  • 外观面板卡顿:根因是字体族(474 项)在首帧同步构建阻塞。改为 popover + 懒加载搜索后,切换面板不再卡顿。
  • 取消自动备份:之前每次「应用并重新部署」都会自动生成一个 .bak 备份,时间久了很占地方。这一版改为纯手动备份,你需要时才备份。

备份与同步


五、输入方案可单独删除

一个小功能,但对有洁癖的人很重要。

非鼠须管本身自带的输入方案,现在可以单独删除了。这主要也是我自己的需求——五笔、繁体、双拼、九笔这些我完全不用的方案,再也不用硬留在电脑里。

方案删除


六、紫毫纠错模型(重点)

这是这一版最重要的东西。

之前我先试着把 AI-Rime 融合进来,但鼠须管的核心精神是不联网。我设计了一套用 Python + MLX 驱动、加载本地大模型来做 AI 增强的方案,折腾了整整三天。

结果很残酷:AI 纠错的速度就是达不到我想要的「随手感」,总有延迟。以我的打字速度,这种带延迟的纠错对我完全没意义

痛定思痛,我把做了三天的 AI 增强代码全删了,重新理清头绪:百度输入法、搜狗输入法、微信输入法,它们怎么做纠错?都没用 AI——因为「输入字母 → 引擎驱动 → 投喂大模型 → 大模型推理 → 返回词语」这一段,逻辑上就很难做到实时。

所以我参考商业大厂的做法,做了这个 紫毫纠错模型(Amethyst Correction Model)

  • 在鼠须管本身的模糊音基础上,配合万象语法模型的词频预判
  • 最少的代码 + 一个精简过的词典
  • 做到零延迟、随手出的纠错
  • 覆盖临近错键相近音混淆两类纠错场景

基于鼠须管的设计精神,这个纠错功能必须是可控的:可以开关,可以调整纠错词语出现的位置和数量。

紫毫纠错模型

大家可以试试看。


安装

  1. 下载下方 Squirrel-Panel-2.0.0.dmg
  2. 打开 DMG,把 Squirrel Panel.app 拖进「应用程序」(应用名随系统语言:Squirrel Panel / 鼠须管控制面板 / 鼠鬚管控制面板)
  3. 首次打开若提示「无法打开」,去 系统设置 → 隐私与安全性 点「仍要打开」,或运行DMG中的fix.command进行解限。

确保你的 Mac 已安装鼠须管输入法(官方下载)。

校验

  • 构建产物:make dmg(release 构建,原生 arm64)
  • Lua 资源:随构建通过 check-lua 做 Lua 5.1 语法校验
  • 二进制已 xattr -cr + ad-hoc codesign

Mr大狼 · 先求稳定,再求创新。

Squirrel Panel v1.4.0

Choose a tag to compare

@wolfprince12 wolfprince12 released this 18 Aug 15:01

Mr 大狼的鼠须管控制面板的开发核心是求稳——功能上都是在稳定的基础上,再考虑创新。

这一次大版本更新包括:

  • 面板重新规划功能划分:九个功能面板重新梳理,结构更清晰、入口更顺手。

    面板重新规划

  • 外观面板升级:增加更多字体控制功能,候选窗观感可调项更丰富。

    外观 - 配色方案

    外观 - 字体与布局

  • 新整合「词库与标点」面板:词库编辑与标点设置合二为一,并新增标点映射编辑功能模块。

    词库与标点

  • 「按键与行为」面板:新增全新候选窗按键编辑面板,可以自定义各种快捷键——这可能是很多朋友一直要的功能。

    候选窗按键编辑

  • 新整合「备份与同步」面板:同步功能全面升级,新增备份功能。

    备份与同步

    文件对比

  • ☁️ 小彩蛋:点击使用 iCloud 云盘做备份,会有小惊喜哦!


安装方式:下载 DMG,把「Squirrel Panel」拖到「应用程序」文件夹即可。本 App 与鼠须管输入法本体相互独立,卸载也不会影响输入法本身。

所有改动以 Rime 标准的 *.custom.yaml 补丁形式写入,不会覆盖你手写的其他配置;涉及删除或重置的操作前会自动生成 .bak 备份。

Squirrel Panel v1.3.2

Choose a tag to compare

@wolfprince12 wolfprince12 released this 17 Aug 11:14

本次更新专注于词库编辑同步功能升级,并新增独立的维护面板,把所有维护与修复类操作集中在一处。

主要更新

  • 词库图形化编辑

    • 在「词库与同步」面板中,每个可编辑词库右侧新增「编辑」按钮。
    • 支持在图形界面中直接管理 custom_phrase.txt 与用户级 *.dict.yaml 的词条:增删改查、搜索、排序。
    • 输入中文后拼音编码自动生成,不再需要手写编码。
    • 保存前自动生成 .bak 备份,保存后自动重新部署。

    词库图形化编辑器

  • 同步功能升级

    • 一键将同步目录指向 iCloud 云盘的 RimeSync 文件夹。
    • 面板会自动为同步目录设置鼠须管控制面板的文件夹图标,方便在 Finder 中一眼识别。
    • 同步目录输入框已拉长,点击目录选择器时会直接打开当前同步目录。

    词库与同步

  • 新增维护面板

    • 把原本分散在多个页面的修复、重置、诊断类操作集合到侧边栏独立的「维护」入口。
    • 包括:重新读取配置、修复配置缩进空白字符、恢复默认设置、恢复鼠须管默认设置、恢复雾凇拼音全部默认、部署 YAML 错误诊断。
    • 所有涉及删除或重置的操作前都会自动生成 .bak 备份。

    维护面板

其他改进

  • 雾凇拼音独立面板更名为「雾凇与万象」,自定义短语编辑已合并到「词库与同步」面板统一处理。
  • 侧边栏顺序调整为:外观、输入方案、雾凇与万象、词库与同步、按键与行为、应用适配、维护、关于。
  • 多处文案去「你」化,整体表述更加官方、统一。
  • 深色模式配色选择器拆分为「系统配色 / Mr大狼专属配色 / 用户自定义方案」三组,避免混淆。

下载

  • Squirrel-Panel-1.3.2.dmg(通用二进制,支持 Intel 与 Apple Silicon)

校验

所有改动写入 *.custom.yaml 补丁,不会覆盖手写的其他配置。
涉及删除或重置的操作会自动生成 .bak 备份。

Squirrel Panel v1.3.1

Choose a tag to compare

@wolfprince12 wolfprince12 released this 14 Aug 17:55

Squirrel Panel v1.3.1

调整了一下更新升级的策略,检查更新速度大为提升。

Squirrel Panel v1.3.0

Choose a tag to compare

@wolfprince12 wolfprince12 released this 14 Aug 17:23

Squirrel Panel v1.3.0

这次是一次大版本更新。

  • 整个软件的 UI 完全重构。
  • 配色方案卡片增加了动态悬停效果。
  • 在作者专属配色的基础上,新增用户自定义配色方案功能:可创建、编辑、保存、导入/导出多套方案,并确认一套作为当前使用方案。

不自夸有多好用了,用过了就知道有多好用了。

外观面板

自定义配色编辑器

Squirrel Panel v1.2.7

Choose a tag to compare

@wolfprince12 wolfprince12 released this 14 Aug 13:05

新增:开发者签名配色

鼠须管控制面板 v1.2.7 在外观页新增「大狼的配色方案」专属模块,内置三套由开发者设计的签名配色,点击色卡即可一键套用并重新部署。

外观面板 - 大狼的配色方案

新增配色

  • 只给白天 / First Light
    基于系统默认 Aqua 调整,首个候选字采用醒目的翠绿高亮,适合白天长时间输入。

  • 深夜一人 / Nocturne
    深色反色方案,首个候选字同样使用护眼绿色,降低夜间码字的眼部负担。

  • 淡淡心情 / Blush Whisper
    柔和粉色系,专为女性用户设计的轻量心情配色。

关于「只给白天」与「深夜一人」:这两套方案的出发点,是给长期敲键盘的人一对相对护眼的候选高亮色。绿色对眼睛的刺激较小,算是对自己这些年用眼过度的一点亡羊补牢——也包括作者本人。

其他改进

  • 专属配色同时出现在浅色模式与深色模式的选择列表中。
  • 将配色定义外置为 App Bundle 资源,避免发布构建时被 Swift 优化器静默消除。