手上的7代低压i5笔记本已经8年了,LTSC2019带不动了,遂安装心心念念的ChromeOS Flex。安装完是我想要的样子,轻量、高效。不过子系统输入法方面倒是一番折腾,有必要记录一下过程。
以下内容为markdown格式,没有图,复制到markdown编辑器阅读体验更佳。
一开始使用的是fcitx,参考的教程主要是Fydeos官方教程:
[# 在 Linux 子系统中安装并使用中文输入法](https://fydeos.com/help/knowledge-base/linux-subsystem/setup/setup-linux-input-methods/)
和
[# 在 Chromebook 中配置 Linux 子系统的中文环境并安装中文输入法](https://sslover.me/2022/05/15/use-zh-cn-locale-in-linux-on-chromebook/)
配置之后确实能用,但先不提上古界面和上古词库,有一个致命问题:开机一段时间后不弹候选框,而且输入一个字母就瞬间匹配第一个字打上去,根本无法使用。尝试了一些Linux下fcitx不弹候选框的解决方案,无果。便考虑更换为ibus。
我使用的是ibus-libpinyin这个包,不推荐ibus-pinyin的原因是其双拼方案有bug——双字母韵母输入有问题(如“an”无法识别而必须输入“aj”才能识别为“an”)。使用lib-rime应该也是可以的[Linux 下 rime 输入法小鹤双拼配置](https://blog.moe233.net/posts/3c46778c/)。输入法的选择见:[IBus - Arch Linux 中文维基](https://wiki.archlinuxcn.org/wiki/IBus)
```
# 先删除fcifx
rm -r ~/.config/fcitx
sudo apt-get purge fcitx* fcitx-lib*
# 安装和配置软件包
sudo apt-get install ibus ibus-libpinyin
im-config -s ibus
ibus-setup
```
改完配置需要重启一下才生效:
```
ibus restart
```
添加自启动(注意参数不要添加 --restart,会导致启动两个实例互相冲突占cpu或者不起作用; log项自行选择开启)
```
export XDG_CURRENT_DESKTOP=KDE
if ! pgrep -fl ibus-daemon > /dev/null; then
# echo "Starting ibus-daemon" >> /home/<your user name>/WorkingFiles/logfile.log
ibus-daemon --replace --daemonize
else
# echo "ibus-daemon already running" >> /home/<your user name>/WorkingFiles/logfile.log
fi
```
添加环境变量
新建一wps.conf,具体的值如下:
```
GTK_IM_MODULE=ibus
XMODIFIERS=@im=ibus
QT_IM_MODULE=ibus
```
最后copy回系统目录
```
sudo cp ~/wps.conf /etc/environment.d/wps.conf
```
重启,启动linux container,查询env:
```
env | grep GTK_IM_MODULE
env | grep XMODIFIERS
env | grep QT_IM_MODULE
```
得到如wps.conf所示参数。
## 为何需要.conf设置环境变量
如果不用wps.conf设置环境变量,而通过自带文本编辑器打开“Linux files - .sommelierrc“ (没有的话用touch建一个),添加以下内容:
```
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
```
会发现存在问题:查询环境变量会发现“GTK_IM_MODULE”等值和.sommelierrc中的不一样,仍然是默认值。说明启动过程中ibus-daemon拿到过正确的环境变量,但之后又被改了。因此还需要参考Fydeos的中文输入法教程,仍然设置环境变量。
可能一劳永逸的解决方法:设置用户im-setting,优先级最高。
## 曾经以为有用但其实并无卵用的操作
先new一个home目录下的自启动文件,方便等下编辑。在termina中输入:
```
touch ~/.config/autostart/ibus-autostart.desktop
```
用ChromeOS的文件管理器找到“Linux files(勾选“show hidden fies”)- .config - autostart - ibus-autostart.desktop,使用自带文本编辑器打开,输入以下内容
```
[Desktop Entry]
Name=ibus-autostart
Exec=ibus start
TryExec=ibus
Type=Application
StartupNotify=true
NoDisplay=false
X-GNOME-AutoRestart=true
X-GNOME-Autostart-Phase=Initialization
X-KDE-autostart-phase=1
```
然后保存,回到termina,继续输入:
```
cd /etc/xdg/autostart
sudo cp ~/.config/autostart/ibus-autostart.desktop ibus-autostart.desktop
```
之后再复制一份类似的:
```
[Desktop Entry]
Name=ibus-autostart2
Exec=ibus-daemon --replace --restart
TryExec=ibus-daemon
Type=Application
StartupNotify=false
NoDisplay=true
X-GNOME-AutoRestart=true
X-GNOME-Autostart-Phase=Initialization
X-KDE-autostart-phase=1
```
继续copy到系统目录:
```
sudo cp ~/.config/autostart/ibus-autostart2.desktop ibus-autostart2.desktop
```
## Reference
所需软件包参考:[# 安装ibus中文输入法(Linux/Ubuntu)](https://zhuanlan.zhihu.com/p/132558860)
配置过程和疑难问题参考1:[# linux(ubuntu22)安装IBus中文输入法及各种问题解决](https://blog.csdn.net/qq_38222947/article/details/131140492)
配置过程和疑难问题参考2:[# 安装配置ibus输入法](https://zhuanlan.zhihu.com/p/582900290)
创建自启动文件:[# Linux设置软件开机自启动的三种方式(中标麒麟、银河麒麟、ubuntu)](https://blog.csdn.net/qq_45164331/article/details/122410141)
编写自启动文件内容:[今天更新了gnome桌面到最新版,ibus不能开机自启动了](https://bbs.archlinuxcn.org/viewtopic.php?id=10426)
检查环境变量:[# 检测到设置了GTK_IM_MODULE和QT_IM_MODULE而且Wayland输入法前端正在正常工作,推荐不设置GTK_IM_MODULE和QT_IM_MODULE从而使用Wayland输入法前端](https://blog.csdn.net/weixin_44022122/article/details/144507561)
输入法正常启用问题参考(有关环境变量横跳的问题):https://www.cnblogs.com/zisz/p/8833038.html