关于wayland和x11
解决了部分应用输入法出问题(不能直接输入中文)的情况
具体问题描述:我安装了Zettlr,但是出现了打字的时候可能输入法失效,输入法是rime小鹤双拼,必须点进去重新选输入法才能打中文;并且我发现是切换页面的时候出现的,也就是我把页面切换到浏览器,再换回来就输入法没有中文了,浏览器还正常
原理是
现状:Electron 应用(如 Zettlr, Discord, VS Code, Obsidian)本质上是一个浏览器(Chromium)。虽然 Chromium 早就宣称支持 Wayland,但它对 **Linux 输入法协议(Text Input Protocol)** 的支持非常不稳定,经常在版本迭代中出现“回退”。
问题:在 Wayland 模式下,应用需要主动告诉输入法“我现在在这个坐标,请弹窗”。如果 Electron 这一块没写好(或者和你的 KDE/Fcitx5 版本不匹配),就会出现焦点丢失、无选词框、切回来无法输入等问题。
所以直接降级求稳,打开的时候加一句\--ozone-platform=x11即可
用我刚刚弄好的zettlr为例
第一步:复制启动文件到用户目录
cp /usr/share/applications/zettlr.desktop ~/.local/share/applications/
第二步:编辑配置文件
nano ~/.local/share/applications/zettlr.desktop
第三步:修改 Exec 行
Exec=/usr/bin/zettlr --ozone-platform=x11 %U
例如我原本是
\[Desktop Entry]
Version=1.0
Type=Application
Name=Zettlr
Comment=A Markdown Editor for the 21st century
Exec=zettlr
Icon=zettlr
Terminal=false
StartupNotify=false
Categories=Office;
MimeType=text/markdown;
StartupWMClass=Zettlr
只需改为
[Desktop Entry]
Version=1.0
Type=Application
Name=Zettlr
Comment=A Markdown Editor for the 21st century
# ↓↓↓↓↓↓ 重点修改了这一行 ↓↓↓↓↓↓
Exec=zettlr --ozone-platform=x11 %U
# ↑↑↑↑↑↑ 重点修改了这一行 ↑↑↑↑↑↑
Icon=zettlr
Terminal=false
StartupNotify=false
Categories=Office;
MimeType=text/markdown;
StartupWMClass=Zettlr
然后重启应用即可