2
2
2022
16

Wayfire 迁移进展(四):不那么 high 的 DPI

本文来自依云's Blog,转载请注明。

使用24寸4k屏幕作为主屏的时候很简单,设置 scale 为 2 就好了。但是,当 2 嫌太大、1 嫌太小的时候,问题就来了。比如我希望使用 120dpi,把 scale 设置为 1.25 可好?

scale=1.25 text

而这才是理想的效果:

120dpi text

看不出来差别?放大八倍,你看差别多明显:

8x compare

正常 120dpi 渲染出来的文字边缘清晰犀利,次像素平滑左红右蓝。再看看 scale=1.25 的文字,线条经常糊掉,次像素平滑效果几乎完全被抹掉。实际看上去的效果就是跟透明麿沙玻璃看屏幕似的,线条边缘总是有点糊糊的感觉,1080p 的屏幕被降级成了 720p 似的。

之所以出现这样的情况,是因为 Wayland 只支持整数倍缩放。因为,Wayland 混成器不能告诉客户端你得把窗口给画成 1.25 倍的,而客户端也无法告诉混成器我这个图像画的是 1.25 倍。所以,混成器只好告诉客户端你给我画个 2 倍的图像吧。混成器拿到图像之后再缩小 0.625 倍,自然有些逻辑像素就不能对应到单个的物理像素上去了。

所以,我还是设置 scale=1,不要混成器帮我去缩放。我自己通过另外的办法告诉客户端把字写大点儿。图标之类的就顾不上啦,反而大点小点都还能看。比如我要 1.25 倍大小的文字,就这样做:

  • GTK 3:在 dconf 里设置org.gnome.desktop.interface.text-scaling-factor=1.25就好了。最开始的截图就是 dconf-editor 里这一项配置。
  • Qt:设置环境变量 QT_WAYLAND_FORCE_DPI=120
  • Telegram:除了上边这个环境变量外,额外地在它自己的设置里设置 150% 的缩放(Telegram 的字偏小所以要设置得大一些)。设置环境变量是为了 fcitx5。
  • waybar:config 文件中设置 heightstyle.css 中设置 font-size
  • Xwayland:和 X11 下的 HiDPI 设置差不多的。比如 GTK 2 设置 Xresources Xft.dpi: 120 就好了。

我遇到的差不多就这些了。没办法,Linux 就是这么乱 QAQ。不过虽然 Wayland 协议不支持,好歹还有绕过的办法。

Category: Linux | Tags: Wayland screen 显示器 linux | Read Count: 8437
poly000 说:
Feb 02, 2022 05:44:43 PM

我n卡用wayland还是会遇到各种奇奇怪怪的问题...

yw662 说:
Feb 03, 2022 05:27:09 AM

其实我还是觉得应用程序按照font-size调整绘制比例比scaling-factor要好,因为用户调整默认的font-size大小总是有原因的。

可惜web可以用em单位来匹配font-size,但是native好像没这选项的感觉(
(另外仙子的博客好像没有尊重我的默认font-size呀)

yw662 说:
Feb 03, 2022 06:15:10 AM

不对,是仙子博客的字号太小了(

Avatar_small
依云 说:
Feb 03, 2022 10:58:56 AM

但是没有一个地方调整所有的字号呀。另外字号用像素本来就怪怪的,至少用个物理长度单位嘛,当然基于视角的方案会更好。

北城 说:
Feb 14, 2022 04:37:05 PM

请假一下博主,kde桌面环境,可以用dconf配置gtk程序的字体大小不?另外我尝试配置字体dpi后,在wayland下运行chrome或者firefox,字体还是很小?有解决方案没?

北城 说:
Feb 14, 2022 04:39:13 PM

blush请教一下  字打错了

Avatar_small
依云 说:
Feb 15, 2022 11:37:20 AM

火狐的话,你可以在 about:config 里修改 layout.css.devPixelsPerPx 这个选项的值。其它的我就不清楚了。

Moichi_Lin 说:
Apr 10, 2022 09:11:29 PM

我装好了wayfire之后,我在显卡方面遇到问题了,我想请教一下
我的笔记本是i+n双显卡的
我在grub里加了nvidia-drm.modeset=1,然后内核模块添加了nvidia,nvidia_modeset,nvidia_nvm,nvidia_drm,i915,intel_agp.
但是开始后运行nvidia-smi依然没有用独显运行,想请教一下,是不是我有些地方没有搞明白或者说n卡实在用不了?

Moichi_Lin 说:
Apr 10, 2022 09:15:30 PM

这问题我实在是搞不出来了,搞了2天了,现在毫无头绪

Avatar_small
依云 说:
Apr 10, 2022 09:28:08 PM

我没有尝试使用 nvidia 显卡运行 wayfire,可以试试 WLR_DRM_DEVICES 环境变量。不过为什么不用 intel 呢?

Moichi_Lin 说:
Apr 11, 2022 12:40:23 PM

这不是steam还有些游戏可以偶尔玩一下嘛

Avatar_small
依云 说:
Apr 11, 2022 12:41:11 PM

steam 支持 native wayland 吗?如果是用的 xwayland 的话,你也可以 prime-run 的。

Moichi_Lin 说:
Apr 11, 2022 02:47:13 PM

哦哟哦哟,可以的哟,我刚才启动chrome没有问题的呀,nvidia-smi查看占用了,但是虽然不知道为什么很多输出全是N/A,但是prime-run确实占用了显存,我试试steam去

Moichi_Lin 说:
Apr 11, 2022 03:13:49 PM

可以了,steam启动游戏时加个prime-run可以跑的很流畅,占用也很正常,感谢依云大佬的指点。

yzbythesea 说:
Apr 21, 2022 02:52:52 PM

依云博主用的是什么显示器?自己也想买一个 24 inch 的 4k 屏。

Avatar_small
依云 说:
Apr 22, 2022 11:06:43 AM

我用的这个: https://item.jd.com/100003928805.html


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com