我想在笔记本电脑上使用两个输出:
- LVDS1 – 1366×768
- HDMI1 – 1920×1080
我像这样设置我的监视器:
xrandr --output LVDS1 --auto --output HDMI1 --auto --right-of LVDS1
这一切都很好,但我的笔记本电脑比外接显示器低得多,而且由于屏幕的顶部边缘是对齐的,因此从一个屏幕跳转到另一个屏幕相当不直观。有没有办法可以对齐底部边缘?我以为我可以使用标志--pos
来做到这一点,但我试过了,没有看到任何区别(也许我不知道如何正确使用它)。
答案1
xrandr --output LVDS1 --auto --pos 0x312 --output HDMI1 --auto --pos 1366x0
基本上,--pos 指定屏幕左上角在虚拟屏幕空间中的位置。虚拟屏幕是横跨整个物理屏幕的屏幕。这是指定屏幕位置的一种非常通用的方法。
您需要此配置:
(virtual screen coordinates)
0 1366 1366+1920
0 A-----------------------
| |
| |
| |
x? B---------| HDMI |
| | |
| LVDS | 1920x1080 |
|1366x768 | |
1080 ----------------------------------
并且您需要在选项中使用 A 和 B 的坐标--pos
。
x
很容易解决,因为 1080 - 768 = 312,所以 A 位于 (1366,0) 而 B 位于 (0,312)。
因此,适当的 --pos 选项适用--pos 1366x0
于 HDMI 和--pos 0x312
LVDS。您不必(再)指定虚拟屏幕尺寸,它会自动调整大小。
请注意,这--pos
可能会被滥用,例如在两个屏幕之间产生空洞,或造成重叠。大多数(所有?)WM 都无法处理这种情况。
编辑:哦,你想要反过来,修复了这个问题。
答案2
除了@BatchyX 的出色回答,另一种更方便的方法是使用安得拉邦(代表“另一个 XRandR GUI”):
ARandR 旨在为 XRandR 提供一个简单的可视化前端。相对显示器位置以图形方式显示,并可通过拖放方式进行更改。
您可能需要先安装它,但它在大多数发行版的存储库中可用。这是我在 LXDE 上看到的样子,上面有一个通过 VGA 连接的外接显示器,下面有一个本机(上网本大小)显示器:
答案3
如果你正在寻找基于拖放式 GUI 的解决方案,我可以推荐安得拉邦。
它允许您设置最重要的 XRandR 设置,例如屏幕位置和分辨率,然后可以以使用xrandr
相应参数调用的 shell 脚本的形式保存这些设置。
答案4
有人管理了...希望这有帮助吗?
底部边缘对齐的双屏设置
为了其他正在与屏幕作斗争的人,我有一个可以做到这一点的脚本(但非常非常慢)
安装脚本
xrandr --output VGA1 --auto xrandr --output LVDS1 --auto xrandr --output VGA1 --rotate left eval "`monconf`"
monoconf 脚本
#!/usr/bin/env python import subprocess output = >subprocess.check_output(["/home/tag/.bin/mon.ls"]) output = [ item.split() for item in >output.split("\n") ] mons = {} for mon in output: if len(mon) > 0: if mon[1] == "connected": res=mon[2] res=res.split("x") for item in res[1].split("+"): res.append(item) res.pop(1) mons[mon[0]] = res BOTTOM_LEFT = "LVDS1" TOP_RIGHT="VGA1" LEFT_WIDTH = mons[BOTTOM_LEFT][0] LEFT_HEIGHT = mons[BOTTOM_LEFT][1] RIGHT_WIDTH = mons[TOP_RIGHT][0] RIGHT_HEIGHT = mons[TOP_RIGHT][1] print "xrandr --output %s --pos 0x%s" % ( BOTTOM_LEFT, (int(RIGHT_HEIGHT) - int(LEFT_HEIGHT))) print "xrandr --output %s --pos %sx0" % ( TOP_RIGHT, int(LEFT_WIDTH) )
和 mon.ls 命令
xrandr -q | grep "^[^\ ].*" | grep -v Screen
所有这些都非常黑客化,但它确实有效