Extended Window Manager Hints , también conocido como NetWM , [1] es un estándar del sistema X Window para la comunicación entre los administradores de ventanas y las 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 de cliente . El EWMH es un conjunto completo de protocolos para implementar un entorno de escritorio . Define protocolos obligatorios y opcionales. El administrador de ventanas puede optar por implementar escritorios virtuales o un orden de apilamiento en capas , pero si lo hace, el EWMH define cómo se comunica.
Descripción general del protocolo
Todos los identificadores de 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 compatibles con este WM.
- _NET_CLIENT_LIST
- enumera todas las ventanas de aplicaciones administradas por este WM.
- _NET_NUMBER_OF_DESKTOPS
- indica la cantidad de escritorios virtuales.
- _NET_DESKTOP_GEOMETRY
- define el tamaño común de todos los escritorios.
- _NET_DESKTOP_VIEWPORT
- define la esquina superior izquierda de cada escritorio.
- _NET_CURRENT_DESKTOP
- da 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 "mostrar el modo de 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 la ventana de una aplicación.
- _NET_WM_MOVERESIZE
- para cambiar el tamaño de la ventana de una aplicación de forma interactiva.
- _NET_MOVERESIZE_WINDOW
- para cambiar el tamaño de la ventana de una aplicación inmediatamente.
- _NET_REQUEST_FRAME_EXTENTS
- consulta las dimensiones del borde del marco.
- _NET_WM_FULLSCREEN_MONITORS
- define los monitores para una ventana de pantalla completa.
Si el WM admite el apilamiento de ventanas:
- _NET_RESTACK_WINDOW
- pide cambiar el orden de apilamiento de una ventana.
Si el WM admite escritorios virtuales:
- _NET_CURRENT_DESKTOP
- cambia el escritorio actual.
- _NET_NUMBER_OF_DESKTOPS
- cambia el número de escritorios.
Un WM puede optar por ignorar estos mensajes:
- _NET_DESKTOP_GEOMETRY
- cambia la dimensión de todos los escritorios.
- _NET_DESKTOP_VIEWPORT
- cambia la ventana gráfica del escritorio actual.
Propiedades de la ventana
La EWMH define estas propiedades de la ventana de 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 que posee 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
El ICCCM define solo tres estados distintos en los que puede estar una ventana:
- Retirado,
- Normal,
- Icónico.
Además soporta una Urgent
bandera para solicitar la atención del usuario.
El EWMH define trece banderas de estado de ventana:
- Arriba: muestra la ventana encima de otras,
- Abajo: muestra la ventana debajo de otras,
- DemandsAttention: igual que la bandera urgente,
- Enfocado: la ventana tiene un enfoque de entrada,
- Pantalla completa: muestra la ventana a 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á enrollada,
- SkipPager: la ventana no debe 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 se encargará de la colocación de cualquier ventana.
Lista de administradores de ventanas que admiten sugerencias de administrador de ventanas extendidas
Gestores de ventanas dinámicos y en mosaico
- aewm
- increíble
- bspwm
- goomwwm
- herbstluftwm
- i3 [2]
- espectros
- wmii
- xmonad (debe estar activado en la configuración)
- Qtile
- LeftWM
Gestores de ventanas apilables
- Caja negra [3]
- Compiz
- CTWM (a partir de 4.0.0 [4] )
- edewm
- Fluxbox [5]
- FVWM (a través de un complemento anterior a v2.4 y soporte nativo de v2.5) [6] [7]
- IceWM [8]
- JWM [9]
- KWin
- Metaciudad [10]
- Marco
- Caja abierta [11]
Otros gestores de ventanas
- Iluminación (E16 y E17)
- malvado
- interfazwm
- cajita de cerillas
- Pez sierra (no completamente)
- wmfs
- Xfwm [12]
notas y referencias
- ^ "Net WM - Caja negra" . Archivado desde el original el 1 de octubre de 2007 . Consultado el 29 de septiembre de 2007 .
- ^ "i3 _NET_SUPPORTED" . Consultado el 14 de febrero de 2021 .
- ^ "CUMPLIMIENTO Blackbox" . Consultado el 15 de febrero de 2021 .
- ^ "Cambios en ctwm 4.0.0" .
- ^ "Soporte Fluxbox EWMH" . Consultado el 9 de septiembre de 2009 .
- ^ "Soporte extendido de sugerencias del administrador de ventanas para FVWM" .
- ^ "FVWM - Características" .
- ^ "CUMPLIMIENTO DE IceWM" . Consultado el 28 de diciembre de 2020 .
- ^ "joewing.net | JWM EWMH Support" . Consultado el 15 de febrero de 2021 .
- ^ "CUMPLIMIENTO Metacity" . Consultado el 15 de febrero de 2021 .
- ^ "CUMPLIMIENTO DE Openbox" . Consultado el 15 de febrero de 2021 .
- ^ estándares xfwm4
enlaces externos
- Página web oficial
- Proyecto de especificación del administrador de ventanas en freedesktop.org
- Soporte extendido de sugerencias del administrador de ventanas para FVWM