是否可能让 xrandr 对拔下辅助显示器、移除 HDMI/DisplayPort 电缆没有反应?

Rou*_*ltx 6 xrandr nvidia multiple-monitors 16.04 16.10

我使用的是 Nvidia GTX 950 GPU 桌面系统,并连接了三台显示器。一台显示器在 HDMI 输出端口上,另外两台在 DisplayPort 端口上。

默认行为是关闭“辅助”显示器之一会导致 xrandr 调整虚拟桌面的大小并重新排列所有窗口以适应幸存的显示器。

有没有办法让 xrandr 忽略 HDMI 电缆和/或相关显示器的移除,以便它保持“虚拟桌面”不变(即使窗口在屏幕外且难以访问)并且不重新执行 -是否将所有活动窗口合并到幸存的显示中?此外,重新插入电缆和相同的显示器并重新点亮?

Ubuntu 16.04 和 16.10 似乎具有相同的基本行为。我有两个作为启动选项。谢谢你。

编辑 2017:我发现了一些 bash 和 python 脚本来尝试自动重新排列屏幕外窗口。这些对于应对这种情况可能会有所帮助。即使使用 Ubuntu 17.04(格式全新安装),这个一般问题对我来说仍然存在。脚本讨论:断开第二台显示器后如何恢复屏幕外窗口?使用命令行将窗口移动到特定屏幕

use*_*.dz 4

这可能适用于 HDMI/VGA 端口,但不适用于 DP,因为 DP 的某些标准应始终通过检测事件。

\n\n

我可以在带有 VGA/DP 的 Dell E6410 上进行测试。现在从 VGA 拔下电缆不会触发 xrandr 重置和移动窗口。

\n\n
    \n
  1. gksu nvidia-settings
  2. \n
  3. 转到 X 配置选项卡,然后导出配置
  4. \n
  5. 仅复制设备部分
  6. \n
  7. sudo mkdir /etc/X11/xorg.conf.d/
  8. \n
  9. sudo nano /etc/X11/xorg.conf.d/90_my_nvidia_hacks.conf
  10. \n
  11. 粘贴设备部分

    \n\n
    Section "Device"\n    Identifier     "Device0"\n    Driver         "nvidia"\n    VendorName     "NVIDIA Corporation"\n    BoardName      "NVS 3100M"\nEndSection\n
    Run Code Online (Sandbox Code Playgroud)
  12. \n
  13. 添加这一行Option "UseHotplugEvents" "false"

    \n\n
    Section "Device"\n    Identifier     "Device0"\n    Driver         "nvidia"\n    VendorName     "NVIDIA Corporation"\n    BoardName      "NVS 3100M"\n    Option "UseHotplugEvents" "false"\nEndSection\n
    Run Code Online (Sandbox Code Playgroud)
  14. \n
  15. 重新启动或重新启动 lig​​htdm

    \n\n
    sudo systemctl restart lightdm\n
    Run Code Online (Sandbox Code Playgroud)
  16. \n
\n\n

您可能会发现这也很有用Option "AllowEmptyInitialConfiguration" "true"即使在 X 启动时没有连接屏幕,它也会创建空的监视器部分。

\n\n

参考:

\n\n
\n

当我插入或拔出显示器,或者关闭显示器电源然后再次打开电源时,我的显示器以意想不到的方式重新配置。

\n\n

这是 \xe2\x80\x9c 中描述的问题的特例。我在 nvidia-settings 中配置的显示\n 设置不会保留。\xe2\x80\x9d。某些包含高级显示配置工具的桌面环境将自动配置显示布局以响应检测到的配置更改。例如,当插入新显示器时,此类桌面环境可能会尝试恢复与当前连接的显示器组一起使用的先前布局,或者可能根据其自己的策略配置默认布局。

\n\n

在支持 RandR 1.2 或更高版本的 X 服务器上,当显示器连接和断开连接时,NVIDIA X 驱动程序\n 通过 RandR 向 X 服务器报告显示器热插拔事件。这些热插拔事件可能会触发具有高级显示管理功能的桌面环境来更改显示配置。这些更改可能会影响设置,例如活动显示器组、其分辨率和相对位置、每个显示器的色彩校正设置等等。

\n\n

除了通过连接或断开显示器连接生成的热插拔事件之外,即使没有进行物理插入或拔出,​​DisplayPort 显示器也会在关机时生成热拔出事件,并在开机时生成热插拔事件。这可能会导致热插拔引起的显示配置更改,而不会发生任何实际的热插拔操作。

\n\n

如果显示热插拔事件导致意外的配置更改,请尝试 \xe2\x80\x9c 中列出的解决方案和解决方法。我在 nvidia-settings 中配置的显示\n 设置不会保留。\xe2\x80\x9d。另一种解决方法是使用 UseHotplugEvents X 配置选项禁用 NVIDIA X 驱动程序的热插拔事件报告。请注意,此选项对 DisplayPort 设备没有影响,该设备必须报告所有热插拔事件以确保功能正常。

\n\n
\n\n

Option "UseHotplugEvents" "boolean"

\n\n

启用此选项后,当显示器插入 NVIDIA GPU 或从 NVIDIA GPU 拔出时,NVIDIA X 驱动程序将生成 RandR 显示更改事件。某些桌面环境将侦听这些事件,并在添加或删除显示器时动态重新配置桌面。

\n\n

禁用此选项会抑制非 DisplayPort 显示器(即通过 VGA、DVI 或 HDMI 连接的显示器)生成这些 RandR 事件。对于通过 DisplayPort 连接的显示器,无法抑制热插拔事件。

\n\n

请注意,探测显示配置(例如使用 xrandr 或 nvidia 设置)可能会导致生成 RandR 显示更改事件,\n 无论此选项是启用还是禁用。\n 此外,某些 VGA 端口无法进行热插拔检测:在此类端口上,只能通过重新探测显示器配置来检测显示器的添加或删除。

\n\n

默认值:打开。添加或删除显示器时,驱动程序将生成 RandR 事件。

\n\n

Option "AllowEmptyInitialConfiguration" "boolean"

\n\n

通常,如果 NVIDIA X 驱动程序找不到连接到 NVIDIA GPU 的任何显示设备,则该驱动程序将无法启动。\nAllowEmptyInitialConfiguration 会覆盖该行为,以便 X\n 服务器无论如何都会启动,即使没有连接显示设备也是如此。

\n\n

当启动 X 服务器时预计没有显示设备连接到 NVIDIA GPU,但稍后可能会连接时,在配置中启用此选项是有意义的。例如,某些显示器在关闭时不会显示为已连接,即使它们物理连接到 GPU。

\n\n

另一个有用的场景是在基于 Optimus 的笔记本电脑中,其中 RandR 1.4 显示卸载(请参阅第 33 章,使用 RandR 1.4 卸载图形显示)用于在非 NVIDIA 内部显示面板上显示屏幕,但是稍后可能会连接外部显示器。

\n\n

默认值:关闭。如果驱动程序找不到至少一台已连接的显示设备,则驱动程序将拒绝启动。

\n
\n


归档时间:

查看次数:

3313 次

最近记录:

8 年,4 月 前