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的模式,配置文件结合了manateelazycattumashu两位的办法。目前的配置文件如下:

(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 XMODIFIERS=@im=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
    Environment=XMODIFIERS=@im=ibus
    Environment=GTK_IM_MODULE=ibus
    Restart=on-failure
    #
    [Install]
    WantedBy=default.target

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