无论显示器连接状态如何都保持显示配置

无论显示器连接状态如何都保持显示配置

我真的不确定这个问题的最佳表述是什么,因此对于任何令人困惑的事情我深表歉意。

我有一台运行 Kubuntu 18.04 的计算机,它带有一个 AMD GPU(amdgpu-pro驱动程序),并连接了四个输出。当所有四个显示器都连接并运行时,我将它们映射为单个显示器(使用视频墙 KWin 脚本,尽管我xrandr --setmonitor过去也使用过 Xinerama)。这很好用,但如果发生某些变化(例如显示器断开连接或关闭),配置就会丢失,Xinerama 样式的映射就会中断,导致我的全屏应用程序从所有显示器的全屏恢复为单个显示器的全屏。

为了尝试解决这个问题,我创建了一个启动脚本,在/etc/X11/Xsession.d/其中运行一些xrandr命令。

xrandr --addmode DisplayPort-0 1920x1080
xrandr --addmode DisplayPort-1 1920x1080
xrandr --addmode DisplayPort-2 1920x1080
xrandr --addmode HDMI-A-0 1920x1080
xrandr --output DisplayPort-0 --mode 1920x1080 --pos 0x0 --rotate left --output DisplayPort-1 --mode 1920x1080 --pos 1080x0 --rotate left --output DisplayPort-2 --mode 1920x1080 --pos 2160x0 --rotate left --output HDMI-A-0 --mode 1920x1080 --pos 3240x0 --rotate left

这解决了启动时无法检测到显示器的问题,强制对其进行配置。远程访问显示显示器已按我想要的方式配置。但是,如果我重新连接显示器,或者关闭或打开显示器,它会出现与上述相同的问题。似乎存在某种热插拔事件导致 xrandr 重新配置自身,并撤消我设置的配置以及 kwin 脚本。

我正在尝试找到解决这个问题的方法:

  1. 计算机要么认为这四个显示器始终处于连接状态
  2. Kubuntu 只是忽略了热插拔事件
  3. 我有一个看门狗脚本,用于监视热插拔事件(或监视配置并将其与预期配置进行比较),可以将配置恢复到应有的状态。
  4. 您能想到的任何其他解决方案。这些只是我能想到的潜在修复方法。

在装有 NVidia 卡的 Windows 机器上,我通过在 NVidia 控制面板中手动设置 EDID 完成了第一步。我无法在装有 NVidia 或 AMD 的 Kubuntu 中复制该操作。

任何帮助都将不胜感激!

相关内容