Gnome输入法和分数缩放问题
前情提要:
迫于核显用Hyprland经常掉帧(关闭gaps会好些,但是Emmm…),偶发窗口输入焦点定位错误,换了Sway,然而Sway甚至输入法候选框也弹不出来(需要用sway-im替换),界面也十分简陋,一通设置后还是放弃了。
这类WM还是太小众了,经常需要自己捣鼓来实现功能/解决问题,比如切换暗黑主题得自己实现,QT应用不跟随系统主题,总之各类自定义操作乱七八糟,也不优雅。还有就是界面整体风格也不统一,要实现想要的效果需要花费大量精力。加上Wayland的各种Debuff,日常就是在折腾…
最后换成了Gnome(最早用的KDE,自由度比较高,但也要自己捣鼓,还有一些小Bug,感觉不太稳定),网上很多人反馈说Gnome社区一意孤行,过于霸道,我倒是也没太多自定义需求,少折腾也挺好,用起来舒服就行。
问题概述
遇到的问题主要是输入法和XWayland分数缩放,其实是Wayland环境下各方实现的问题,涉及混成器、text-input协议、软件支持。
具体来说,部分软件会出现以下问题。
部分软件界面模糊、卡顿
Electron软件和其他QT软件在启用HIDPI分数缩放(如125%)后么,界面变得模糊,字体模糊尤为明显。目前碰到的应用有:VSCode、Spotify、微信UOS版。
Electron软件界面卡顿,如VSCode。
原因其实是因为这些软件默认运行在XWayland下(VSCode、Spotify),有的不支持Wayland(微信)。终端运行xprop,将光标放到软件界面,如变成十字则软件运行在Xwayland。
Xwayland下卡顿问题可能是兼容性问题,而界面模糊问题是因为Gnome(46)环境下Xwayland应用无法真正缩放到整数。这应该是Wayland通病,需要DE/WM额外解决,目前KDE已解决了这个问题,Hyprland可以手动启用所谓强制零缩放(force_zero_scaling)解决,Gnome据说下个版本(47)解决。
部分软件无法使用输入法(Fcitx5)
在Gnome上,这个问题主要是因为Wayland Compositor支持的text-input协议版本有限(Gnome只支持v3),而各类应用程序支持的text-input协议版本五花八门。
- GTK3/4 原生支持 text-input-v3,
- Qt5/6 支持text-input-v2,v4(QT_IM_MODULE=fcitx可启用内置im模块),
- Electron支持text-input-v1(Chrome可通过开启gtk4特性支持v3)
更多详细信息可以看下fcitx作者的文章: 参考1
解决方法
整数缩放并放大字体
针对缩放模糊问题,目前最好的方法就是不进行分数缩放,而是通过整数缩放+字放大体的方式调整(试过打分数缩放补丁,会有输入法偏移的BUG,且不能和输入协议的补丁同时使用)
将缩放调整为100%,安装gnome-tweaks
,调整字体缩放比例(如1.25),GDM登录页的字体缩放可安装gdm-settings
调整。
大部分应用会跟随系统的字体设置,部分其他界面的缩放可能也需要自己调整,如VSCode,可调整Window: zoom level
。
mutter输入协议补丁
打上mutter-text-input-v1
补丁即可支持text-input-v1,把大量Electron应用的输入问题解决了。
还有个办法就是在Xwayland下运行应用,但是经常出现卡顿,输入跳字无法连续输入,尽量还是用Wayland吧。