Подсказки расширенного оконного менеджера
Расширенные подсказки оконного менеджера , также известные как NetWM , [1] — это стандарт X Window System для связи между оконными менеджерами и приложениями . Он основан на функциональности Руководства по соглашениям межклиентского общения (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 определяет тринадцать флагов состояния окна:
- Вверху: показать окно поверх других,
- Ниже: показать окно ниже других,
- DemandsAttention: то же, что и флаг срочности,
- В фокусе: окно имеет фокус ввода,
- Полноэкранный режим: показать окно в полноэкранном режиме,
- Скрыто: окно не отображается,
- MaximizedHorizontal: окно растягивается по горизонтали,
- MaximizedVertical: окно растягивается вертикально,
- Модальное: окно представляет собой модальное всплывающее окно,
- Затененный: окно закатано,
- SkipPager: окно не должно отображаться на пейджере,
- SkipTaskbar: окно должно игнорироваться панелью задач,
- Прикреплено: окно должно отображаться на всех виртуальных рабочих столах.
Дополнительные протоколы
[ редактировать ]- _NET_WM_PING
- WM может использовать это, чтобы проверить, жив ли клиент.
- _NET_WM_SYNC_REQUEST
- для синхронизации перерисовки при изменении размера.
- _NET_WM_FULL_PLACEMENT
- WM будет обрабатывать любое размещение окон.
Список оконных менеджеров, поддерживающих расширенные подсказки оконного менеджера
[ редактировать ]Тайлинг и динамические оконные менеджеры
[ редактировать ]- зима
- потрясающий
- бспвм
- морской еж [2]
- fvwm
- чувак
- Herstluftwm
- я3 [3]
- ЛевыйWM
- Понятие [4]
- Ктайл
- спектрвм
- тонкий [5]
- Винго [6]
- ух ты
- xmonad (необходимо включить в конфиге)
Стекирование оконных менеджеров
[ редактировать ]- Черный ящик [7]
- Компиз
- CTWM (начиная с версии 4.0.0 [8] )
- Эдвм
- Флюксбокс [9]
- FVWM (через плагин до версии 2.4 и встроенную поддержку версии 2.5) [10] [11]
- IceWM [12]
- JWM [13]
- Победить
- Метасити [14]
- Марко
- Открытый ящик [15]
Другие оконные менеджеры
[ редактировать ]- Просвещение (E16 и E17)
- злобный
- интерфейсwm
- спичечная коробка
- Рыба-пила (не полностью)
- вмфс
- Xfwm [16]
Примечания и ссылки
[ редактировать ]- ^ «Нет WM — Черный ящик» . Архивировано из оригинала 1 октября 2007 г. Проверено 29 сентября 2007 г.
- ^ "polachok/echinus: README - 3. О панелях и пейджерах" . Гитхаб . Проверено 19 августа 2022 г.
- ^ «i3 _NET_SUPPORTED» . Гитхаб . Проверено 14 февраля 2021 г.
- ^ «Исправлена настройка свойств _NET_SUPPORTING_WM_CHECK и _NET_SUPPORTED» . Гитхаб . Проверено 19 августа 2022 г.
- ^ «Что такое тонкое?» . Проверено 19 августа 2022 г.
- ^ «BurntSushi/wingo: СОБЛЮДЕНИЕ – EWMH» . Гитхаб . Проверено 19 августа 2022 г.
- ^ «Черный ящик СООТВЕТСТВИЕ» . Гитхаб . Проверено 15 февраля 2021 г.
- ^ «Изменения в ctwm 4.0.0» .
- ^ «Поддержка Fluxbox EWMH» . Архивировано из оригинала 19 августа 2009 г. Проверено 9 сентября 2009 г.
- ^ «Расширенный оконный менеджер намекает на поддержку FVWM» .
- ^ «ФВВМ – Особенности» .
- ^ «IceWM СООТВЕТСТВИЕ» . Гитхаб . Проверено 28 декабря 2020 г.
- ^ «joewing.net | Поддержка JWM EWMH» . Проверено 15 февраля 2021 г.
- ^ «Метасити КОМПЛААНС» . Проверено 15 февраля 2021 г.
- ^ «СООТВЕТСТВИЕ Openbox» . Гитхаб . Проверено 15 февраля 2021 г.
- ^ стандарты xfwm4