Подсказки расширенного оконного менеджера , также известного как NetWM , [1] - это стандарт системы X Window для связи между оконными менеджерами и приложениями . Он основан на функциональных возможностях Руководства по соглашениям между клиентами (ICCCM).
Эти стандарты формулируют протоколы для посредничества при доступе к совместно используемым ресурсам X, таким как экран и фокус ввода . Приложения запрашивают доступ, в то время как оконный менеджер разрешает или отклоняет его. Связь происходит через свойства X и клиентские сообщения . EWMH - это полный набор протоколов для реализации среды рабочего стола . Он определяет как обязательные, так и дополнительные протоколы. Диспетчер окон может выбрать реализацию виртуальных рабочих столов или многоуровневого порядка стекирования , но если это так, то EWMH определяет, как это передается.
Обзор протокола
Все идентификаторы протокола EWMH начинаются с пятибуквенного префикса _NET_
.
Свойства корневого окна
WM должен обновить набор свойств в корневом окне:
- _NET_SUPPORTED
- перечисляет все протоколы EWMH, поддерживаемые данным WM.
- _NET_CLIENT_LIST
- перечисляет все окна приложений, управляемые этим WM.
- _NET_NUMBER_OF_DESKTOPS
- указывает количество виртуальных рабочих столов.
- _NET_DESKTOP_GEOMETRY
- определяет общий размер всех рабочих столов.
- _NET_DESKTOP_VIEWPORT
- определяет верхний левый угол каждого рабочего стола.
- _NET_CURRENT_DESKTOP
- дает индекс текущего рабочего стола.
- _NET_DESKTOP_NAMES
- перечисляет имена всех виртуальных рабочих столов.
- _NET_ACTIVE_WINDOW
- дает текущее активное окно.
- _NET_WORKAREA
- содержит геометрию для каждого рабочего стола.
- _NET_SUPPORTING_WM_CHECK
- выдает окно активной WM.
- _NET_VIRTUAL_ROOTS
- если WM поддерживает виртуальные корневые окна.
- _NET_DESKTOP_LAYOUT
- показывает макет активного пейджера.
- _NET_SHOWING_DESKTOP
- 1 для режима «показ рабочего стола».
Сообщения клиента
Приложение может отправлять клиентские сообщения диспетчеру окон:
- _NET_WM_STATE
- для изменения состояния окна приложения.
- _NET_ACTIVE_WINDOW
- для активации окна приложения.
- _NET_SHOWING_DESKTOP
- переключает отображение окон приложений.
- _NET_CLOSE_WINDOW
- закрыть окно приложения.
- _NET_WM_MOVERESIZE
- для интерактивного изменения размера окна приложения.
- _NET_MOVERESIZE_WINDOW
- чтобы немедленно изменить размер окна приложения.
- _NET_REQUEST_FRAME_EXTENTS
- сверяется с размерами рамки кадра.
- _NET_WM_FULLSCREEN_MONITORS
- определяет мониторы для полноэкранного окна.
Если WM поддерживает наложение окон:
- _NET_RESTACK_WINDOW
- просит изменить порядок расположения окна.
Если WM поддерживает виртуальные рабочие столы:
- _NET_CURRENT_DESKTOP
- изменяет текущий рабочий стол.
- _NET_NUMBER_OF_DESKTOPS
- изменяет количество рабочих столов.
WM может игнорировать эти сообщения:
- _NET_DESKTOP_GEOMETRY
- изменяет размер всех рабочих столов.
- _NET_DESKTOP_VIEWPORT
- изменяет область просмотра для текущего рабочего стола.
Свойства окна
EWMH определяет следующие свойства окна приложения:
- _NET_WM_NAME
- заголовок окна.
- _NET_WM_VISIBLE_NAME
- заголовок окна, как показано WM.
- _NET_WM_ICON_NAME
- название значка.
- _NET_WM_VISIBLE_ICON_NAME
- заголовок значка, как показано WM.
- _NET_WM_DESKTOP
- рабочий стол, на котором находится окно.
- _NET_WM_WINDOW_TYPE
- функциональный тип окна.
- _NET_WM_STATE
- текущее состояние окна.
- _NET_WM_ALLOWED_ACTIONS
- список поддерживаемых пользовательских операций.
- _NET_WM_STRUT
- если окно желает зарезервировать место по краю.
- _NET_WM_STRUT_PARTIAL
- детали зарезервированного места на краю экрана.
- _NET_WM_ICON_GEOMETRY
- геометрия возможной иконы.
- _NET_WM_ICON
- массив возможных иконок для клиента.
- _NET_WM_PID
- идентификатор процесса клиента, владеющего этим окном.
- _NET_WM_HANDLED_ICONS
- предоставляет ли пейджер значки.
- _NET_WM_USER_TIME
- время последней активности пользователя в этом окне.
- _NET_WM_USER_TIME_WINDOW
- окно, показывающее активность пользователя.
- _NET_FRAME_EXTENTS
- размеры левого, правого, верхнего и нижнего кадра.
- _NET_WM_OPAQUE_REGION
- какие области окна полностью непрозрачны.
- _NET_WM_BYPASS_COMPOSITOR
- запрашивает, чтобы окно не было составлено.
Состояния окна
ICCCM определяет только три различных состояния, в которых может находиться окно:
- Снято,
- Обычный,
- Культовый.
Кроме того, он поддерживает Urgent
флаг для запроса внимания пользователя.
EWMH определяет тринадцать флагов состояния окна:
- Вверху: показать окно над другими,
- Внизу: показать окно под другими,
- ТребованияВнимание: то же, что и флаг срочности,
- Сфокусировано: окно имеет фокус ввода,
- Полный экран: показать окно в полноэкранном режиме,
- Скрыто: окно не отображается,
- MaximizedHorizontal: окно растягивается по горизонтали,
- MaximizedVertical: окно растягивается по вертикали,
- Модальный: окно является модальным всплывающим окном,
- Заштриховано: окно закатано,
- SkipPager: окно не должно отображаться на пейджере,
- SkipTaskbar: окно должно игнорироваться панелью задач,
- Важно: окно должно отображаться на всех виртуальных рабочих столах.
Дополнительные протоколы
- _NET_WM_PING
- WM может использовать это, чтобы проверить, жив ли клиент.
- _NET_WM_SYNC_REQUEST
- для синхронизации перерисовок при изменении размеров.
- _NET_WM_FULL_PLACEMENT
- WM обработает любое размещение окна.
Список оконных менеджеров, поддерживающих подсказки расширенного оконного менеджера
Тайловые и динамические оконные менеджеры
Укладка оконных менеджеров
- Черный ящик [3]
- Compiz
- CTWM (по состоянию на 4.0.0 [4] )
- Edewm
- Fluxbox [5]
- FVWM (через плагин до v2.4 и встроенную поддержку от v2.5) [6] [7]
- IceWM [8]
- JWM [9]
- KWin
- Metacity [10]
- Марко
- Openbox [11]
Другие оконные менеджеры
- Просвещение (E16 и E17)
- Evilwm
- interfacewm
- коробок спичек
- Пила (не полностью)
- wmfs
- Xfwm [12]
Примечания и ссылки
- ^ "Net WM - Blackbox" . Архивировано из оригинала на 2007-10-01 . Проверено 29 сентября 2007 .
- ^ "i3 _NET_SUPPORTED" . Источник 2021-02-14 .
- ^ «СООТВЕТСТВИЕ СООТВЕТСТВУЮЩЕМУ ЧЕРНОМ ЯЩИКУ» . Проверено 15 февраля 2021 .
- ^ "Изменения в ctwm 4.0.0" .
- ^ «Поддержка Fluxbox EWMH» . Проверено 9 сентября 2009 .
- ^ «Расширенная поддержка подсказок оконного менеджера для FVWM» .
- ^ «FVWM - Возможности» .
- ^ «СООТВЕТСТВИЕ IceWM» . Проверено 28 декабря 2020 .
- ^ "joewing.net | Поддержка JWM EWMH" . Проверено 15 февраля 2021 .
- ^ «СООТВЕТСТВИЕ СООТВЕТСТВУЮЩЕМУ» . Проверено 15 февраля 2021 .
- ^ «СООТВЕТСТВИЕ Openbox» . Проверено 15 февраля 2021 .
- ^ xfwm4 стандарты
Внешние ссылки
- Официальный веб-сайт
- Проект спецификации Window Manager на сайте freedesktop.org
- Поддержка подсказок расширенного оконного менеджера для FVWM