如何用xrandr对准两个显示器的底部边缘?


21

我想在笔记本电脑上使用两个输出:

  • LVDS1 – 1366×768
  • HDMI1 – 1920×1080

我这样设置显示器:

xrandr --output LVDS1 --auto --output HDMI1 --auto --right-of LVDS1

这一切都很好,但是我的笔记本电脑的位置远低于外接显示器,并且屏幕的顶部边缘对齐,这使得从一个屏幕跳转到另一个屏幕变得不直观。有没有一种方法可以使底部边缘对齐?我以为可以使用该--pos标志来执行此操作,但是我已经尝试过并且没有看到任何区别(也许我不知道如何正确使用它)。

Answers:


38
 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 ----------------------------------

并且您需要在--pos选项中使用A和B的坐标。 x可以很容易地将其求解为1080-768 = 312,因此A为(1366,0),而B为(0,312)。

因此,合适的--pos选项是HDMI的--pos 1366x0和LVDS的--pos 0,312。您不必再指定虚拟屏幕的大小,它会自动调整大小。

请注意,这--pos可能会被滥用,例如在两个屏幕之间造成孔洞或重叠。大多数(全部?)WM将无法解决该问题。

编辑:哦,你想反过来解决这个问题。


嘿,发布之前就已经弄清楚了。您能否解释--pos标志的工作方式?
elynnaie 2012年

谢谢,这很有道理!我想在示例中您想用1080代替1600。
elynnaie 2012年

@denaje:固定。
BatchyX 2012年

2
不使用魔术值就无法在xrandr中执行此操作吗?我希望有一个脚本可以工作,无论插入的屏幕分辨率如何。如果没有,我想我可以从xrandr的输出中提取值,但这听起来有些乏味……
Khaur

6

除了@BatchyX的出色答案之外,还可以使用ARandR(它表示“另一个XRandR GUI”)来替代-并且IMO更方便- :

ARandR旨在为XRandR提供简单的视觉前端。监视器的相对位置以图形方式显示,并且可以通过拖放方式进行更改。

您可能需要先安装它,但是大多数发行版的存储库中都可以使用它。这是在LXDE上寻找我的样子,其中的设置是一个上方通过VGA连接的外部监视器,其下方是本机(上网本大小)监视器:

ARandR屏幕截图


3

如果您正在寻找基于GUI的拖放式解决方案,那么我建议您使用ARandR

它允许您设置最重要的XRandR设置,例如屏幕位置和分辨率,然后可以将其保存为以xrandr相应参数调用的Shell脚本形式。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.