使用xrandr的双显示器设置:扩展具有/不具有/不具有滚动功能


11

这不是问题,而是我遇到的在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)。

显示器布局

Answers:


6

我遇到了同样的错误。您的解决方法对我不起作用。您的把戏只是触发触发器,使该错误不会消失。我仔细研究了一下,发现了一个不错的人,其解决方案也可能会帮助其他人。

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

这是您可以执行的操作:

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

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

令人遗憾的是,这里的问题是驱动程序(即bug)似乎覆盖了我们设置(或未设置)的平移。但是,这并不是要设置平移的另一部分:跟踪区域!跟踪区域实际上是摄像机跟随该监视器上的光标在屏幕的那部分。

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”。[ man xrandr ]


我将最后一个命令放在通过键盘调用的外壳脚本中(切换显示硬件时),并且在自动登录后几秒钟。
塞巴斯蒂安·巴斯

在我的设置中,设置跟踪区域也至关重要。
krlmlr 16-10-31

最后,您的解决方案对我没有帮助,但我通过不考虑这些决议找到了解决方案。镜像命令:xrandr --output HDMI1 --same-as Laptop1以及扩展命令:xrandr --output Laptop1 --auto --output HDMI1 --auto --left-of Laptop1
Edenshaw
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.