[SOLVED]chrome和firefox无法输入中文
问题
为了准备比赛,又将年久失修的Manjaro拿出来整理了一下,估计要跑几个算法。结果这一更新,不出所料又出了点小问题,chrome和firefox无法输入中文,其他的程序都可以,终端里都没问题。
跑了一下fcitx-diagnose
,结果放在了末尾。
主要问题出现在
Cannot load module /usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so: GModule (/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so does not export GTK+ IM module API: GModule (/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
Cannot load module /usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so: GModule (/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so does not export GTK+ IM module API: GModule (/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
一开始还以为是gtk-2.0和gtk-3.0安装的问题,一通卸载重装,都没用,GLib也都是最新的,其实没那么复杂,运行以下两条命令即可。
解决
sudo gtk-query-immodules-2.0 --update-cache
sudo gtk-query-immodules-3.0 --update-cache
附录:fcitx-diagnose输出
❯ fcitx-diagnose
# 系统信息:
1. `uname -a`:
Linux xcp-admin03-Manjaro 5.4.64-1-MANJARO #1 SMP PREEMPT Wed Sep 9 18:26:19 UTC 2020 x86_64 GNU/Linux
2. `lsb_release -a`:
LSB Version: n/a
Distributor ID: ManjaroLinux
Description: Manjaro Linux
Release: 20.1
Codename: Mikah
3. `lsb_release -d`:
Description: Manjaro Linux
4. `/etc/lsb-release`:
DISTRIB_ID=ManjaroLinux
DISTRIB_RELEASE=20.1
DISTRIB_CODENAME=Mikah
DISTRIB_DESCRIPTION="Manjaro Linux"
5. `/etc/os-release`:
NAME="Manjaro Linux"
ID=manjaro
ID_LIKE=arch
BUILD_ID=rolling
PRETTY_NAME="Manjaro Linux"
ANSI_COLOR="32;2;24;144;200"
HOME_URL="https://manjaro.org/"
DOCUMENTATION_URL="https://wiki.manjaro.org/"
SUPPORT_URL="https://manjaro.org/"
BUG_REPORT_URL="https://bugs.manjaro.org/"
LOGO=manjarolinux
6. 桌面环境:
桌面环境为 `kde`。
7. Bash 版本:
BASH_VERSION='5.0.18(1)-release'
# 环境:
1. DISPLAY:
DISPLAY=':0'
2. 键盘布局:
1. `setxkbmap`:
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
en_US.utf8
POSIX
zh_CN.utf8
zh_HK.utf8
zh_TW.utf8
2. 当前 locale:
LANG=mn_CN.UTF-8
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=zh_CN.UTF-8
4. 目录:
1. 主目录:
/home/xcp
2. `${XDG_CONFIG_HOME}`:
环境变量 `XDG_CONFIG_HOME` 没有设定。
`XDG_CONFIG_HOME` 的当前值是 `~/.config` (`/home/xcp/.config`)。
3. Fcitx 设置目录:
当前 fcitx 设置目录是 `~/.config/fcitx` (`/home/xcp/.config/fcitx`)。
5. 当前用户:
脚本作为 xcp (1000) 运行。
# Fcitx 状态:
1. 可执行文件:
在 `/usr/bin/fcitx` 找到了 fcitx.
2. 版本:
Fcitx 版本: `4.2.9.8`
3. 进程:
找到了 2 个 fcitx 进程:
1812 fcitx
27823 fcitx-dbus-watc
4. `fcitx-remote`:
`fcitx-remote` 工作正常.
5. DBus 界面:
使用 `dbus-send` 来检查 dbus。
DBus 名称 `org.fcitx.Fcitx` 的所有者是 `:1.140`。
DBus 名称 `org.fcitx.Fcitx` 的 PID 所有者是 `1812`。
# Fcitx 配置界面:
1. 配置工具封装:
在 `/usr/bin/fcitx-configtool` 找到了 fcitx-configtool。
2. 用于 GTK+-2.0 的配置界面:
**未找到 gtk2 的配置界面.**
3. 用于 GTK+-3.0 的配置界面:
在 `/usr/bin/fcitx-config-gtk3` 找到了 `fcitx-config-gtk3`。
4. KDE 的配置界面:
**`kcmshell4` 未找到.**
# 前端设置:
## 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 输入法模块文件:
找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-quickphrase-editor5.so`.
找到了 Qt4 的输入法模块: `/usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so`.
找到了 Qt5 的输入法模块: `/usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
找到了 Qt4 的输入法模块: `/usr/lib/office6/qt/plugins/inputmethods/libqim-fcitx.so`.
## Gtk:
1. gtk - `${GTK_IM_MODULE}`:
环境变量 GTK_IM_MODULE 已经正确地设为了 "fcitx".
2. `gtk-query-immodules`:
1. gtk 2:
Cannot load module /usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so: GModule (/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so does not export GTK+ IM module API: GModule (/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
在 `/usr/bin/gtk-query-immodules-2.0` 找到了未知 gtk 版本的 `gtk-query-immodules`.
**无法在 `/usr/bin/gtk-query-immodules-2.0` 的输出重找到 fcitx.**
**无法找到 gtk 2 的 `gtk-query-immodules`.**
**无法找到 gtk 2 的 fcitx 输入法模块.**
2. gtk 3:
Cannot load module /usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so: GModule (/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so does not export GTK+ IM module API: GModule (/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
在 `/usr/bin/gtk-query-immodules-3.0` 找到了未知 gtk 版本的 `gtk-query-immodules`.
**无法在 `/usr/bin/gtk-query-immodules-3.0` 的输出重找到 fcitx.**
**无法找到 gtk 3 的 `gtk-query-immodules`.**
**无法找到 gtk 3 的 fcitx 输入法模块.**
3. Gtk 输入法模块缓存:
1. gtk 2:
在 `/usr/lib/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.32` 的输入法模块缓存.
版本行:
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.32
已找到 gtk `2.24.32` 的 fcitx 输入法模块.
"/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so"
"fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*"
2. gtk 3:
在 `/usr/lib/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.24.23` 的输入法模块缓存.
版本行:
# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.23
已找到 gtk `3.24.23` 的 fcitx 输入法模块.
"/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so"
"fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*"
4. Gtk 输入法模块文件:
1. gtk 2:
找到的全部 Gtk 2 输入法模块文件均存在.
2. gtk 3:
找到的全部 Gtk 3 输入法模块文件均存在.
# 配置:
## Fcitx 插件:
1. 插件配置文件目录:
找到了 fcitx 插件配置目录: `/usr/share/fcitx/addon`.
2. 插件列表:
1. 找到了 28 个已启用的插件:
fcitx-autoeng
fcitx-chttrans
fcitx-classic-ui
fcitx-clipboard
fcitx-dbus
fcitx-freedesktop-notify
fcitx-fullwidth-char
fcitx-googlepinyin
fcitx-imselector
fcitx-ipc
fcitx-ipcportal
fcitx-keyboard
fcitx-kimpanel-ui
fcitx-lua
fcitx-notificationitem
fcitx-pinyin
fcitx-pinyin-enhance
fcitx-punc
fcitx-quickphrase
fcitx-remote
fcitx-spell
fcitx-table
fcitx-unicode
fcitx-vk
fcitx-x11
fcitx-xim
fcitx-xkb
fcitx-xkbdbus
2. 找到了 1 个被禁用的插件:
fcitx-qw
3. 插件库:
所有插件所需的库都被找到。
4. 用户界面:
找到了 2 个已启用的用户界面插件:
fcitx-classic-ui
fcitx-kimpanel-ui
## 输入法:
1. 找到了 2 个启用的输入法:
fcitx-keyboard-us
googlepinyin
2. 默认输入法:
您已经正确的将一个键盘输入法 "fcitx-keyboard-us" 设为默认.
# 日志:
1. `date`:
2020年 09月 16日 星期三 21:35:59 CST
2. `~/.config/fcitx/log/`:
总用量 4
-rw-r--r-- 1 xcp xcp 44 1月 16 2020 crash.log
3. `~/.config/fcitx/log/crash.log`:
fcitx: BadWindow (invalid Window parameter)