V2EX 11月05日 10:14
Squirrel 输入法实现全局 ASCII 模式记录
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

由于 macOS 系统设置已不支持全局配置 InputConnection,部分用户需要 Squirrel 输入法来记录全局的 ASCII 模式,以确保在任意应用和输入框中都能获得一致的 ASCII 输入体验。此方案通过在 squirrel.yaml 配置文件中新增 `global_ascii` 字段来控制全局 ASCII 模式的记录。当 `global_ascii` 设为 `true` 时,Squirrel 将使用 UserDefaults 记录 ASCII 模式,并赋予其最高优先级,这可能会覆盖应用的特定 ASCII 模式配置。此功能作为一种临时解决方案,旨在满足用户对中英输入模式全局一致性的需求。

🎯 **全局 ASCII 模式记录需求**: 鉴于新版 macOS 不再支持“所有文档使用同一输入源”的全局配置,部分用户希望 Squirrel 输入法能记录并维持全局一致的 ASCII 输入模式,以提升跨应用使用的可预测性。

🛠️ **`global_ascii` 配置项**: 解决方案的核心是在 Squirrel 的 `squirrel.yaml` 配置文件中引入一个名为 `global_ascii` 的布尔字段。当此字段设置为 `true` 时,Squirrel 将启用全局 ASCII 模式记录功能。

💾 **UserDefaults 优先级**: 启用 `global_ascii: true` 后,Squirrel 会利用 `UserDefaults.standard` 来存储 `_user_global_ascii_mode` 键值对,记录当前的 ASCII 模式。每次创建新的 InputConnection 时,该记录值将具有最高优先级,确保全局设置的生效。

⚠️ **潜在影响与权衡**: 启用全局 ASCII 模式可能会导致用户在 `app_options.ascii_mode` 中为特定应用进行的 ASCII 模式配置失效。此实现优先考虑全局配置的一致性,并欢迎对此权衡有更好解决方案的讨论。

🚀 **Fork 版本与持续推进**: 针对此需求,作者提供了其 fork 版本的 Squirrel(PBK-B/squirrel),并配置了 CI 自动构建和发布。此 PR 是对上游共享实例观点的替代实现,旨在满足当前用户的迫切需求,并表示愿意持续推进此功能的完善。

问题:在最新的 macOS 系统设置已不支持配置全局使用同一个 InputConnection ("Use one input source in all documents" Deprecated ),故部分用户需要 squirrel 实现前端记录全局的 ascii_mode 以实现在任意应用任意输入框中有可预期的 ascii 模式输入体验。

相关问题:

#145

#999

#201

rime/librime#294

解决方案:在了解整体问题上下文后,决定通过以下方式实现

在 squirrel.yaml 配置文件中增加 global_ascii: bool 字段用于控制是否全局记录 ascii_mode ,其默认值为 false当 global_ascii 为 true 时 squirrel 会使用 UserDefaults.standard 记录以 _user_global_ascii_mode 为 key 记录 ascii_mode 并在每次创建新的(或重新激活旧的) InputConnection 时读取并以此设置的值为 ascii_mode 最高优先级可遇见的问题:使用该功能后可能会导致忽略用户配置的 app_options.ascii_mode 字段失效(编者是能接受在明确启用全局 ascii_mode 模式后应该以全局配置项为准的配置优先级的,如果有更好的实现方式或想法欢迎留言一起讨论实现,我愿意为推进此功能持续工作)

注: 作为一个 workaround 方案提交的 PR #1054 并没有被上游接受(叠甲,不是抱怨。我也认同上游共享实例观点可以继续推进)只是当前实现方式在完美方案实现之前的一个替代实现方案以及能够满足我系统 全局记录 中/英 切换模式的需求了。有同样需求的小伙伴此阶段可以试试我的 fork 版本 https://github.com/PBK-B/squirrel由于自己有需求所以会持续同步并已经配置 CI 自动构建发布版本,下载地址 https://github.com/PBK-B/squirrel/releases

如果有帮助到你可以评论一下呀(鼓励我继续尝试推进上游提出的共享实例。咕咕咕咕~),完结撒花 🎊

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Squirrel macOS 输入法 ASCII 模式 全局配置 Input Connection UserDefaults rime librime PBK-B/squirrel
相关文章