Léxico TI › Programación › _NET_SUPPORTING_WM_CHECK

_NET_SUPPORTING_WM_CHECK

Programación Svenska → Actualizado: 2026-10-09

El apretón de manos que permite a un programa saber si de verdad hay un gestor de ventanas compatible con EWMH en marcha, sin fiarse de las propiedades que dejó uno muerto.

La ventana raíz sobrevive al gestor de ventanas. Todo lo que este escribió en ella, _NET_SUPPORTED, _NET_CLIENT_LIST, _NET_CURRENT_DESKTOP, sigue ahí tras un cuelgue y parece tan válido como antes. La solución de EWMH es un testigo: el gestor crea una ventana hija de la raíz, pequeña y nunca mostrada, y pone _NET_SUPPORTING_WM_CHECK tanto en la raíz como en la hija, ambas con el ID de la hija como valor. Un programa que quiera saber cómo están las cosas lee la propiedad en la raíz, sigue el ID y comprueba que la hija existe y se señala a sí misma. Si el gestor muere, sus ventanas desaparecen con la conexión, la cadena se rompe y el viejo valor de la raíz queda en evidencia como basura.

La ventana hija lleva además _NET_WM_NAME con el nombre del gestor, que es como wmctrl -m y tantos scripts saben si hablan con Openbox, KWin o Mutter. Al lado, en la raíz, está _NET_SUPPORTED: la lista de todos los átomos _NET_ que el gestor entiende, de modo que un programa pueda preguntar antes de pedir pantalla completa o un strut en vez de enviar y cruzar los dedos. GTK y Qt hacen la comprobación al arrancar y guardan la respuesta. El patrón procede del _WIN_SUPPORTING_WM_CHECK de GNOME en 1998, y supera a la selección WM_Sn, la ortodoxa según ICCCM, en un único punto: dice qué sabe hacer el gestor, no solo que existe.

← Volver al léxico