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

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

这不是一个问题,而是我在 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

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

更新

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

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

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

显示器布局

答案1

我遇到了同样的错误。你的解决方法对我不起作用。你的技巧只是一个触发器,让错误不会掉进去。我深入研究了一下,发现了一个有解决方案的好人这也可能对其他人有帮助。

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

您可以这样做:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary

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

可悲的是这里的问题是司机(这就是错误)似乎覆盖了我们设置(或未设置)的平移。但它没有设置平移的另一部分:跟踪区域!跟踪区域实际上是摄像机跟随显示器上的光标的屏幕部分。

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

"前四个参数[论点panning]指定总平移区域,接下来的四个是指针跟踪区域(默认为相同区域)。最后四个参数指定边框,默认为 0。" [曼克斯兰德尔]

相关内容