在linux中的chrome以及使用chromium的浏览器里面无法输入中文的问题,框架是安装好了的,环境变量也是好的但是却无法运行,比如用的fcitx

问题

如果在 Wayland 下跑 Chrome / Chromium,优先怀疑兼容层

Fcitx 官方 FAQ 说得很直接:
对于 原生 Wayland 的 Chromium,支持很有限;而它提到一种替代办法是让 Chromium 通过 Gtk4 IM module 工作,但需要带参数 --enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4,而且弹窗位置之类“并不能完全正常工作”。

优先确认 Chrome 真的以 X11 跑起来:

google-chrome-stable --ozone-platform=x11

如果你是 Chromium:

chromium --ozone-platform=x11

启动后,在地址栏输入:

chrome://version

看命令行里有没有 --ozone-platform=x11。
如果没有,说明你之前那次参数可能没真正生效。

直接先杀死现在的chrome进程再输入刚刚那个

然后你就会发现,中文好了

原因分析:


解决方案:

提示:兼容性问题,很多老架构老软件对x11兼容更好,wayland是新架构,更简洁但是不兼容老东西(T_T)
动画更顺,高dpi兼容好,但是没办法啊,中文输入法没做适配(>__<)

永久修改 Chrome 启动参数

执行:

mkdir -p ~/.local/share/applications
cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/
sed -i 's#Exec=/usr/bin/google-chrome-stable#Exec=/usr/bin/google-chrome-stable --ozone-platform=x11#g' ~/.local/share/applications/google-chrome.desktop

然后:

关闭 Chrome

重新从应用菜单启动 Chrome

这样以后打开 Chrome 就会默认走 X11。


PS:

有可能还是不行,就是启动还是wayland

那就走三部曲
第一步:创建脚本

mkdir -p ~/.local/bin
cat > ~/.local/bin/chrome-x11 <<'EOF'
#!/bin/sh
exec google-chrome-stable --ozone-platform=x11 "$@"
EOF
chmod +x ~/.local/bin/chrome-x11

第二步:关闭旧 Chrome

pkill -f chrome
pkill -f chromium

第三步:启动测试

~/.local/bin/chrome-x11

如果这样能稳定中文输入,大功告成!

但想要从图标启动怎么办呢

那就做一个 “菜单图标版”

先直接复制执行这一整段:

mkdir -p ~/.local/bin
cat > ~/.local/bin/chrome-x11 <<'EOF'
#!/bin/sh
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
exec google-chrome-stable --ozone-platform=x11 "$@"
EOF
chmod +x ~/.local/bin/chrome-x11

mkdir -p ~/.local/share/applications
cat > ~/.local/share/applications/google-chrome-x11.desktop <<EOF
[Desktop Entry]
Version=1.0
Type=Application
Name=Google Chrome (X11)
Comment=Launch Chrome with X11 for Chinese input
Exec=$HOME/.local/bin/chrome-x11 %U
Terminal=false
Categories=Network;WebBrowser;
StartupNotify=true
Icon=google-chrome
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
EOF

update-desktop-database ~/.local/share/applications 2>/dev/null || true
pkill -f chrome
pkill -f chromium

然后
打开应用菜单
搜索 Google Chrome (X11)
用这个新图标启动 Chrome

打开后,在地址栏输入:

chrome://version

看 Command Line 那一行里有没有:

--ozone-platform=x11

有的话,就说明这个图标已经生效了。

如果你的系统里实际不是 google-chrome-stable,而是 google-chrome 或 chromium,把脚本这一行:

exec google-chrome-stable --ozone-platform=x11 "$@"

改成对应的命令就行。

例如:

exec google-chrome --ozone-platform=x11 "$@"

或者:

exec chromium --ozone-platform=x11 "$@"

到这里应该就已经好了,嘻嘻(・ω・)ノ

更长期的方案

换掉fcitx4输入法,可是中文里面都大差不大是老架构

如果帮到你点个赞好吗,谢谢,第一次写,写的不好的地方多多包涵(/≧▽≦/)

更多推荐