目前Linux下中文输入法的折腾记录
2019-10-10:创建此文
2019-11-11:补充fcitx5-rime的部署问题、fcitx在KDE plasma下无法设置WIN+空格
切换输入法的问题
2019-12-21:补充服务器
-客户端
模式下Emacs使用ibus的办法
正文:吐槽
最近更新了一下系统,然后发现ibus
在Emacs
中无法输入了。仔细分析了一下,如果直接启动/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
的使用方法如下:
- 环境变量设置文件为
/etc/profile.d/ibus.sh
,内容如下:
#!/bin/bash export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XMODIFIERS=@im=ibus
2.还需要在Emacs
的systemd
的服务文件中修改
需要将文件/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
作者你好!最近折腾中文输入法真是折腾得我头大,网上找了很多资料不能解决问题,我看到你和我有一样的困惑啊!我特想和您交流一下关于输入法,尤其是 fcitx 的问题,请问您有兴趣吗?我 QQ 40488630。
您好。有什么问题就在这里提出来吧,我已经不用QQ很久了。我对Linux下的输入法也是怨念丛生,但也只是普通用户,可能很多问题也解决不了,不过可以互相交流一下。