使用 xrandr 进行双显示器设置:在没有/禁用滚动的情况下扩展

roc*_*ker 11 laptop xrandr multi-monitor xubuntu

这不是一个问题,而是我遇到的 Ubuntu 下问题的解决方法。

设置:
给定一个笔记本电脑屏幕(例如“LVDS-1-0”)和第二个屏幕(例如“DP-1”),其中第二个屏幕是您的主屏幕,而您的显示器位于主屏幕的右侧(或左)作为扩展名(见图)。尽管明确的 xrandr 指示不这样做,但第一个屏幕总是虚拟地扩展。输入这个时,我能够避免在主监视器上将鼠标光标向右移动时烦人的滚动。

xrandr --output LVDS-1-0 --off
xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0
Run Code Online (Sandbox Code Playgroud)

在此之后,它只是从一台显示器转到另一台显示器而无需滚动屏幕。

更新

切换到独立显卡(nvidia 是独立的,我的笔记本电脑集成了英特尔)后,需要更改输出顺序:

output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}')
output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}')

xrandr --output $output_LVDS --off
xrandr --output $output_LVDS --mode 1920x1080 --pos 1920x0 --output $output_DP --mode 1920x1080 --pos 0x0  --primary
Run Code Online (Sandbox Code Playgroud)

为了更方便,我使这些变量具有更大的灵活性,因为在独立显卡和集成显卡之间切换会更改输出设备的名称(例如,LVDS-1-0 与 LVDS-1)。

显示器布局

Seb*_*rth 7

我遇到了同样的错误。你的解决方法对我不起作用。你的技巧只是一个触发器,使错误不会落入。我深挖了一下,找到了一个可以帮助其他人的解决方案的好人

主要问题是我们在这里遇到的错误导致滚动到另一个的显示器有一个虚拟屏幕,两个屏幕的大小相加。因此,该解决方案似乎会禁用该屏幕上的额外虚拟空间以适应显示器分辨率。这通常通过--panning AxB参数完成- 我们使用它来设置虚拟空间大小。

这是你可以做到的:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary
Run Code Online (Sandbox Code Playgroud)

\添加斜线以在命令中使用换行符。)

可悲的是,这里的问题是驱动程序(即错误)似乎覆盖了我们设置(或未设置)的平移。但它没有设置平移的另一部分:跟踪区域!跟踪区域实际上是相机跟随该监视器上的光标的屏幕部分。

tl; dr:所以我们的想法是将平移设置为驱动程序,但限制跟踪区域。

这是通过以下命令完成的:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 \
  --output HDMI-0   --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0    --primary
Run Code Online (Sandbox Code Playgroud)

[panning参数的]前四个参数指定总平移区域,接下来的四个参数是指针跟踪区域(默认为相同区域)。最后四个参数指定边框,默认为 0。” [男人 xrandr ]

  • 最后,你的解决方案对我没有帮助,但我通过保留决议找到了解决方案。镜像命令:“xrandr --output HDMI1 --same-as Laptop1”,扩展命令:“xrandr --output Laptop1 --auto --output HDMI1 --auto --left-of Laptop1” (2认同)