Si todos los administradores de ventanas que está interesado en ejecutar con el soporte EWMH, el estándar Extended Window Manager Hints, hay formas elegantes de hacerlo (hablando con Xlib a través de ctypes, por ejemplo). La propiedad de la ventana raíz (consulte here) le indica qué ventana está activa (si existe); La propiedad _NET_WM_STATE
de la ventana activa es una lista de átomos que describen su estado, que incluirá _NET_WM_STATE_FULLSCREEN
si esa ventana es a pantalla completa. (Si tienes varios monitores, por supuesto, una ventana podría ser de pantalla completa en uno de ellos sin estar activo; creo que pueden existir otros casos en los que una ventana puede ser de pantalla completa sin estar activo; no creo que haya ninguna forma de cubrirlos). todo sin verificar esencialmente _NET_WM_STATE
para cada ventana, sin embargo).
Puede que tenga que decidir exactamente lo que quiere decir con "aplicación de pantalla completa". ¿Es solo una ventana que cubre suficiente de la pantalla que no hay otras ventanas visibles? ¿Qué pasa si hay más de un monitor? –
ok, editó la pregunta. –