![连接到所有 X 显示器的最佳方式](https://linux22.com/image/60576/%E8%BF%9E%E6%8E%A5%E5%88%B0%E6%89%80%E6%9C%89%20X%20%E6%98%BE%E7%A4%BA%E5%99%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E5%BC%8F.png)
在 C 或 C++ 程序中,连接到计算机上所有 X 显示器的最佳方式是什么?我想检查每个显示器的 X 空闲时间,以确定计算机是否在所有显示器上都处于空闲状态。
我目前的做法是打开文件系统监视来/tmp/.X11-unix
检测新的 X 套接字。当检测到新的显示器时,它会等待几秒钟,然后尝试连接到它。通常,这会失败,因为该进程没有访问显示的权限。因此,为了解决这个问题,我添加了xhost +SI:localuser:root
GDM presession 脚本(LightDM 的显示设置脚本)。这似乎在大多数情况下都有效。
然而,这个方法经常失败,我不知道为什么。我猜这是因为xhost
命令不可靠。我正在考虑从每个单独的显示器中提取 Xauthority cookie,但我找不到任何可靠/可移植的方法来执行此操作。