在 X-11 下,有多种方法可以检测屏幕是否处于现在在全屏模式下。除了每秒检查当前状态之外,还有什么方法可以“监听”全屏状态的变化吗?据我所知(通过dbus-monitor
),当状态发生这种变化时,没有任何内容发送到会话或系统 D-Bus。
答案1
我不确定你的意思是“全屏模式下的屏幕”。
你可以有一个窗户在全屏模式下。窗口大小更改(请求和实际更改)是正常的 X 事件,这些事件通常由窗口管理器 (WM) 拦截和处理。
因此,如果您想要的话,您可以修改 WM 的源代码以将它们传递到 D-Bus,但不要期望任何其他人使用此构造(X 在没有 D-Bus 的情况下工作得很好)。
如果您指的是实际屏幕尺寸的变化,我假设这些将通过 RANDR 扩展来完成,因此您需要拦截这些变化。