目前Linux下中文输入法的折腾记录

2019-10-10:创建此文 2019-11-11:补充fcitx5-rime的部署问题、fcitx在KDE plasma下无法设置WIN+空格切换输入法的问题 2019-12-21:补充服务器-客户端模式下Emacs使用ibus的办法

正文:吐槽

最近更新了一下系统,然后发现ibusEmacs中无法输入了。仔细分析了一下,如果直接启动/usr/bin/emacs,是可以正常输入的, 但是若以systemctl --user enable emacs的方式启动Emacs服务,然后用/usr/bin/emacsclient -n -c来启动,则无法完成 输入,即使在.xprofile中添加了语言相关的环境变量也一样。 在这种情况下,我先尝试了一下启用pyim这一运行于Emacs之中的输入法。这是一年之后,我再次安装和配置这种输入法,看上去一切都很顺利, 但是使用双拼时发现如果需要选字,目前该输入法会出现断字错误,于是暂时搁置了这一想法。 然后我尝试卸载了ibus,转而安装了fcitx,使用的时候发现在mendeley中无法输入中文,另外,fcitx的自然码并不好用,规则不全, 词库偏小,而且fcitx并不兼容wayland下运行的gnome,无法兼顾部分需求,于是也放弃了。 听闻fcitx5支持wayland,也改善了软件兼容性,于是又尝试了下这个版本。然而很遗憾,不知什么原因,这个版本在我的机器上用自然码完全 无法输入,使用fcitx5-rime又发现修改文件后重新部署根本无法完成,在删除build文件夹再点击部署按钮后,新产生的文件夹完全是空的, fcitx5-rime只能启用明月拼音,无法启用其它输入法。无奈之下,也只有卸载了。 最后还是回到了ibus上,关于Emacs的输入,采用了pyim+liberime+rime的模式,配置文件结合了manateelazycat tumashu两位的办法。目前的配置文件如下:
(setq load-path (cons (file-truename "~/.emacs.d/") load-path))

(require 'pyim)
(require 'posframe)
(require 'liberime)

(setq default-input-method "pyim")
(setq pyim-page-tooltip 'posframe)
(setq pyim-page-length 7)

(liberime-start "/usr/share/rime-data/" (file-truename "~/.emacs.d/pyim/rime/"))
(liberime-select-schema "zrm2000")
(setq pyim-default-scheme 'rime)
其中~/.emacs.d/pyim/rime文件夹拷贝自~/.config/ibus/rime,编译之后的liberime.so文件放置位置在~/.emacs.d中。 目前唯一不习惯的地方是无法实现shift键切换中英文。

fcitx5-rime的部署问题

最近又试了一下fcitx5,虽然最后卸载了,但是注意到了rime要能部署,需要满足的条件:把rime的配置文件夹换个位置。 在fcitx 4.x时代,rime的配置文件放置路径是: ${HOME}/.config/fcitx/rime 然而,fcitx5的rime配置路径发生了更改: ${HOME}/.local/share/fcitx5/rime 所以问题很简单了,把配置文件换个地方就好了。 我到现在也没看到fcitx5的文档,也没在网上搜到提到这一变更的说明,能够找到,纯属偶然,怨念中......

KDE plasma下用fcitx时无法设置“WIN+空格”切换激活/非激活输入法的解决

最近有人告诉我在KDE plasma桌面的systemsettings下的kcm-fcitx/kcm-fcitx5中无法设置WIN+空格或称之为SUPER_SPACE切换激活/非激活输入法状态,我试了试,确实不行,但这并不意味着不能用这个热键来切换,只是需要手工修改配置文件而已。 解决办法是: 先用pkill -9 fcitx结束掉fcitx进程,然后进入fcitx配置文件的目录,再修改config文件,在其中加入: TriggerKey=SUPER_SPACE 保存之后重新登录桌面即可。

Emacs中使用ibus的方法

服务器-客户端模式使用Emacs时,ibus的使用方法如下:
  1. 环境变量设置文件为/etc/profile.d/ibus.sh,内容如下:
    #!/bin/bash
    export GTK_IM_MODULE=ibus
    export QT_IM_MODULE=ibus
    export [email protected]=ibus
    2.还需要在Emacssystemd的服务文件中修改 需要将文件/usr/lib/systemd/user/emacs.service内容修改为:
    [Unit]
    Description=Emacs text editor
    Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
    #
    [Service]
    Type=simple
    ExecStart=/usr/bin/emacs --fg-daemon
    ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
    Environment=SSH_AUTH_SOCK=%t/keyring/ssh
    [email protected]=ibus
    Environment=GTK_IM_MODULE=ibus
    Restart=on-failure
    #
    [Install]
    WantedBy=default.target

    然后重启此服务。 此方法来源于nykma

2 Replies to “目前Linux下中文输入法的折腾记录”

  1. 作者你好!最近折腾中文输入法真是折腾得我头大,网上找了很多资料不能解决问题,我看到你和我有一样的困惑啊!我特想和您交流一下关于输入法,尤其是 fcitx 的问题,请问您有兴趣吗?我 QQ 40488630。

    • 您好。有什么问题就在这里提出来吧,我已经不用QQ很久了。我对Linux下的输入法也是怨念丛生,但也只是普通用户,可能很多问题也解决不了,不过可以互相交流一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

ninety five ÷ = nineteen