Linux下HiDPI 4k显示器和普通显示器双显示器设置

经受不住诱惑,败了一个4k显示器,比较经典的 DELL P2415Q,亚马逊价格2799,还算便宜,京东至少也是28xx的价格。顺便吐槽一下亚马逊,越来越不靠谱了,东西不全,以前觉得配送还可以,这次说周末到,也是冲着周末到才这么快下单的,结果周一才到。亚马逊的购物券花完了,以后转京东试试。

要用4k显示器现在都是需要设置HiDPI的,要不然字体太小,根本没法用。参考这篇Arch的wiki,试了几个桌面环境。我当前主力用的Mate环境还不支持HiDPI设置。首先试了Cinnamon,果然支持的很不错,都自动处理好了。可惜的是主题很难看,尤其浏览器里看文字输入框,都是黑黑的一片,输入的文字也不清晰,折腾了半天也没弄好,放弃了。又先后试了Fedora26里带的几个桌面环境,lxde、xfce等,都对HiDPI支持不好。最后不得不尝试gnome,因为自从gnome3之后我就放弃使用gnome了,实在是不习惯。

惊喜的是,gnome3有个gnome-classic模式,使用习惯上基本根gnome2类似,而且对HiDPI支持很好,也是自动都设置好了,字体果然比我之前 1680×1050 的显示器好看多了(用了快8年的显示器,当时还特意买的16:10的)。下一步就是设置双显示器,因为启用了HiDPI之后,非高清的显示器上的图标和文字都变的非常大。现在就想让非高清显示器是正常的DPI,4k显示器才是HiDPI。

正好,Arch的wiki上也有关于多显示器设置这么一节,基本就是使用xrandr命令直接设置两个显示器的位置,然后把非高清显示器用 –scale 参数放大,但实际屏幕还是那么大,所以效果就是图标和文字都变小正常了。但我照着wiki上的信息和其他google来的xrandr命令照猫画虎,怎么也不对,我觉得应该设置正常了的时候,非高清显示器一开始还能正确显示,但过几秒种之后显示器就又黑屏了,很奇怪。折腾了很久,调各种参数也不对,最后想到,我的非高清显示器只有dvi和vga接口,我现在的显卡没有vga口,我用的是vga转hdmi的转接线,是不是这个转换不稳定呢?就把hdmi口拔掉,直接用DVI口,重启再重新设置,副显示器终于不黑屏了……

下面是我的具体环境和命令。Dell 4k显示器分辨率是 3840×2160,作为主显示器,菲利普显示器分辨率是 1680×1050,作为副显示器,在主显示器的左边。命令是

xrandr –output DVI-D-0 –auto –scale 2×2 –output DP-0 –auto –pos 3360×0

–output DVI-D-0: 设置副显示器,各个显示器的名称可以通过 xrandr 命令的输出看到
–auto: 自动设置模式,一般就是最大分辨率
–scale 2×2: 把宽和高都放大两倍,原来是1680×1050,那么放大之后这块屏幕的大小就变成了 3360×2100,这点很重要

–output DP-0:现在开始设置主显示器
–auto: 同上
–pos: 设置显示器位置,因为主显示器在副显示器右边,那主显示器的起始位置就是副显示器的宽度,正常的话是1680,但经过scale之后就是3360了,y轴位置不变还是0

这个设置其实根arch wiki上的很类似,就是那里的例子是主显示器在副显示器的左边,而且没有 –pos 参数(虽然下边例子里也提到了)。没有–pos参数直接用的时候,在我这里主副显示器之间会有重合,也就是有那么一块地方在两个显示器上都显示,说明两个显示器之间的位置关系没设置对,就需要用–pos参数来指定了。

这个thread对我也有一些帮助,帮我更好的理解–pos参数,–fb参数,两个显示器之间的位置关系和那些数值怎么计算等等。到此4k显示器折腾了一天加一个晚上,算是告一段落。有好显示器了是不是要写一些好代码出来啊……

Leave a Reply