1 Star 0 Fork 11

coder_lw / wiki

forked from deepinwiki / wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
输入法.md 8.31 KB
一键复制 编辑 原始数据 按行查看 历史
htqx 提交于 2023-08-08 19:44 . 例子改为真实内容

linux输入法

前言

linux的输入法很多都不错,但是有一个问题,那就是很多麻烦。毕竟linux不是中国人作开发主力,外国人不太理解输入法的重要性。

ibus

ibus 和 fcitx 是 linux 中的两个输入法框架。注意,框架包含不同的输入法。ibus 被官方推荐,但是却没有 fcitx 好用,这就有点莫名奇妙了。那么为何官方非要推荐 ibus 而不是 fcitx 呢?我也不是很理解,但是至少可以说明 ibus 也有它的长处。

注意linux的输入法并不是一定和系统捆绑的,它是一个零散的组件,你可以拆开来,独立安装。当然,不好的地方就是经常就搞到它不能使用了。普通用户还是希望桌面系统自己就能整合完美。

总之就是这么的状况。学习一下怎么配置,万一你的系统用不上输入法,还能自己配置一下。

首先,输入法是独立的框架,这个框架下面又有多个输入法。因为 linux 发展过程中,出现过 gtk 和 qt 这两类窗口技术,实质上就要分别配置他们。而因为重重历史原因,总之要理解他们有点困难,下面是实际的操作:

安装

sudo apt install ibus ibus-rime

rime 是一个很流行的拼音输入法,中文名叫小狼毫。

以上命令安装 ibus 框架和对应的 rime 输入法。

安装之后还要让桌面环境使用该输入法,有时候它并不能识别,需要配置环境参数,这些参数写在 ~/.profile 里面即可:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export XIM=ibus
export XIM_ARGS="ibus-daemon -dx"

启动

ibus-daemon -dx # 后台启动,并使用xim模式

有时候,桌面环境并不会启动ibus后台服务,如果后台服务不启动,输入法是无法运行的,而且必须要用 x 参数,表示 xim 模式,否则 qt 程序貌似无法使用,我也不知道咋回事。如果你的桌面安装完后,重启可以正常,就不需要自己启动。否则你需要在桌面环境的设置里面添加一个自动启动本条命令的语句。直接写 ~/.bashrc 里面也是可以的。

配置

ibus-setup # 开启配置面板

nano ~/.config/ibus/rime/build/luna_pinyin_simp.schema.yaml # 直接修改配置文件

配置文件自己翻译一下单词,就可以猜到大概作用,前提是你比较熟悉这个输入法后。

另外,输入法在右下角也可以设置,但不是所有桌面都提供设置面板。设置选项也可能不全。

rime 输入法,在输入汉字的时候,按 f4 可以简单修改设置,选择朙月拼音・简化字,这个是简体中文的,其他是繁体,敬请留意。

有时候,控制面板可能并不好用,或者想更加完整的设置rime,就要修改配置文件。

rime的配置文件在~/.config/ibus/rime/目录下。

rime目录:

  1. ibus_rime.yaml 这个文件可以控制一般的设置选项,如选词的排列方式,竖排还是横排。
  2. bulid/luna_pinyin_simp.schema.yaml 这个文件可以配置rime其中一个输入方案明月拼音简体字,可以配置选词的个数等。

样例:

# ibus_rime.yaml
style:
  horizontal: true
# true表示横排,false表示竖排

如果要修改输入法方案的内容,最好通过补丁的方式,在rime根目录建一个”文件名.custom.yaml“的补丁文件,这个补丁文件会修补方案文件的对应内容。

为什么要这样做,因为build会随着软件的更新而覆盖掉。

如:rime/build/luna_pinyin_simp.schema.yaml 的配置补丁为:rime/luna_pinyin_simp.custom.yaml

然后修补的内容的方法:

# luna_pinyin_simp.schema.yaml 原文件内容:
# menu:
#   page_size: 5
# switches:
#   - name: ascii_mode
#     reset: 0
#     states: ["中文", "西文"]
#   - name: zh_simp
#     reset: 1

# luna_pinyin_simp.custom.yaml 修补成:
patch:
   "menu/page_size": 7 # 将选词个数从5个改成7个
   "switches/@0/reset": 1 # 默认英文输入 

改完配置文件,右键右下角的输入法图标,选择部署即可让配置生效。

# 语法
# 层次用 / 分隔
# - 开始是列表项
# 其他是普通项
patch:
  "一級設定項/二級設定項/三級設定項": 新的設定值
  "含列表的設定項/@0": 列表第一個元素新的設定值
  "含列表的設定項/@last": 列表最後一個元素新的設定值
  "含列表的設定項/@before 0": 在列表第一個元素之前插入新的設定值(不建議在補靪中使用)
  "含列表的設定項/@after last": 在列表最後一個元素之後插入新的設定值(不建議在補靪中使用)
  "含列表的設定項/@next": 在列表最後一個元素之後插入新的設定值(不建議在補靪中使用)

词库

增加自定义词库是提升输入法易用性的最有效方法之一。

# luna_pinyin_simp.custom.yaml
patch:
  "custom_phrase/enable_sentence": true #是否開啓自動造句
  "custom_phrase/enable_encoder": true #是否開啓自動造詞
  "custom_phrase/enable_completion": true #逐渐提示

fcitx

fcitx 是一个比较好用的输入法框架,但是它也存在一个bug,它有时候会出现漏字母的情况,比如你输入汉字的中间,无端端给你输入一个 i,n 什么的,然后输入就不连续了。原因不详,而且也不是一定会发作,也不知道导致bug的原因。重启也无效。只能想办法完全删除,然后重装。

sudo apt install fcitx-rime fcitx-config-gtk

配置方法和 ibus 差不多,可以参考一下,但比 ibus 容易配置很多,一般并不需要修改什么配置文件(除非你之前修改了,要改回来,变成fcitx)。

export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export XIM=fcitx

问题解答

一、gnome 下的配置

gnome 桌面环境集成了 ibus 的输入面板,我不太理解它这样做有什么价值,因为在那个面板里面根本就没有输入法,还是要另外安装 ibus-rime。 当你安装完毕之后, 需要在ibus-setup 面板添加 rime 输入法, 然后去系统面板里面再次添加 rime 输入法。

最后,貌似 gnome 的 ibus 输入法存在问题,它不采纳 ibus-setup 的配置结果,而它自身无法弹出输入法的配置面板,哪怕用 dconf-editor 打开配置,也和 gnome 的 ibus 无关。因此,几乎不可用。(希望有人告之原因,反正我自己测试是不行的,但是换基于gnome修改而来的 cinnamon 反而没有这个问题)。

但是可以直接修改~/.config/ibus/rime下的配置文件来修改配置。

二、wine 输入无法弹出面板

这里貌似也是个 bug,你可以开启一个记事本,激活输入法后,移动到 qq wine 上,就能够输入汉字了。

三、使用 .pam_environment 来设置变量

.bashrc 是 bash shell (默认的命令行)使用的配置文件。.profile 也差不多。如果你用的是其他 shell,比如 fish。那么你可能就会将设置环境变量这项任务,放在 ~/.pam_environment 里面。这是一个较少使用的配置文件,但是它被多个 shell 支持。它和 /etc/environment 都属于 pam_env.conf 的配置规范。

简而言之:

# fcitx

# ibus
GTK_IM_MODULE DEFAULT=ibus
# 注意,不要写成 =“@im=ibus”
XMODIFIERS DEFAULT=@im=ibus
QT_IM_MODULE DEFAULT=ibus
XIM DEFAULT=ibus
XIM_PROGRAM DEFAULT=ibus

四、kde 环境下为啥 ibus-rime 不能调整字体大小?

解决方法是选择 kde 专用面板,配合 kde 任务栏上的输入法小部件(就是一个铅笔那个),重启之后就能正常使用。

具体代码是:

# ibus 的后台服务,设置为开机启动即可
# 不知道怎么设置?你在 kde 的[系统设置]、[开机与关机]、[自动启动] 里面添加
ibus-daemon -drx --panel=/usr/lib/kimpanel-ibus-panel

参考

  1. rime官方定制指南: https://github.com/rime/home/wiki/CustomizationGuide
  2. rime 配置指南:https://github.com/rime/home/wiki/RimeWithSchemata
  3. 配置项说明:https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md
  4. 搜狗词库转换方法:https://ssnhd.com/2022/01/06/sogou-dict/
  5. Rime Squirrel 鼠须管输入法配置详解:https://ssnhd.com/2022/01/06/rime/
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/coder_lw/wiki.git
git@gitee.com:coder_lw/wiki.git
coder_lw
wiki
wiki
master

搜索帮助