Estándar de comunicación del sistema X Window
Extended Window Manager Hints , también conocido como NetWM , [1] es un estándar del sistema X Window para la comunicación entre administradores de ventanas y aplicaciones . Se basa en la funcionalidad del Manual de convenciones de comunicación entre clientes (ICCCM).
Estos estándares formulan protocolos para la mediación del acceso a recursos X compartidos, como la pantalla y el foco de entrada . Las aplicaciones solicitan acceso, mientras que el administrador de ventanas lo concede o lo niega. La comunicación se produce a través de propiedades X y mensajes del cliente . El EWMH es un conjunto completo de protocolos para implementar un entorno de escritorio . Define protocolos tanto obligatorios como opcionales. El administrador de ventanas puede optar por implementar escritorios virtuales o un orden de apilamiento en capas , pero si lo hace, entonces el EWMH define cómo se comunica esto.
Descripción general del protocolo
Todos los identificadores del protocolo EWMH comienzan con el prefijo de cinco letras _NET_
.
Propiedades de la ventana raíz
El WM debe actualizar un conjunto de propiedades en la ventana raíz:
- _NET_SUPPORTED
- enumera todos los protocolos EWMH admitidos por este WM.
- _NET_CLIENT_LIST
- enumera todas las ventanas de aplicaciones administradas por este WM.
- _NET_NUMBER_OF_ESCRITORIO
- indica el número de escritorios virtuales.
- _NET_DESKTOP_GEOMETRÍA
- define el tamaño común de todos los escritorios.
- _NET_DESKTOP_VIEWPORT
- define la esquina superior izquierda de cada escritorio.
- _NET_CURRENT_DESKTOP
- proporciona el índice del escritorio actual.
- _NET_DESKTOP_NAMES
- enumera los nombres de todos los escritorios virtuales.
- _NET_ACTIVE_WINDOW
- da la ventana actualmente activa.
- _NET_WORKAREA
- contiene una geometría para cada escritorio.
- _NET_SUPPORTING_WM_CHECK
- da la ventana del WM activo.
- _NET_VIRTUAL_ROOTS
- si el WM admite ventanas raíz virtuales.
- _NET_DESKTOP_LAYOUT
- muestra el diseño del buscapersonas activo.
- _NET_SHOWING_DESKTOP
- es 1 para el modo "mostrar el escritorio".
Mensajes de clientes
Una aplicación puede enviar mensajes de cliente a un administrador de ventanas:
- _NET_WM_STATE
- para cambiar el estado de la ventana de una aplicación.
- _NET_ACTIVE_WINDOW
- para activar una ventana de aplicación.
- _NET_SHOWING_DESKTOP
- alterna la visualización de las ventanas de la aplicación.
- _NET_CLOSE_WINDOW
- para cerrar una ventana de aplicación.
- _NET_WM_MOVERESIZE
- para cambiar el tamaño de forma interactiva la ventana de una aplicación.
- _NET_MOVERESIZE_WINDOW
- para cambiar inmediatamente el tamaño de la ventana de una aplicación.
- _NET_REQUEST_FRAME_EXTENTS
- Consulta dimensiones del borde del marco.
- _NET_WM_FULLSCREEN_MONITORS
- define los monitores para una ventana de pantalla completa.
Si WM admite el apilamiento de ventanas:
- _NET_RESTACK_WINDOW
- solicita cambiar el orden de apilamiento de una ventana.
Si el WM admite escritorios virtuales:
- _NET_CURRENT_DESKTOP
- cambia el escritorio actual.
- _NET_NUMBER_OF_ESCRITORIO
- cambia el número de escritorios.
Un WM puede optar por ignorar estos mensajes:
- _NET_DESKTOP_GEOMETRÍA
- cambia la dimensión de todos los escritorios.
- _NET_DESKTOP_VIEWPORT
- cambia la ventana gráfica del escritorio actual.
Propiedades de ventana
El EWMH define estas propiedades de la ventana de la aplicación:
- _NET_WM_NAME
- el título de la ventana.
- _NET_WM_VISIBLE_NAME
- el título de la ventana como lo muestra el WM.
- _NET_WM_ICON_NAME
- el título del icono.
- _NET_WM_VISIBLE_ICON_NAME
- el título del icono como lo muestra el WM.
- _NET_WM_DESKTOP
- el escritorio en el que se encuentra la ventana.
- _NET_WM_WINDOW_TYPE
- el tipo funcional de la ventana.
- _NET_WM_STATE
- el estado actual de la ventana.
- _NET_WM_ALLOWED_ACTIONS
- una lista de operaciones de usuario admitidas.
- _NET_WM_STRUT
- si la ventana desea reservar espacio en el borde.
- _NET_WM_STRUT_PARTIAL
- Detalles del espacio reservado en el borde de la pantalla.
- _NET_WM_ICON_GEOMETRY
- la geometría de un posible icono.
- _NET_WM_ICON
- una serie de posibles iconos para el cliente.
- _NET_WM_PID
- el ID de proceso del cliente propietario de esta ventana.
- _NET_WM_HANDLED_ICONS
- si un buscapersonas proporciona iconos.
- _NET_WM_USER_TIME
- hora de la última actividad del usuario en esta ventana.
- _NET_WM_USER_TIME_WINDOW
- la ventana que muestra la actividad del usuario.
- _NET_FRAME_EXTENTS
- los tamaños de marco izquierdo, derecho, superior e inferior.
- _NET_WM_OPAQUE_REGION
- qué regiones de la ventana son completamente opacas.
- _NET_WM_BYPASS_COMPOSITOR
- solicita que la ventana no esté compuesta.
Estados de ventana
La ICCCM define sólo tres estados distintos en los que puede estar una ventana:
- Retirado,
- Normal,
- Icónico.
Además admite una Urgent
bandera para solicitar la atención del usuario.
La EWMH define trece banderas de estado de ventana:
- Arriba: muestra la ventana encima de otras,
- Abajo: muestra la ventana debajo de otras,
- DemandasAtención: igual que la bandera urgente,
- Enfocado: la ventana tiene foco de entrada,
- Pantalla completa: muestra la ventana en pantalla completa,
- Oculto: la ventana no está asignada,
- MaximizedHorizontal: la ventana se estira horizontalmente,
- MaximizedVertical: la ventana se estira verticalmente,
- Modal: la ventana es una ventana emergente modal,
- Sombreado: la ventana está cerrada,
- SkipPager: la ventana no debería mostrarse en un buscapersonas,
- SkipTaskbar: la ventana debe ser ignorada por una barra de tareas,
- Sticky: la ventana debería mostrarse en todos los escritorios virtuales.
Protocolos adicionales
- _NET_WM_PING
- un WM puede usar esto para probar si un cliente está vivo.
- _NET_WM_SYNC_REQUEST
- para sincronizar repintados al cambiar el tamaño.
- _NET_WM_FULL_PLACEMENT
- el WM manejará cualquier ubicación de ventana.
Lista de administradores de ventanas que admiten sugerencias extendidas del administrador de ventanas
Administradores de ventanas dinámicas y de mosaico
- aewm
- impresionante
- bspwm
- equino [2]
- fvwm
- goomwwm
- herbstluftwm
- i3 [3]
- IzquierdaWM
- Noción [4]
- Qtile
- espectro
- sutil [5]
- Wingo [6]
- wmii
- xmonad (debe estar activado en la configuración)
Administradores de ventanas apilables
Otros administradores de ventanas
notas y referencias
- ^ "Net WM - Caja negra". Archivado desde el original el 1 de octubre de 2007 . Consultado el 29 de septiembre de 2007 .
- ^ "polachok/echinus: README - 3. Acerca de paneles y buscapersonas". GitHub . Consultado el 19 de agosto de 2022 .
- ^ "i3 _NET_SUPPORTED". GitHub . Consultado el 14 de febrero de 2021 .
- ^ "Se corrigió la configuración de propiedades _NET_SUPPORTING_WM_CHECK y _NET_SUPPORTED". GitHub . Consultado el 19 de agosto de 2022 .
- ^ "¿Qué es sutil?" . Consultado el 19 de agosto de 2022 .
- ^ "BurntSushi/wingo: CUMPLIMIENTO - EWMH". GitHub . Consultado el 19 de agosto de 2022 .
- ^ "CUMPLIMIENTO de Blackbox". GitHub . Consultado el 15 de febrero de 2021 .
- ^ "cambios en ctwm 4.0.0".
- ^ "Soporte Fluxbox EWMH". Archivado desde el original el 19 de agosto de 2009 . Consultado el 9 de septiembre de 2009 .
- ^ "Compatibilidad ampliada con sugerencias del administrador de ventanas para FVWM".
- ^ "FVWM - Características".
- ^ "CUMPLIMIENTO de IceWM". GitHub . Consultado el 28 de diciembre de 2020 .
- ^ "joewing.net | Soporte de JWM EWMH" . Consultado el 15 de febrero de 2021 .
- ^ "CUMPLIMIENTO de Metacity" . Consultado el 15 de febrero de 2021 .
- ^ "CUMPLIMIENTO de Openbox". GitHub . Consultado el 15 de febrero de 2021 .
- ^ estándares xfwm4
enlaces externos
- Página web oficial
- El proyecto de especificación del administrador de ventanas en freedesktop.org
- Soporte extendido de sugerencias del Administrador de ventanas para FVWM