配置zsh后,无法通过 DBus 连接到 Fcitx,无法输入中文。

使用debian 12 遇到的问题,配置zsh后,无法通过 DBus 连接到 Fcitx,无法输入中文。


即使是点击运行Fcitx了,也是不能输入,已经尝试在/etc/profile 中加入
#fcitx
export XIM_PROGRAM=fcitx
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx
这类配置重启系统后,还是不能输入/启动Fcitx.
使用debian+kde(wayland)+fcitx5环境。
1、没有动任何配置,只有当chsh -s /bin/zsh 重启后,就不能使用;
如果切换回bash,fcitx是能够自启正常使用的。
2、即使是手动启动了fcitx,也是不能输入中文的。就很无语。。。
现在只能是在bash终端下输入zsh来使用,这样用是没问题。
我想要的是默认终端是zsh.
有什么解决方式么?

fcitx 是开机自启的,不需要配置,你这是自己搞坏了吧?

是KDE桌面环境。

没有动任何配置,只有当chsh -s /bin/zsh 重启后,就不能使用;
如果切换回bash,fcitx是能够自启正常使用的。

看起来跟 zsh 有关,我没用过 zsh,帮不了你了。

即使是手动启动了fcitx,也是不能输入中文的。就很无语。。。
现在只能是在bash终端下输入zsh来使用,这样用是没问题。
我想要的是默认终端是zsh

我在用debian 12 + kde (x11) + ibus rime , 一切正常,要不你试试这套 ?

当前我还是debian+kde(wayland)+fcitx5
假如不行的话,只能换了。

之前,使用gnome环境时,使用过ibus rime.

你能切回x11试试吗? wayland可能支持不太好。反正我的d600独显没法用wayland。

KDE一样用 ibus+rime. 需要的话,我把我的步骤发你。

x11 好使啊,切换为x11.问题解决了,这灵感完全没往这方面想,zsh居然还wayland支持不是很好。
非常感谢!!

我这还只是核显呢。。。

应该是你的某些设置只在 bash 下生效,导致更换 zsh 后 fcitx5 启动失败了。
既然手动运行也不能输入中文,说明你的环境变量设置有问题?就你贴出来的部分来看的话,缺少关闭引号。

fcitx5 对 wayland 的支持挺好的。显卡对 wayland 的支持好不好不影响输入法。

引用“缺少关闭引号。”–>我应该怎么做呢,我安装完zsh,不进行任何配置。重启之后,输入法(输入中文)就使用不了了。具体的配置需要在哪里能看到,还望赐教 :hand_with_index_finger_and_thumb_crossed: :hand_with_index_finger_and_thumb_crossed: :hand_with_index_finger_and_thumb_crossed:

贴一下 fcitx5-diagnose 的输出吧……

❯ fcitx5-diagnose

系统信息:

  1. uname -a:

    Linux nisk 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64 GNU/Linux
    
  2. lsb_release -a:

    Distributor ID: Debian
    Description:    Debian GNU/Linux 12 (bookworm)
    Release:        12
    Codename:       bookworm
    
  3. lsb_release -d:

    Description:    Debian GNU/Linux 12 (bookworm)
    
  4. /etc/lsb-release:

    /etc/lsb-release 未找到.

  5. /etc/os-release:

    PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
    NAME="Debian GNU/Linux"
    VERSION_ID="12"
    VERSION="12 (bookworm)"
    VERSION_CODENAME=bookworm
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"
    
  6. 桌面环境:
    桌面环境为 kde

  7. XDG 会话类型:
    XDG_SESSION_TYPE=‘wayland’

  8. Bash 版本:
    BASH_VERSION=‘5.2.15(1)-release’

环境:1. DISPLAY:

    DISPLAY=':1'


    WAYLAND_DISPLAY='wayland-0'
  1. 键盘布局:

    1. setxkbmap:

      WARNING: Running setxkbmap against an XWayland server
      xkb_keymap {
          xkb_keycodes  { include "evdev+aliases(qwerty)" };
          xkb_types     { include "complete"      };
          xkb_compat    { include "complete"      };
          xkb_symbols   { include "pc+us+inet(evdev)"     };
          xkb_geometry  { include "pc(pc105)"     };
      };
      
    2. xprop:

      _XKB_RULES_NAMES(STRING) = "evdev", "pc105", "us", "", ""
      
  2. Locale:

    1. 全部可用 locale:
      C
      C.utf8
      POSIX
      zh_CN.utf8

    2. 当前 locale:
      LANG=zh_CN.UTF-8
      LANGUAGE=zh_CN:zh
      LC_CTYPE=“zh_CN.UTF-8”
      LC_NUMERIC=“zh_CN.UTF-8”
      LC_TIME=“zh_CN.UTF-8”
      LC_COLLATE=“zh_CN.UTF-8”
      LC_MONETARY=“zh_CN.UTF-8”
      LC_MESSAGES=“zh_CN.UTF-8”
      LC_PAPER=“zh_CN.UTF-8”
      LC_NAME=“zh_CN.UTF-8”
      LC_ADDRESS=“zh_CN.UTF-8”
      LC_TELEPHONE=“zh_CN.UTF-8”
      LC_MEASUREMENT=“zh_CN.UTF-8”
      LC_IDENTIFICATION=“zh_CN.UTF-8”
      LC_ALL=

  3. 目录:

    1. 主目录:
      /home/nisk

    2. ${XDG_CONFIG_HOME}:

      环境变量 XDG_CONFIG_HOME 没有设定。
      XDG_CONFIG_HOME 的当前值是 ~/.config (/home/nisk/.config)。

    3. Fcitx5 设置目录:
      当前 fcitx5 设置目录是 ~/.config/fcitx5 (/home/nisk/.config/fcitx5)。

  4. 当前用户:
    脚本作为 nisk (1000) 运行。

Fcitx 状态:

  1. 可执行文件:
    /usr/bin/fcitx5 找到了 fcitx5。

  2. 版本:
    Fcitx 版本: 5.0.21

  3. 进程:
    Fcitx5 没有在运行。
    请访问 入门指南 页面上对应您发行版的配置链接查看如何配置 fcitx5 的自动启动.

Fcitx 配置界面:1. 配置工具封装:

在 `/usr/bin/fcitx5-configtool` 找到了 fcitx5-configtool。
  1. Qt 的配置界面:
    /usr/bin/fcitx5-config-qt 找到了 fcitx5-config-qt
  2. KDE 的配置界面:
    找到了 fcitx5 的 kcm 模块。
    kcm_fcitx5 - 配置输入法

前端设置:## Xim:

  1. ${XMODIFIERS}:

    XMODIFIERS 没有设置

    请使用您发行版提供的工具将环境变量 XMODIFIERS 设为 “@im=fcitx” 或者将 export XMODIFIERS=@im=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:XMODIFIERS
    从环境变量中获取的 Xim 服务名称为 fcitx.

  2. 根窗口上的 XIM_SERVERS:
    无法在根窗口找到 xim_server。

Qt:

  1. qt4 - ${QT4_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 “fcitx” 或者将 export QT_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:QT_IM_MODULE

  2. qt5 - ${QT_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 QT_IM_MODULE 设为 “fcitx” 或者将 export QT_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:QT_IM_MODULE

    如果您的混成器完全支持 qt5 使用的 text-input 协议,您也可以使用 qt5 内置的 Wayland 模块。

  3. Qt 输入法模块文件:
    找到了 fcitx5 qt5 模块:/usr/lib/x86_64-linux-gnu/fcitx5/qt5/libfcitx-quickphrase-editor5.so。 找到了 fcitx5 的 qt5 输入法模块:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so。 找到了未知的 fcitx qt 模块:/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_fcitx5.so。 找到了 fcitx5 的 qt6 输入法模块:/usr/lib/x86_64-linux-gnu/qt6/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so
    下列错误也许并不准确,因为对 Qt 版本的猜测取决于发行版如何打包 Qt。如果您不使用任何对应版本的 Qt 程序,或者在 Wayland 下使用 Qt 的 text-input 支持,下列错误也也不是严重问题。 无法找到 Qt4 的 fcitx5 输入法模块。

Gtk:

  1. gtk - ${GTK_IM_MODULE}:

    请使用您发行版提供的工具将环境变量 GTK_IM_MODULE 设为 “fcitx” 或者将 export GTK_IM_MODULE=fcitx 添加到您的 ~/.xprofile 中。参见 输入法相关的环境变量:GTK_IM_MODULE

    如果您的混成器完全支持 gtk 使用的 text-input 协议,您也可以使用 gtk 内置的 Wayland 模块。

  2. gtk-query-immodules:

    1. gtk 2:

      无法找到 gtk 2 的 gtk-query-immodules

      无法找到 gtk 2 的 fcitx5 输入法模块。

    2. gtk 3:

      无法找到 gtk 3 的 gtk-query-immodules

      无法找到 gtk 3 的 fcitx5 输入法模块。

  3. Gtk 输入法模块缓存:

    1. gtk 2:

      /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache 找到了 gtk 2.24.33 的输入法模块缓存。 版本行:
      # Created by /usr/lib/x86_64-linux-gnu/libgtk2.0-0/gtk-query-immodules-2.0 from gtk±2.24.33

      无法输入法模块缓存 /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache 中找到 fcitx5

      无法在缓存中找到 gtk 2 的 fcitx5 输入法模块。

    2. gtk 3:

      /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache 找到了 gtk 3.24.37 的输入法模块缓存。 版本行:
      # Created by /usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 from gtk±3.24.37

      已找到 gtk 3.24.37 的 fcitx5 输入法模块。
      “/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-fcitx5.so”
      “fcitx” “Fcitx5 (Flexible Input Method Framework5)” “fcitx5” “/usr/locale” “ja:ko:zh:"
      “fcitx5” “Fcitx5 (Flexible Input Method Framework5)” “fcitx5” “/usr/locale” "ja:ko:zh:

    3. gtk 4:

      无法找到 gtk 4 的输入法模块缓存

      无法在缓存中找到 gtk 4 的 fcitx5 输入法模块。

  4. Gtk 输入法模块文件:

    1. gtk 2:

      找到的全部 Gtk 2 输入法模块文件均存在。

    2. gtk 3:

      找到的全部 Gtk 3 输入法模块文件均存在。

    3. gtk 4:

      找到的全部 Gtk 4 输入法模块文件均存在。

配置:

Fcitx 插件:1. 插件配置文件目录:

找到了 fcitx5 的插件配置目录:`/usr/share/fcitx5/addon`。
  1. 插件列表:

    1. 找到了 28 个已启用的插件:
      Simplified and Traditional Chinese Translation 5.0.16
      Classic User Interface 5.0.21
      Clipboard 5.0.21
      Cloud Pinyin 5.0.16
      DBus 5.0.21
      DBus Frontend 5.0.21
      Emoji 5.0.21
      Fcitx4 Frontend 5.0.21
      Full width character 5.0.16
      IBus Frontend 5.0.21
      Lua IME API 5.0.10
      Input method selector 5.0.21
      Keyboard 5.0.21
      KDE Input Method Panel 5.0.21
      Lua Addon Loader 5.0.10
      Status Notifier 5.0.21
      Notification 5.0.21
      Pinyin 5.0.16
      Extra Pinyin functionality 5.0.16
      Punctuation 5.0.16
      Quick Phrase 5.0.21
      Spell 5.0.21
      Table 5.0.16
      Unicode 5.0.21
      Wayland 5.0.21
      Wayland Input method frontend 5.0.21
      XCB 5.0.21
      X Input Method Frontend 5.0.21

    2. 找到了 0 个被禁用的插件:

  2. 插件库:

    所有插件所需的库都被找到。

  3. 用户界面:
    找到了 2 个已启用的用户界面插件:
    Classic User Interface
    KDE Input Method Panel

输入法:1. /home/nisk/.config/fcitx5/profile:

    [Groups/0]
    # Group Name
    Name=默认        # Layout
    Default Layout=cn
    # Default Input Method
    DefaultIM=wbx

    [Groups/0/Items/0]
    # Name
    Name=keyboard-cn
    # Layout
    Layout=

    [Groups/0/Items/1]
    # Name
    Name=wbx
    # Layout
    Layout=

    [Groups/0/Items/2]
    # Name
    Name=pinyin
    # Layout
    Layout=

    [GroupOrder]
    0=默认

日志:1. date:

    2023年 06月 25日 星期日 09:45:52 CST
  1. /home/nisk/.config/fcitx5/crash.log:

    /home/nisk/.config/fcitx5/crash.log 未找到.

警告:fcitx5-diagnose 的输出可能包含敏感信息,包括发行版名称,内核版本,正在运行的程序名称等。

尽管这些信息对于开发者诊断问题有帮助,请在公开发送到在线网站前检查并且根据需要移除的对应信息。

1 个赞

你的环境变量配置没有生效。猜测是没有读取 /etc/profile。它应该由登录器读取,但是很多时候登录器并不读取该文件(这个文件严格来说属于 bash 的)。考虑在 /etc/environment 设置以确保生效。

你的 fcitx5 没有在运行。请在 KDE 的设置工具里配置让它自动运行。有个输入工具相关的配置,建议开启那边那个(Wayland 输入法),就不需要配置 GTK 和 Qt 的环境变量了(X 的还是得配)。

1 个赞

非常感谢您抽出宝贵时间悉心指导。
我将具体的解决方式也贴出来,以供遇到此问题的其他朋友使用。

1、通过在/etc/environment 文件下加入:
export XIM_PROGRAM=fcitx
export XIM=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=“@im=fcitx”
export LANG=“zh_CN.UTF-8”
2、然后在使用系统设置配置自启动:


注意:/etc/environment 一定要添加fcitx配置,不然fcitx输入法仍然不能输入中文。

1 个赞