在 KDE/Gnome/XFCE 上使用 Xorg X11 时我们如何缩放显示/分辨率对于整个桌面和/或每个应用程序?(当设置 GUI 上不可用时)
目的是在缩放桌面/应用程序的尺寸(更大/更小)时保持屏幕分辨率不变(最大)。
答案1
Linux显示
这在深入详细地介绍了Linux的显示是如何工作的?质量保证。
在大多数桌面系统(如 KDE 或 Gnome)上,各自的设置面板上都有可用的设置,本指南适用于可用于缩放应用程序或整个桌面的附加/手动设置。这参考文章有许多关于此事的有价值的信息。
扩展应用程序
主要可以做缩放应用通过 DPI、特定的环境变量(如下所述)、应用程序自己的设置或某些特定的桌面设置(超出了本 QA 的范围)。
Qt 应用程序可以使用以下环境变量进行缩放,请注意,许多应用程序都对大小和字体进行硬编码,因此此类应用程序的结果可能不符合预期。
export QT_AUTO_SCREEN_SET_FACTOR=0 export QT_SCALE_FACTOR=2 export QT_FONT_DPI=96
Gnome/GTK 应用程序可以使用以下环境变量进行扩展
export GDK_SCALE=2 export GDK_DPI_SCALE=0.5
Gnome/GTK 也可以通过此 Gnome 设置进行全局扩展
gsettings set org.gnome.desktop.interface text-scaling-factor 2.0
Chromium,可以使用以下命令进行缩放
chromium --high-dpi-support=1 --force-device-scale-factor=1.5
登录后可以对环境变量进行修改,
~/.profile
实现全局自动设备。
使用 Xorg X11 缩放桌面
奥格的扩展 RandR 具有缩放功能,可以配置为xrandr
。这可用于缩放桌面以显示更大的环境,这对于 HiDPI(每英寸高点数)显示器非常有用。
兰德R也可以反过来使用,例如,使最大分辨率为 1366x768 的屏幕支持更大的分辨率,例如 1920x1080。这是通过模拟新的更高分辨率,同时渲染支持的最大分辨率来实现的,类似于我们在非全高清屏幕上观看全高清视频。
在不改变分辨率的情况下缩放桌面
获取屏幕名称:
xrandr | grep connected | grep -v disconnected | awk '{print $1}'
减少屏幕尺寸20%(放大)
xrandr --output screen-name --scale 0.8x0.8
增加屏幕尺寸20%(缩小)
xrandr --output screen-name --scale 1.2x1.2
重置
xrandr
更改xrandr --output screen-name --scale 1x1
缩放桌面并模拟/渲染新分辨率
当使用xrandr
“放大”时以前的方法,桌面保持全屏,但是当我们“缩小”时xrandr --output screen-name --scale 1.2x1.2
(为了获得不支持的分辨率),桌面不会以全屏显示,因为这需要更新分辨率(可能是屏幕不支持的更高分辨率),我们可以使用 xrandr--mode
参数的组合--panning
来--scale
实现全屏“缩小”缩放(模拟新的分辨率),例如:
获取当前设置
xdpyinfo | grep -B 2 resolution # or xdpyinfo
配置示例
Scaling at: 120% Used/max screen resolution: 1366 x 768 Resolution at 120% (res x 1.2): 1640 x 922 (round) Scaling factor (new res / res): 1.20058565 x 1.20208604
这里的想法是虚拟地增加屏幕分辨率(因为我们物理上限制为 1366x768),命令是(替换
screen-name
):xrandr --output screen-name --mode 1366x768 --panning 1640x922 --scale 1.20058565x1.20208604
重置更改
xrandr --output screen-name --mode 1366x768 --panning 1366x768 --scale 1x1 # restarting the desktop may be required example with KDE # kquitapp5 plasmashell # plasmashell &
使 xrandr 更改持久化
有多种方法可以使xrandr
更改持久化,这和这QA 有很多例子。
实验笔记
作为旁注和使用 SDDM + KDE 时的实验结果,经过多次测试以实现持久配置,我最终使用~/.config/autostart
(systemsettings5
>启动...>自动启动)加载脚本,并命名我的脚本00-scriptname
以使其首先运行。
# 00-scriptname
# Applying the main xrandr suited changes (scaling at x1.15)
xrandr --output eDP1 --mode 1366x768 --panning 1574x886 --scale 1.15226939x1.15364583
# This is where it get odd/complicated, sometimes the screen resolution is not applied correctly or not applied at all...
# Note that "xrandr --fb" can be used alone to change the screen resolution on a normal situation...
# Here we will be taking advantage of xrandr's "--fb" feature to make the config appliance stable and works every-time.
# The odd thing here is while re-applying the new resolution 1574x886 with "--fb" nothing happen, but
# if we use use an unsupported resolution like 1574x884 (vs 1574x886) then xrandr force the resolution
# to "reset itself" to the configured resolution (1574x886)...
# In short just re-apply the setting with "--fb" and an unsupported resolution to force a reset.
# ("--fb" can be used alone here without re-applying everything)
#xrandr --fb 1574x884
xrandr --fb 1574x884 --output eDP1 --mode 1366x768 --panning 1574x886 --scale 1.15226939x1.15364583
参考
一些 KDE 的 GUI 工具: systemsettings5
> 显示,kcmshell5 xserver
以及kinfocenter
。
链接和来源:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11和
12。
答案2
不要使用,xrandr --scale
因为它会产生不同的分辨率(模糊)
我建议切换到“Wayland”而不是“X11”,因为 xrandr --scale 将光栅化的帧错误位图缩放到屏幕分辨率,这与向屏幕发送不同的分辨率相同模糊,请参阅https://gitlab.freedesktop.org/xorg/xserver/-/issues/1205了解详情。
要切换到 Waylayland,可能需要删除 nvidia 驱动程序并切换到开源驱动程序(新风格)。
屏幕明智以及使用 Wayland 进行分形缩放
在 Wayland 上,您可以针对不同的屏幕使用不同的比例,而无需更改分辨率(与 x11 不同),Wayland 还允许分形缩放(与 X11 不同)[参考文献]。
gnome-control-center>Settings>Display>Scale