Xpra远程ibus中文输入
备注
本文实践环境在远程访问 树莓派Raspberry Pi 400 上运行的 Raspbery Pi OS(Raspbian) ,通过 X持久化远程应用Xpra 图形环境访问。实践还存在问题,待后续补充完善
结合 xpra
修改
~/.bashrc
添加:export XMODIFIERS=@im=ibus export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus
重新登陆一次系统,然后检查 env | grep IM
可以看到环境变量已经生效:
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XDG_RUNTIME_DIR=/run/user/502
启动
xpra
环境:xpra start :11 && DISPLAY=:11 screen -S xpra
登陆到
screen
中:screen -R xpra
启动 ibus
放入后台:
ibus-daemon -drx
此时检查进程:
ps aux | grep ibus
可以看到:
huatai 20125 0.3 0.2 71388 8160 ? Ssl 22:39 0:03 ibus-daemon -drx
huatai 20129 0.0 0.1 31740 4356 ? Sl 22:39 0:00 /usr/libexec/ibus-memconf
huatai 20130 0.1 0.8 117776 33296 ? Sl 22:39 0:01 /usr/libexec/ibus-ui-gtk3
huatai 20132 0.3 0.5 67852 20104 ? Sl 22:39 0:03 /usr/libexec/ibus-extension-gtk3
huatai 20134 0.0 0.4 56296 17636 ? Sl 22:39 0:01 /usr/libexec/ibus-x11 --kill-daemon
huatai 20139 0.0 0.1 40356 4076 ? Sl 22:39 0:00 /usr/libexec/ibus-portal
huatai 20291 0.0 0.1 31736 4312 ? Sl 22:39 0:00 /usr/libexec/ibus-engine-simple
Setting the DBus address for IBus 给出了一个DBus 地址的提示:
/run/user/<userid>/ibus.socket
可以通过配置 /usr/bin/ibus-daemon
的参数指定socket
我检查了 ~/.config/ibus/bus/
目录下似乎有对应配置,例如 3f31fd0b2aec4b6792f96a3fc0213821-unix-11
内容就是:
# This file is created by ibus-daemon, please do not modify it.
# This file allows processes on the machine to find the
# ibus session bus with the below address.
# If the IBUS_ADDRESS environment variable is set, it will
# be used rather than this file.
IBUS_ADDRESS=unix:abstract=/home/huatai/.cache/ibus/dbus-yQB7GtBl,guid=7a2a254f4e414d6d2683edea6206751d
IBUS_DAEMON_PID=20125
这里的 IBUS_DAEMON_PID=20125
通过检查 ibus-daemon
就可以看到:
ps aux | grep ibus
显示:
huatai 20125 0.3 0.2 71388 8160 ? Ssl 22:39 0:03 ibus-daemon -drx
...
但是,很奇怪,找不到 IBUS_ADDRESS
对应的socket地址:
/home/huatai/.cache/ibus/dbus-yQB7GtBl
也许是这个原因导致我无法呼出中文输入?
不过,我在macOS的状态托盘中,是可以看到 ibus
的图标的,有时候居然还能看到中文图标。或许和 xpra 兼容性还是存在问题。后续在主机上直接操作看是否能够正常工作。
Using modifier key combinations to switch layouts 可以通过 gsettings
设置快捷键(就无需 ibus-setup
):
gsettings set org.freedesktop.ibus.general.hotkey triggers "['VALUE']"
例如,这里 <Alt>Shift_R
来配置右shift快捷键