Ant*_* O. 160 display dpi multiple-monitors screen display-resolution
我正在为 Quadro K2100M 显卡使用带有 NVidia 驱动程序 (319) 的 Ubuntu 12.04.3,当我将 3200x1800 笔记本电脑主屏幕切换到 1920x1080 模式(使用nvidia-settings)时,显示变得模糊...
我正在使用两个屏幕:
主要问题是,在 Ubuntu 上,我的笔记本电脑屏幕上的字体太小了。因此,我想将笔记本电脑的分辨率更改为 1920x1080。
阅读Galgalesh 的回答,我尝试计算我的 DPI,这是我应该拥有的 DPI 配置:
有没有办法在扩展桌面上获得双 DPI 分辨率?
art*_*tem 150
似乎人们仍在努力尝试使用多台显示器和 HiDPI 显示器。arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays 中描述了一个很好的解决方法。所以我有:
现在我使用 Ubuntu 14.10 和 GNOME Shell 3.12.2,它具有非常可用的 HiDPI 支持。所以我只使用开箱即用的 HiDPI 支持 - 缩放因子为 2(可以通过 GUI 设置)。这意味着在外部显示器上,我得到的所有东西都比可接受的大两倍。因此,我使用 xrandr;但我没有缩小笔记本电脑的屏幕,而是放大了外接显示器屏幕:
xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400
Run Code Online (Sandbox Code Playgroud)
所以,一一:
--output HDMI1在我的情况下是外部屏幕,eDP1是笔记本电脑屏幕。--scale 2x2 - 将外部屏幕上的所有内容缩小两倍--mode XxY - 明确设置屏幕分辨率(如果已经设置则不需要)--fb XxY- 设置虚拟屏幕(帧缓冲区)的大小(重要的是没有这个,你将只能使用屏幕的第四部分)。在我的情况下,一个屏幕在另一个屏幕上,所以我将有效高度加起来为 2400+1800=4200。另请注意,最大帧缓冲区大小可能在 xorg.conf 中指定 - 然后您不能超过它(它写在xrandr -q输出的第一行中)。--pos XxY- 就我而言,我设置了屏幕的绝对定位,因此我的笔记本电脑屏幕直接位于外部屏幕的底部。此处的值 Y 是外部显示器高度的两倍。就是这样!一切都尽可能地清脆。
仅供参考:要获取屏幕名称和可用分辨率,可以运行xrandr --current. 有关设置分辨率的更多信息,请访问:https : //wiki.ubuntu.com/X/Config/Resolution。
更新 - 选项 2:支持 GTK3 的应用程序的另一种有趣解决方法。如果我通常只在大屏幕上使用一个应用程序(例如某些 IDE,如 leksah),我不会调整屏幕大小,而是运行缩放到原始大小的应用程序
env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
Run Code Online (Sandbox Code Playgroud)
您的屏幕始终显示 3200x1800 像素。如果您降低计算机的屏幕分辨率,那仅意味着您的屏幕必须缩放图像以适合您的屏幕。根据您的原始分辨率和当前分辨率之间的比率,该缩放会产生模糊的图像。
您可以在此处找到有关缩放和原始分辨率的更多信息:https : //en.wikipedia.org/wiki/Native_resolution
如果文本太小,您有两种选择:
如何查找和更改屏幕 DPI?(@whtyger 的回答)
我使用了 artmem 的解决方案,但遇到了 EoghanM 提到的鼠标问题。我在他链接的旧错误报告中找到的解决方法与 --panning 相关。
我正在拍摄: - DP1-2 3840x2160 原生 DIP。- eDP1 1366x768,缩放到 DP1-2 右侧看起来合理。
我通过拥有一个类似于 DP1-2 + (2x eDP1) 的帧缓冲区来实现这一点,然后我将所有进入 eDP1 的内容都缩放 1/2。
这应该很简单,但 xrandr 有点棘手。
这里 --scale 用于将进入 eDP1 的所有内容减少 1/2。--panning 与原始帧缓冲区中的 eDP1 相同,位置 (+3840+0) 位于 DP1-2 的右侧。+0+2160 将低于它。
xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary
# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1 --mode 1366x768 --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1 --mode 1366x768 --scale 2x2 --panning 2732x1536+3840+0
Run Code Online (Sandbox Code Playgroud)
我还将 Xft.dpi 设置为 185
$ cat ~/.Xresources
Xft.dpi: 185
Run Code Online (Sandbox Code Playgroud)
当我从外部显示器上拔下时,我运行:
xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1 --mode 1366x768 --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary
Run Code Online (Sandbox Code Playgroud)
这看起来不太好,但我离办公桌不远。您可以通过更改 Xft.dpi 并重新启动所有桌面程序来解决此问题。我不知道有什么方法可以更改 Xft.dpi,然后让客户端在不重新启动的情况下使用它。
小智 7
这些答案都很棒,以前对我有帮助,但是最近
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
删除了我的 randr-config!在尝试恢复我的设置时,我发现无论 --fb 输入如何,我都无法再让鼠标超出第二个屏幕的顶部 1/4 象限。从https://wiki.archlinux.org/index.php/HiDPI#Side_display我最终发现添加平移可以解决问题。此外,使用“--right-of”或“--left-of”比“--pos”更简单。
“通常,如果您的 HiDPI 显示器(笔记本电脑)是 AxB 像素,而您的常规显示器(外部)是 CxD,并且您按 [ExF] 进行缩放,则右侧的命令行是:”
xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
Run Code Online (Sandbox Code Playgroud)
小智 5
我有类似的问题并以这种方式解决了。
我有一个外接大屏幕 24 英寸 3840x2160 和一台笔记本电脑,分辨率相同 3840x2160 但小屏幕 15.4 英寸
我想要缩放笔记本电脑屏幕,因为默认缩放比例太小..
使用 xrandr 缩小,因为我们通常会在模糊的屏幕中看到结果,解决方案是使用 xrandr 放大所有内容,然后使用 gnome 缩放因子:
以下是如何做到这一点(外部屏幕位于笔记本电脑屏幕顶部,但如果更改 pos 参数,您可以以不同的方式排列)
xrandr \
--output DP-0 --primary --mode 3840x2160 --pos 0x0 --scale 2x2 --rotate normal \
--output DP-2 --mode 3840x2160 --pos 0x4320 --scale 1x1 --rotate normal \
--output DP-1 --off
Run Code Online (Sandbox Code Playgroud)
说明:
--output : DP-1 is the external screen, DP-2 is the laptop screen (use xrandr -q to get your devices names)
--mode : both screen have same definitions 3840x2160
--scale 2x2 for external, 1x1 for laptop, this is "relative" to the primary which is external screen here..
--pos : external screen is at position 0x0, laptop screen is bellow at pos 0x(2160*2)=0x4320 because external screen is scalled by 2
Run Code Online (Sandbox Code Playgroud)
然后
gsettings set org.gnome.desktop.interface scaling-factor 2
Run Code Online (Sandbox Code Playgroud)
或者
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gdk/WindowScalingFactor': <2>}"
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 20.04 上,我点击Fractional Scaling显示设置底部的选项解决了所有问题。这将允许分别缩放每个监视器。