您尚未登录。

公告

[通告] 本论坛迁移啦~请前往位于 https://forum.archlinuxcn.org/ 的新论坛。所有帖子和参与的用户都已经迁移。

您正在访问的是原 bbs.archlinuxcn.org 的静态存档。本页面的新地址位于 https://forum.archlinuxcn.org/t/topic/14214

#1 2025-07-19 02:22:59

busyo
会员
注册时间: 2024-10-17
帖子: 2

【分享】rime漏字现象以及 Caps_Lock 导致无法返回中文输入的临时解决方案

该方案仅在 KDE6 和 Hyprland 下测试过,不保证没有其他问题发生

目前漏字主要是在 steam 发生,Caps_Lock 在 KDE 下偶发, Hyprland 必现

演示:

漏字修复
steam漏字修复演示

大写锁定修复(Hyprland环境)
steam漏字修复演示

原理是修改 librime 引擎对输入的处理逻辑

* 修改了 engine.cc 中 ProcessKey 函数处理完 ProcessKeyEvent 之后还存在的无法处理的内容的补充处理,主要是拦住中文输入时 a-z A-Z 的上屏
* 修改了 ascii_composer.cc 中 ProcessCapsLock 函数调用 SwitchAsciiMode 方法切换 ascii 输入状态(英文输入)的传参,从 librime 维护的 caps 掩码状态改为新增的专门定义用于记录大小写锁定状态的 caps_lock_pressed_  变量

补丁文件:
https://github.com/busyoGG/librime-patc … nput.patch

完整步骤:

# 首次执行 克隆 librime 仓库
git clone https://github.com/rime/librime.git
cd librime

# 切换到特定提交(patch基于该提交制作
git checkout 1a1fbbe

# 首次执行 引入插件
cd plugins
git clone https://github.com/hchunhui/librime-lua
git clone https://github.com/lotem/librime-proto
git clone https://github.com/rime/librime-predict
git clone https://github.com/lotem/librime-octagram
cd ..

# 首次不执行(按需执行) 用于重置代码
git reset --hard 1a1fbbe

# 应用补丁
git apply path/to/fix_input.patch

# 编译安装
rm -rf ./build && make -j$(nproc) && sudo make install

已知的问题

如果在大写锁定的情况下才启用输入法会造成无法输入中文,不过一般不会这样操作吧(

正式的修复还是等原作者更新,这只是个临时方案(

离线

#2 2025-07-19 09:56:50

Bryan2333
会员
注册时间: 2023-01-19
帖子: 154

Re: 【分享】rime漏字现象以及 Caps_Lock 导致无法返回中文输入的临时解决方案

有考虑提交PR到上游吗?

离线

#3 2025-07-19 19:30:11

busyo
会员
注册时间: 2024-10-17
帖子: 2

Re: 【分享】rime漏字现象以及 Caps_Lock 导致无法返回中文输入的临时解决方案

提了 PR,不过作为临时解决方案,这个 patch 对源代码的修改比较粗暴(

离线

页脚