[通告] 本论坛迁移啦~请前往位于 https://forum.archlinuxcn.org/ 的新论坛。所有帖子和参与的用户都已经迁移。
您正在访问的是原 bbs.archlinuxcn.org 的静态存档。本页面的新地址位于 https://forum.archlinuxcn.org/t/topic/14214。
该方案仅在 KDE6 和 Hyprland 下测试过,不保证没有其他问题发生
目前漏字主要是在 steam 发生,Caps_Lock 在 KDE 下偶发, Hyprland 必现
演示:
漏字修复
大写锁定修复(Hyprland环境)
原理是修改 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已知的问题
如果在大写锁定的情况下才启用输入法会造成无法输入中文,不过一般不会这样操作吧(
正式的修复还是等原作者更新,这只是个临时方案(
离线
有考虑提交PR到上游吗?
离线
提了 PR,不过作为临时解决方案,这个 patch 对源代码的修改比较粗暴(
离线