Linux下混合分辨率屏幕的解决方案

code

Linux下混合分辨率屏幕的解决方案

问题

我的新笔记本的屏幕是一块2560×1600的13.3英寸的屏幕,而我的显示器则是1920×1080分辨率的24寸屏幕。在使用i3wm后,想要方便的使用这两块屏幕遇见了一些问题

  1. 在默认情况下,笔记本的屏幕显示内容太小了
  2. 在想要进行双瓶拓展的时候由于分辨率不同,显示器只能显示部分内容
  3. 不能灵活的切换显示器

其实现在linux下很多桌面环境如gnome都能很好的解决上面的问题,但是i3wm要复杂很多。

解决方案

在经过自己的不断尝试和一些参考后给出我的解决方案,总体的思路就是将全局的dpi调整到一个dpi最大的屏幕看上去合适的大小,然后将其他屏幕进行缩放。

首先,在家目录下创建 .Xresource 文件,并添加 Xft.dpi:192 (数字根据自己dpi最大的屏幕来调整 DPI计算器 然后重启。这样会使得另一块屏幕显示比较诡异。

然后通过xrandr进行调整

双屏幕同时显示

1
2
3
xrandr  --dpi 192 \
--output eDP --mode 2560x1600 --pos 0x0 \
--output DisplayPort-1 --mode 1920x1080 --scale 2x2 --pos 2560x0 --panning 3840x2160+2560+0

–dpi 其实这个参数没有什么用,一开始是想通过这个指令来切换dpi而不用去.Xresources里面调整,但是通过这个指令调整之后终端和浏览器等其他地方该看不清的还是看不清。。。
–output XXX 显示输出的名称
–mode 指定输出的分辨率
–scale 指定缩放倍率
–pos 指定这个输出的位置
–panning 这个参数可以使得鼠标能够正常的在区域内使用

仅使用显示器

1
2
3
xrandr  --dpi 192 \
--output eDP --off \
--output DisplayPort-1 --scale 2x2 --panning 3840x2160+0+0

仅使用电脑屏幕

1
2
3
xrandr  --dpi 192 \
--output eDP --mode 2560x1600 --panning 2560x1600+0+0 \
--output DisplayPort-1 --off

依然存在的问题

  1. 通过低dpi屏幕适配高dpi然后缩放,虽然一定程度的解决了问题,但是字体会模糊
  2. 突然想要切换显示器的时候,还是只有通过指令,无法自动切换

参考

https://ntzyz.io/post/linux-dual-monitor-with-different-dpi

https://blog.jamiek.it/2015/04/manually-fixing-multiple-screens-with.html?m=1

https://blog.summercat.com/configuring-mixed-dpi-monitors-with-xrandr.html

本文作者:Keshane

本文链接: https://keshane.moe/2019/12/02/screen-scale-linux/

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。