"解决"高分屏下部分应用字体过小的问题

传统的电脑制造商抱着1366x768分辨率混吃等死多年,笔记本的显示器尺寸本身就小,再加上被浪费掉的上下边框,导致显示面积捉襟见肘,使用体验相当恶劣.

新的制造商入局后,内卷的风终于刮到了显示屏上.然而它们在使用窄边框技术扩大显示面积的同时,也引入了类似于手机的高分屏,在解决了一个问题的同时却制造了更多的问题.

过高的像素密度导致字体显示很小,肉眼几乎无法看清.解决的办法是在系统层面增加一个按倍率缩放UI控件和字体的设置.这个机制通常情况下是可以正常工作的.但是,和手机上相对一致的应用生态不一样,电脑的生态系统中有太多的历史包袱.有些老旧的软件根本就不响应UI缩放的设置,它们的控件尺寸和字体大概是硬编码的.这就造成了这类软件根本无法使用,除非你手边有一个放大镜.Linux的开放性放大了这种混乱,导致我一直受到这个问题的困扰.最终,我决定抛弃所谓的高分屏,将它当成一块普通显示屏来使用.

降低分辨率

我的显示屏硬件分辨率是 2520x1680, 比例近似的分辨率是 1400x900,在该模式下,上下会有黑边,浪费掉将近30个像素的高度.通过计算,等比例缩放后,应该是 1400x933 才比较适合.但是在显示设置中并没有该模式.可以用一个脚本来搞定:

#!/bin/sh

OUTPUT="eDP-1"
MODE_NAME="1400x933_60.00"

if ! xrandr | grep -q "$MODE_NAME"; then
    echo "Creating new mode: $MODE_NAME"
    xrandr --newmode "$MODE_NAME" 107.25  1400 1480 1624 1848  933 936 946 968 -hsync +vsync
    xrandr --addmode "$OUTPUT" "$MODE_NAME"
else
    echo "Mode $MODE_NAME already exists."
fi

xrandr --output eDP-1 --mode "1400x933_60.00"

将脚本保存为~/.xprofile,加上执行权限,在登陆系统时自动执行.

在某些系统上,~/.xprofile会被忽略,可以通过 Xorg 配置文件来达到相同的目的:

/etc/X11/xorg.conf.d/10-custom-resolution.conf

Section "Monitor"
    Identifier "eDP-1"
    # 对应 xrandr --newmode "1400x933_60.00" 107.25 1400 1480 1624 1848 933 936 946 968 -hsync +vsync
    Modeline "1400x933_60.00" 107.25  1400 1480 1624 1848  933 936 946 968 -hsync +vsync
    
    # 告诉 Xorg 这个显示器支持此模式,并设为首选(可选,但推荐)
    Option "PreferredMode" "1400x933_60.00"
    Option "Ignore" "false"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "eDP-1"
    DefaultDepth 24
    
    SubSection "Display"
        Depth 24
        Modes "1400x933_60.00"
    EndSubSection
EndSection

自定义GURB启动菜单分辨率:

编辑 /etc/default/grub,使用较低的分辨率:

GRUB_GFXMODE=1024x768x32
GRUB_GFXPAYLOAD_LINUX=keep

保存后运行 sudo update-grub2 生效

评论

暂无评论