Cycoe@Home

窗口管理器在高分屏中的设置

前几天换了新机器,也算是让贫穷的我第一次体验到了高分屏。13.3 寸的 2K 屏,用默认 的缩放比例,字比蚂蚁大不了多少。为了保护视力,我决定将调整屏幕缩放提到最高优先级, 摸索一阵后,得到了比较完美的配置方案。

在 Linux 中(此处特指 X.org 显示服务器,Wayland 不了解),传统的 X Clients 的缩 放由 xrandr 控制,GTK 的 QT 程序的缩放由它们自己的环境变量控制。因此想要完美调整 所有界面的缩放比例需要一番摸索。当然,Gnome、KDE 之类的桌面环境除外,桌面环境设 置中一般都自带缩放设置。

1 降低分辨率

直接通过 xrandr 降低显示器的分辨率是最简单粗暴的办法,但这样高分屏就相当于废了, 不推荐。

2 调整 Scale

通过 xrandr 调整显示界面的 Scale,这种方法相当于用放大镜将屏幕上的内容放大,会使 内容严重模糊,同样不推荐。

3 通过 xrandr 设置 DPI

通过设置 DPI,其实就是告诉程序我的屏幕的细腻程度如何。如设置 DPI 为 144,就是告 诉程序我的屏幕一英寸长度上有 144 个像素点。但此处也有技巧,第一种方法是直接使用 xrandr 设置 DPI,在 .xinitrc.xprofile 中加入 xrandr --dpi 144 ,使得每 次登录 X Server 时都会自动设置 DPI。但此方法对 GTK 程序无效,需要继续在文件中加入

export GDK_SCALE=2
export GDK_DPI_SCALE=0.5

使得 GTK 程序支持缩放,但你应该也注意到了此处的两个问题。一是此处仍然使用的是缩 放而非 DPI,会导致 GTK 程序界面模糊;二是 GDK_SCALE 只支持整数倍缩放。

4 通过 xft 设置 DPI

这是我目前找到的完美的方法,还未遇到什么问题。在 .Xresources 文件中加入

Xft.dpi: 144
Xft.autohint: 0
Xft.lcdfilter:  lcddefault
Xft.hintstyle:  hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

并在 .xinitrc.xprofile 中加入 xrdb -merge ".Xresources" 使得每次登录时 都会使 .Xresources 生效。 xrdb 命令需要首先安装 xorg-xrdb 包。至此,终于拥 有了一个比较舒适的 DPI。

Author: Cycoe (cycoejoo@163.com)
Date: <2019-12-05 Thu 22:55>
Generator: Emacs 28.0.50 (Org mode 9.3)
Built: <2020-05-21 Thu 20:09>