arch linux中文环境¶
在 arch linux 中,我使用 archlinux Sway图形桌面 桌面,并且使用 小企鹅输入法fcitx 结合 Linux中文显示 来完成工作环境:
中文显示¶
设置字符集支持 Linux环境的本地化配置 , 配置
/etc/locale.gen
和/etc/locale.conf
:
# set locale
echo "en_US.UTF-8 UTF-8" | sudo tee /etc/locale.gen
sudo locale-gen
# set /etc/locale.conf
localectl set-locale LANG=en_US.UTF-8
安装文泉驿中文字体:
pacman -S wqy-microhei
中文输入法¶
( 我现在不使用 )安装 小企鹅输入法fcitx + 中文addons (依赖安装 fcitx5-qt ,所以安装软件非常大,有321MB):
pacman -S fcitx5 fcitx5-chinese-addons
( 如果在x86平台,我现在就使用这个rime输入法 当前在 MacBook Air上运行Arch Linux 实践就使用这个方法) 使用 小企鹅输入法fcitx + Rime引擎(比较小巧,112MB) (ArchLinux没有提供ARM版本Rime,只有x86版本):
pacman -S fcitx5 fcitx5-rime
安装
fcitx5-gtk
支持firefox输入,见下文:
pacman -S fcitx5-gtk
配置中文输入法¶
启用fcitx的输入需要配置环境变量,标准方式是修改
/etc/environment
(通用于各种 Shell Atlas ),添加以下配置
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus
按照 sway - i3兼容Wayland compositor 配置标准方法,先复制全局配置到个人配置目录下:
mkdir -p ~/.config/sway
cp /etc/sway/config ~/.config/sway/
在个人配置定制文件
~/.config/sway/config
中添加一行:
#以下两种方法可能都行
#exec_always fcitx5 -d --replace
exec_always --no-startup-id fcitx5 -d
安装fcitx5-configtool:
pacman -S fcitx5-configtool
备注
我觉得只要做好依次配置调整,将配置文件保存备用就可以了。配置文件是 .config/fcitx5
目录下文件
目前 MacBook Air上运行Arch Linux 实践我是安装了这个软件包,然后通过 fcitx5-configtool
配置添加 rime
输入法,就可以使用 ctrl+space
切换中文输入法
配置¶
执行
fcitx5-configtool
配置,有可能报错: 找不到wayland
和xcb
的QT插件,这是因为QT程序需要:安装
qt5-wayland
设置
/etc/environment
QT_QPA_PLATFORM=wayland
使用¶
使用
qterminal
较为方便,fcitx5对于QT5输入支持很完美,所以在sway环境使用qterminal输入中文还是很顺利的chromium依然没有解决中文输入,所以还是如 运行sway窗口管理器 一样使用firefox来支持中文输入。 但是这次遇到奇怪问题,就是fcitx5的候选字不显示
需要安装
fcitx5-gtk
才能在firefox中使用fcitx5输入法时候显示”候选字符”,否则看不到候选字词就只能盲打输入中文foot
终端没有输入框,根据 arch linux: Fcitx5 说明,目前arch linux稳定版本还没有集成sway-im
包所提供的补丁,这个包需要通过 Arch Linux AUR 安装:
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yay -S sway-im
备注
sway-im
是用来取代 sway
的,所以最后提示 sway-im-1:1.9-2 and sway-1:1.9-5 are in conflict. Remove sway? [y/N]
回答 y
替换以后,再次使用 sway
(也就是补丁过的 sway-im
),就可以在 foot
中看到中文输入候选词框了,非常方便
alacritty¶
alacritty 虽然非常轻量级并且速度很快,但是fcitx5中文输入时无法显示选词,只能盲打输入中文 - 中文显示和输入是支持的,就是无法选词非常懊恼。
备注
Fcitx5 and Terminal 讨论了终端支持的配置,其中提到 sway
不支持选词框(除非程序在Xwayland中显示选词框)。QT应用不支持Wayland text-input-v3协议,所以需要使用DBus(设置 QT_IM_MODULE=fcitx5
)。类似chromium也不使用text-input-v3。
参考 alacritty无法使用输入法问题 提供了解决思路,就是将alacritty执行命令修订成:
env WINIT_UNIX_BACKEND=x11 alacritty
这样渲染后端改为x11就行切换出中文输入法
此时提示:
thread 'main' panicked at 'Failed to initialize X11 backend: XOpenDisplayFailed', /build/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.27.4/src/platform_impl/linux/mod.rs:684:26
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
我没有近一步实践,而是改为使用 qterminal
chrome¶
我一直没有解决chrome中文输入问题,不过参考 Fcitx Wayland(Sway) Support #292 说明:
chrome在sway(wayland)不能输入中文的bug和fcitx5无关,是由于chrome在ozone wayland平台不支持gtk im模块导致的: Issue 1183262: Add support for gtk im module on ozone wayland platform
参考 无法在Chrome(Wayland)中使用fcitx5 #263 提供的workroudn方法:
系统安装
gtk4
,然后运行 chrome/chromium 时使用参数--gtk-version=4
chromium -enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
不过我尝试没有成功 由于可以使用firefox作为主力浏览器,需求不高,我暂时放弃尝试
有提示chrome安装kimpanel扩展,然后就能够在Gnome环境输入(感觉这个可能可以,但未尝试)