在linux中的chrome以及使用chromium的浏览器如edge里面无法输入中文的问题
在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输入法,可是中文里面都大差不大是老架构
如果帮到你点个赞好吗,谢谢,第一次写,写的不好的地方多多包涵(/≧▽≦/)
更多推荐


所有评论(0)