给X11转发环境配置中文输入

· 2026-09-21 13:17 · 3 阅读

原创 沈沉舟 2026-09-21 13:17 北京

Ubuntu 26+MobaXterm 26.4+X11转发,支持中文输入,但非开箱即用。

创建: 2026-09-21 09:16
链接: https://scz.617.cn/unix/202609210916.txt

目录:
    ☆ 前言
    ☆ 失败现象
    ☆ 解决方案
    ☆ 简化解决方案
    ☆ X11转发环境IBus输入法基础组件及排错指南
    ☆ 后记

☆ 前言

目标环境是,Ubuntu 26+Win10+MobaXterm 26.4。本文介绍如何给SSH X11转发环境配置中文输入,不是给Ubuntu 26主桌面配置中文输入。二者有点关系,但不是一回事。

关于Ubuntu 26主桌面中文输入,参看

《给英文版Ubuntu 26安装中文输入法》

https://scz.617.cn/unix/202608060900.txt

关于X11转发,参看

《Ubuntu 26+MobaXterm 26.4+X11转发》

https://scz.617.cn/unix/202609181600.txt

☆ 失败现象

在X11转发中得到GUI,但在Win10一侧无法输入中文。Win10的输入法,在X11 GUI中无反应。Ubuntu 26的IBus输入法,在X11 GUI中呼不出来,按热键无反应;在主控台正常。可Copy/Paste中文到X11 GUI中,无问题。

假设基准状态如上,后面介绍解决方案。

☆ 解决方案

为减少不必要的麻烦与解释,先重启Ubuntu 26,确保主控台处于logout状态,再做后续动作。如无特别说明,本节所有操作均在SSH shell中,非主控台。

检查DBUS_SESSION_BUS_ADDRESS环境变量是否有值,不能为空。其值有具体意义,普通用户不必关心。

执行"ibus-daemon -dx"。尽管ps看到已经存在其他ibus-daemon进程,但与此步无关,照做。ps检查,是否出现新的"ibus-x11"进程,必须有。

执行"ibus address",必须有输出,不能为空。若为空,表示上一步ibus-daemon启动失败。

SSH X11转发环境是一个独立、隔离的环境,与主桌面环境无关,需给新环境配置输入法。执行"ibus-setup",简单配置如下

General
  Keyboard Shortcuts
    Next input method
      Ctrl-Alt-Space
  Font and Style
    Show property panel
      Always
Input Method
  Chinese - Intelligent Pinyin
  Chinese - WuBi-Jidian-86-JiShuag-6.0
  English - English (US)
Advanced
  Global Input method settings
    Share the same input method among all applications
      On

热键不要用Super-Space,会被Win10截胡。此配置持久化保存在相关文件中,重启后仍有效。

设置环境变量

export XMODIFIERS='@im=ibus'

激动人心的时刻,执行

xterm&
firefox&
gedit&

Ctrl-Alt-Space已能呼出中文输入法,候选词列表出现。可不用热键切换输入法,而是在SSH shell中执行如下命令以切换输入法

ibus engine libpinyin
ibus engine table:wubi-jidian86
ibus engine xkb:us::eng

假设IBus输入法热键被Win10截胡,命令行切换输入法就派上用场。

测试过程不要求提前将Win10输入法切至英文。若Ubuntu 26主控台处于login状态,或有干扰,测试结果可能与上述文字不符。

☆ 简化解决方案

前一节的介绍,带些排错性质。假设已按前一节内容完整走过一遍,以后再遇上同一X11转发环境的中文输入需要,许多步骤可跳过,在SSH shell中执行如下命令即可

ibus-daemon -dx
export XMODIFIERS='@im=ibus'
firefox&

☆ X11转发环境IBus输入法基础组件及排错指南

a. DBUS_SESSION_BUS_ADDRESS环境变量不为空
b. 一个当前用户启动的ibus-daemon,不能是gdm-gre+这种用户,用ps检查
c. "ibus address"输出具体的值
d. 一个当前用户、当前DISPLAY启动的ibus-x11,用ps检查
e. export XMODIFIERS='@im=ibus'
f. 热键不灵时用ibus engine切换输入法

dbus-daemon - ibus-daemon - ibus-x11 - X Server

纵观X11输入法框架,相关组件较多,组件间关系复杂,任一环节出问题,都将影响X11转发环境IBus输入法。大多数文档并未揭示底层机制,只能撞大运式使用、排错。

☆ 后记

结论,"Ubuntu 26+MobaXterm 26.4+X11转发"支持中文输入,但非开箱即用。

本文面向普通用户,做过简化处理,不涉及底层机制。高级用户参看

《Ubuntu 26 X11 Forwarding》

https://scz.617.cn/unix/202608111716.txt

阅读原文

跳转微信打开