使用vala编程语言,你能检测到其他应用程序何时全屏或最大化,并暂停自己的程序吗?

Using the vala programming language, can you detect when other applications are full screen or maximized, and suspend their own programs?

使用vala编程语言,是否可以检测其他应用程序何时全屏或最大化,并挂起自己的程序? 有没有类似的Demo?

这只能通过询问 window manager/compositor 来完成,因为这是实际处理此类事情的组件。根据会话类型,这会或不会起作用。

  • 在 Wayland 中,出于安全原因,无法查询 info/events 其他 windows。
  • 在 X 中,这可能可以使用 xwininfo 之类的东西(有关更多信息,请参阅 ). You can either directly call it and parse the result, or see which parts of the X protocol it uses by looking at its source code.

既然你提到了 [gnome] 作为一个标签,你 可能 可以通过编写你自己的 GNOME Shell 扩展来做到这一点,因为它可以直接访问 GNOME Shell 的内部结构。