小编s00*_*can的帖子

使用 x11 和 AMD 卡忽略监视器热插拔事件

我有一个三重监视器设置(xorg.conf 用 amdcccle 生成:http ://pastebin.com/gWSVEyLa )在 Arch Linux 上运行,Xmonad作为我的窗口管理器。从物理上讲,左侧有一个高清电视,中间有一个不错的戴尔显示器,右侧有一个旋转的显示器。因为我的 HDTV 只有一个 HDMI 输入,所以我在其他一些设备上使用了一个 4 输入、2 输出开关。我的 HDTV 并非始终处于连接状态,这会导致我的虚拟桌面的该部分被禁用。这会引起很多烦恼:

  1. 由于驱动程序的热插拔事件(基本上运行 xrandr --auto)导致屏幕闪烁烦人。
  2. 物理屏幕顺序已更改(hdtv 成为第三台显示器而不是第一台显示器),导致我专注于屏幕的键绑定错误。我已经使用我的 xmonad 配置解决了这个问题,但是当只检测到两个监视器时,绑定仍然会发生变化。
  3. 如果我在没有连接 HDTV 的情况下启动计算机,则虚拟桌面的该部分将无法使用,直到它在热插拔事件上连接或我运行 xrandr 以启用它。
  4. 断开连接的监视器上工作区中的 Windows 被移动到可见监视器上的其他工作区。这基本上意味着我的 HDTV 上显示的任何窗口都会被随机抛出,由于 Xmonad 处理工作区的方式,这是毫无意义的。
  5. 我无法将一两台显示器置于 dpms 待机状态或手动关闭显示器,xrandr --off因为其他显示器会吓坏了。例如,如果我只是用我的电视看东西,我不一定要打开另外两个显示器,但我希望它们的窗口位置保持不变。

当我在 HDMI 开关上切换输入或打开/关闭它,或物理断开电缆时,我的视频驱动程序会将其解释为断开我的显示器,并将其从我的虚拟桌面中删除。我希望 X 始终表现得好像所有三个监视器都已连接并且不响应任何监视器热插拔事件。Linux 能够使用完全自动的 xorg 配置是很棒的,但我一直想要这个精确的设置,直到我改变我的硬件。我的 xorg 日志中的热插拔事件如下所示:

When disconnected:
  [  1684.459] (II) fglrx(0): Hot-plug event occurs on device: 1:0:0
  [  1684.459] (II) fglrx(0): EDID vendor "DEL", prod id 40993
  +--  3 lines: [ …
Run Code Online (Sandbox Code Playgroud)

linux xorg xmonad

5
推荐指数
1
解决办法
1797
查看次数

标签 统计

linux ×1

xmonad ×1

xorg ×1