环境:Debian 12 + KDE 5.27.5 + Fcitx 5 + 五笔98版(自己导入的词库)。
在使用系统自带的截图软件Gwenview时,遇到了Fcitx 输入法不跟随光标的问题(类似于在开发环境IDE 中的idea上遇到的问题一样)。当输入中文时,文字选项在桌面的左上方。
fcitx5-diagnose
❯ fcitx5-diagnose
# 系统信息:
1. `uname -a`:
Linux nisk 6.1.0-23-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.99-1 (2024-07-15) 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`:
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'
2. 键盘布局:
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", "", ""
3. 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=
4. 目录:
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`)。
5. 当前用户:
脚本作为 nisk (1000) 运行。
# Fcitx 状态:
1. 可执行文件:
在 `/usr/bin/fcitx5` 找到了 fcitx5。
2. 版本:
Fcitx 版本: `5.0.21`
3. 进程:
找到了 2 个 fcitx5 进程:
2329 fcitx5
2383 fcitx5-plasma-t
4. `fcitx5-remote`:
`fcitx5-remote` 工作正常。
5. DBus 界面:
使用 `dbus-send` 来检查 dbus。
DBus 名称 `org.fcitx.Fcitx5` 的所有者是 `:1.47`。
DBus 名称 `org.fcitx.Fcitx5` 的 PID 所有者是 `2329`。
来自 dbus 的调试信息:
Group [x11::1] has 6 InputContext(s)
IC [0275b43a224e48969fda7a18837bfe6f] program:wechat frontend:fcitx4 cap:800072 focus:0
IC [91c40961c2d349359fa2ab3deb3be349] program:chromium frontend:dbus cap:6000000012 focus:0
IC [c7a7ad3c9ae2481e83a947fc5c693575] program:Firefox-esr frontend:dbus cap:6000000012 focus:0
IC [fb9dd01159ee468a8c93bf6c89748258] program:Firefox-esr frontend:dbus cap:6000000012 focus:0
IC [d10aa2d07a5c481f95f34729ef76554d] program:Firefox-esr frontend:dbus cap:6000000012 focus:0
IC [6c277ba171c34ca3a6626ab6d0be9e16] program:Firefox-esr frontend:dbus cap:6000000052 focus:0
Group [wayland:] has 5 InputContext(s)
IC [7d637043ae3b494292628984be654ba1] program:konsole frontend:dbus cap:e001800072 focus:1
IC [05d7e6d00b5747c983b0e8e2bfbfd13b] program:plasmashell frontend:dbus cap:e001820072 focus:0
IC [e3b8cad642f540b990c838e58a015f74] program:plasmashell frontend:dbus cap:1e001800072 focus:0
IC [c86dce43a6f5428fa63b8af94c08e031] program:krunner frontend:dbus cap:e001820072 focus:0
IC [a38aa22553464f5283f2b249376dd9c5] program:plasmashell frontend:dbus cap:1e001800072 focus:0
Input Context without group
# Fcitx 配置界面:1. 配置工具封装:
在 `/usr/bin/fcitx5-configtool` 找到了 fcitx5-configtool。
2. Qt 的配置界面:
在 `/usr/bin/fcitx5-config-qt` 找到了 `fcitx5-config-qt`。
3. KDE 的配置界面:
找到了 fcitx5 的 kcm 模块。
kcm_fcitx5 - 配置输入法
# 前端设置:## Xim:
1. `${XMODIFIERS}`:
环境变量 XMODIFIERS 已经正确地设为了“@im=fcitx”。 从环境变量中获取的 Xim 服务名称为 fcitx.
2. 根窗口上的 XIM_SERVERS:
Xim 服务的名称与环境变量中设置的相同。
## Qt:
1. qt4 - `${QT4_IM_MODULE}`:
环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。
2. qt5 - `${QT_IM_MODULE}`:
环境变量 QT_IM_MODULE 已经正确地设为了“fcitx”。
3. Qt 输入法模块文件:
找到了 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 qt5 模块:`/usr/lib/x86_64-linux-gnu/fcitx5/qt5/libfcitx-quickphrase-editor5.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”。
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.38` 的输入法模块缓存。 版本行:
# Created by /usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 from gtk+-3.24.38
已找到 gtk `3.24.38` 的 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`。
2. 插件列表:
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 个被禁用的插件:
3. 插件库:
所有插件所需的库都被找到。
4. 用户界面:
找到了 2 个已启用的用户界面插件:
Classic User Interface
KDE Input Method Panel
## 输入法:1. `/home/nisk/.config/fcitx5/profile`:
[Groups/0]
# Group Name
Name=默认 # Layout
Default Layout=us
# Default Input Method
DefaultIM=wbx
[Groups/0/Items/0]
# Name
Name=keyboard-us
# Layout
Layout=
[Groups/0/Items/1]
# Name
Name=wbx
# Layout
Layout=
[GroupOrder]
0=默认
# 日志:1. `date`:
2024年 07月 23日 星期二 12:03:19 CST
2. `/home/nisk/.config/fcitx5/crash.log`:
`/home/nisk/.config/fcitx5/crash.log` 未找到.
**警告:fcitx5-diagnose 的输出可能包含敏感信息,包括发行版名称,内核版本,正在运行的程序名称等。**
**尽管这些信息对于开发者诊断问题有帮助,请在公开发送到在线网站前检查并且根据需要移除的对应信息。**
systemctl --user show-environment | grep fcitx
看看是不是环境变量没导入 systemd?dbus 也要导入,但是我不知道怎么看。
❯ systemctl --user show-environment | grep fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
SDL_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
这没问题啊。你在 htop 里找到 gwenview 的进程,然后按 e 查看一下它的环境变量呢?
在debian 13 上没这问题,现在是不知道,哪里不同。
好像就是旧版本有这问题,升级到新版就没这问题。刚在虚拟机上看也有这问题。