Window manager (Русский)
Оконный менеджер (WM) — программа, которая управляет отображением окон в оконной системе графического интерфейса пользователя (GUI). Он может являться частью среды рабочего стола или работать отдельно.
Оконные менедежры есть только в Xorg. Эквивалент оконных менеджеров в Wayland называется композиторы, потому что они также работают как композитные менеджеры окон.
Обзор
Оконные менеджеры работают в роли клиентов оконной системы X, которые управляют внешним видом и поведением прямоугольных фреймов ("окон"), где отображаются элементы интерфейса графических программ. Они добавляют фрейму рамку, панель заголовка, возможность изменять его размер и т. д., а также часто предоставляют дополнительную функциональность — например, создают специальные области на экране для "приклеивания" виджетов (dockapps), как Window Maker, или позволяют объединить несколько приложений в одном окне, переключаясь между ними с помощью вкладок, как Fluxbox. Некоторые оконные менеджеры даже включают в свой набор простые утилиты вроде меню запуска программ или графического инструмента для настройки самого менеджера.
Спецификация Extended Window Manager Hints от X Desktop Group создана и используется для того, чтобы позволить разным оконным менеджерам единообразно взаимодействовать с сервером X и другими клиентами.
Некоторые оконные менеджеры разрабатываются в рамках более крупных проектов сред рабочего стола, и, как правило, они теснее интегрируются в среду, создавая более полноценное рабочее окружение, дополненное значками рабочего стола, шрифтами, разнообразными панелями, нескучными обоями и виджетами рабочего стола.
Другие оконные менеджеры предназначены для независимого использования, что даёт пользователю полную свободу выбора других приложений, которые будут использоваться. Это позволяет пользователю создавать более легкую и настраиваемую среду, адаптированную для их собственных нужд. «Дополнения» (значки, панели и т.п.) при необходимости добавляются сторонними приложениями.
Некоторые независимые оконные менеджеры можно использовать для замены стандартного оконного менеджера в среде рабочего стола; аналогично, некоторые DE-ориентированные оконные менеджеры можно использовать независимо.
Перед установкой оконного менеджера необходимо установить и настроить сервер X. Подробную информацию вы сможете получить на странице Xorg.
Типы
- Стековые (также плавающие) оконные менеджеры следуют традиционной метафоре рабочего стола, которая используется в коммерческих операционных системах вроде Windows и macOS. Окна отображаются подобно листкам бумаги на столе, накладываясь и перекрывая друг друга. Список статей о стековых оконных менеджерах смотрите на странице стековые оконные менеджеры.
- Фреймовые (тайловые) оконные менеджеры располагают окна на экране в виде плиток (фреймов) так, что они не перекрывают друг друга. Как правило, фреймовые оконные менеджеры подразумевают активное использование клавиатуры для управления окнами, и имеют слабую поддержку мыши (либо не имеют ее вовсе). Фреймовые оконные менеджеры могут предлагать набор стандартных расположений фреймов или позволять задавать их вручную. Список статей о фреймовых оконных менеджерах смотрите на странице фреймовые оконные менеджеры.
- Динамические оконные менеджеры позволяют динамически переключаться между двумя режимами — стековым и фреймовым. Список статей о динамических оконных менеджерах смотрите на странице динамические оконные менеджеры.
Сравнение популярных оконных менеджеров вы можете найти на страницах Сравнение тайловых оконных менеджеров и Wikipedia:Comparison of X window managers.
Список оконных менеджеров
Стековые оконные менеджеры
- 2bwm — Быстрый стековый менеджер, отличающийся наличием двойной рамки у окон на основе mcwm, написанной Майклом Карделлом. В 2bwm вся функциональность доступна с клавиатуры, однако, мышь также может быть использована для управления окнами. Имя недавно было сменено с mcwm-beast на 2bwm.
- 9wm — Оконный менеджер X11, вдохновлённый rio из Plan 9.
- AfterStep — Оконный менеджер для X Window System. Изначально повторяющий внешний вид интерфейса NeXTStep, он предоставляет конечным пользователям гармоничный, чистый и элегантный рабочий стол. Целью разработки AfterStep является предоставления возможности гибкой настройки рабочего стола, эстетичного дизайна при эффективном использовании системных ресурсов.
- berry — Здоровый, компактный оконный менеджер, написанный на C для Unix-систем. Он управляется через клиент командной строки, что позволяет пользователям управлять окнами с помощью демона горячих клавиш, такого как sxhkd, или расширять функциональность с помощью скриптов. Он предоставляет расширяемые параметры оформления с двойными рамками, строками заголовка и текстом окна. Berry интуитивно размещает новые окна в незанятых местах и поддерживает виртуальные рабочие столы.
- Blackbox — Быстрый и легкий оконный менеджер для X Window System, без всех этих раздражающих зависимостей. Blackbox написан на C++ и содержит полностью собственный код (хотя реализация графики идентична таковой в WindowMaker).
- Compiz — Композитный менеджер на основе OpenGL, использующий GLX_EXT_texture_from_pixmap для использования изображений окон в качестве текстур. У него есть гибкая система плагинов и он спроектирован для работы на большинстве графических ускорителей.
- https://launchpad.net/compiz || compizAUR, compiz-coreAUR
- cwm — Изначально отделившийся от evilwm, но позже переписанный с нуля. cwm нацелен на простоту, и при этом предлагает некоторые полезные возможности, такие как поиск окон.
- eggwm — Легковесный оконный менеджер Qt4/Qt5
- Enlightenment — Это не просто оконный менеджер для X11, но и целый набор библиотек, которые помогут вам создать отличные пользовательские интерфейсы с много меньшими затратами времени и сил, чем при использовании более консервативных тулкитов, не говоря уже о других оконных менеджерах.
- evilwm — Минималистичный оконный менеджер для X Window System. Минималистичный тут не значит, что этот менеджер голый и неюзабельный — под этим просто понимается, что он в нем отказались от всего, что делает неюзабельными другие оконные менеджеры.
- Fluxbox — Оконный менеджер для X, основанный на коде Blackbox 0.61.1. Нетребователен к ресурсам и практичен в использовании, при этом полон возможностей для создания простой и очень быстрой рабочей среды. Он написан на C++ и имеет лицензию MIT.
- Flwm — Попытка совместить лучшие идеи из разных оконных менеджеров. Основное влияние и кодовую базу получил от wm2 автора Криса Каннама.
- FVWM — Экстремально навороченный ICCCM-совместимый много-виртуально-десктопный оконный менеджер для X Window System. Находится в активной разработке и имеет отзывчивую техподдержку.
- https://www.fvwm.org/ || fvwmAUR
- Gala — Симпатичный оконный менеджер из Elementary OS, является частью Pantheon. Также, являясь композитным менеджером, работает на libmutter.
- Goomwwm — Оконный менеджер X11, написанный на C по методологии "чистой комнаты". Он предоставляет возможность гибкого управления окнами посредством клавиатуры: есть хоткеи для переключения окон, изменения размеров, перемещения, укладывания плиткой и других операций. Он также быстрый, легкий, знает, что такое Xinerama и совместим с EWMH везде, где только это возможно.
- IceWM — Оконный менеджер для X Window System. Целью своей ставит стремление к скорости, простоте и старается как можно меньше раздражать пользователя при работе.
- jbwm — Оконный менеджер, основанный на evilwm, с минимальным размером конфигурации примерно 16 КБ, ориентированный на небольшой размер бинарника и удобство использования, включающий дополнительные строки заголовка и XFT title-bar font rendering как опцию при компиляции. jbwm также имеет более простые сочетания клавиш, чем evilwm.
- JWM — Оконный менеджер для X11 Window System. JWM написан на C и использует только Xlib.
- Karmen — Оконный менеджер для X, написанный Йоханом Винхуйзеном. "Создан, чтобы просто работать". Тут нет никаких файлов настройки и других зависимостей, кроме Xlib. Karmen совместим с ICCCM и EWMH.
- KWin — Стандартный оконный менеджер KDE 4.0. Имеет встроенную поддержку композитного режима, что делает его также композитным менеджером. Это позволяет KWin использовать разнообразные графические эффекты, подобно Compiz, при этом также предоставляя все возможности с предыдущих релизов KDE (например, очень неплохую интеграцию со средой, гибкость в настройке, предотвращения потери фокуса, надежный механизм обработки сбоев приложений/тулкитов и т. д.). Также может работать как композитор Wayland.
- https://techbase.kde.org/Projects/KWin || kwin kdebase-workspaceAUR[ссылка недействительна: package not found] kwin-gitAUR
- lwm — Оконный менеджер для X, который всеми силами прячется от вас. Вы не увидите значков, кнопок, панелей, меню, ничего: если вам что-нибудь из этого нужно, устанавливайте сторонние программы. Здесь нет никаких настроек вообще: если они вам нужны, используйте другой оконный менеджер — такой, который поможет вашей операционной системе оккупировать все свободное пространство на вашем жестком диске, а потом примется за вашу оперативную память.
- Marco — Оконный менеджер MATE, форк Metacity.
- Metacity — Этот оконный менеджер стремится быть компактным и стабильным, при этом просто тихо выполнять свою работу и не отвлекать пользователя. Он использовался в GNOME 2 и GNOME Flashback, ныне его заменил Mutter.
- Muffin — Менеджер окон и композитинга для Cinnamon, форк Mutter, основан на Clutter, использует OpenGL. Его нельзя использовать отдельно от Cinnamon.
- Mutter — Оконный и композитный менеджер для GNOME, основанный на Clutter; использует OpenGL. Также может работать как композитор Wayland.
- MWM — Менеджер окон Motif (MWM) — это менеджер окон X, основанный на наборе инструментов Motif.
- Openbox — Очень гибкий в настройке оконный менеджер нового поколения с расширенной поддержкой разнообразных стандартов. Визуальный стиль *box хорошо известен своей минималистичностью. Openbox предоставляет большое количество возможностей для разработчиков тем оформления, чем предыдущие реализации *box.
- pawm — Оконный менеджер для X Window system. Он не предоставит вам рабочий стол и не утомит тысячами бесполезных опций. Вместо этого, он включает в себя только те компоненты, которые нужны для запуска ваших приложений X и в то же время имеет простой и дружелюбный интерфейс.
- http://www.pleyades.net/pawm/[устаревшая ссылка 2021-05-17] || pawmAUR
- PekWM — Оконный менеджер, некогда основывавшийся на aewm++, но теперь уже далеко от него ушедший. У него сильно больший набор возможностей, например группировка окон (аналогично Ion, PWM, или Fluxbox), auto-properties, Xinerama, keygrabber с поддержкой наборов ключей и многое другое.
- Sawfish — Расширяемый оконный менеджер, который использует скриптовый язык наподобие Lisp. Многие высокоуровневые функции также реализованы на Lisp.
- sowm — Simple Opinionated Window Manager, обеспечивает переключение в полноэкранный режим, центрирование окон и смешанный рабочий процесс (например, мышь и клавиатура).
- TinyWM — Оконный менеджер Tiny, который автор создал, чтобы поупражняться в минимализме. Он может быть весьма полезен в обучении основ построения оконных менеджеров. Включает в себя около 50 строк кода на C. Есть также версия на python, которая использует python-xlib.
- twm — Оконный менеджер для X Window System. Он предоставляет заголовки окон, рамки, несколько способов управления значками, макросы, а также поддержку горячих клавиш
- ukwm — Легкий оконный менеджер GTK, стандартный оконный менеджер среды рабочего стола UKUI.
- UWM — Оконный менеджер UDE.
- Wind — Небольшой стековый оконный менеджер. Пытается соответствовать ICCCM, EHWM, NetWM.
- WindowLab — Компактный и простой оконный менеджер. Имеет свои отличительные особенности.
- Window Maker — Оконный менеджер для X11, изначально разработанный для поддержки интеграции для GNUstep Desktop Environment. Везде, где возможно, он повторяет элегантный стиль графического интерфейса NEXTSTEP. Он быстрый, обладает широкими возможностями, прост в настройке и использовании. Это свободное ПО, созданное благодаря вкладу разработчиков со всего мира.
- WM2 — Оконный менеджер для X. Он предоставляет необычный стиль оформления окон и настолько скромную функциональность, насколько его автору кажется приемлемым для оконного менеджера. wm2 ненастраиваемый: вы можете только редактировать исходный код и пересобирать его. Он точно не для тех, кому нужен дружелюбный оконный менеджер.
- Xfwm — Оконный менеджер Xfce управляет отображением окон на экране, предоставляет привлекательное оформление окон, управляет виртуальными рабочими столами и умеет работать с несколькими экранами. Предоставляет собственный композитный режим (благодаря расширению X.Org Composite) для прозрачности и теней. Оконный менеджер Xfce также включает редактор сочетаний клавиш для команд пользователя, а также панель настроек для конфигурирования.
Фреймовые оконные менеджеры
- Bspwm — Фреймовый оконный менеджер, который предоставляет окна как листья бинарного дерева. Есть поддержка EWMH и нескольких мониторов, а еще он настраивается и управляется посредством сообщений.
- EXWM — EXWM (Emacs X Window Manager) — полнофункциональный оконный менеджер X Window для Emacs, построенный на основе XELB. Он предлагает полностью управляемые с клавиатуры операции, гибридные режимы макета (tiling & stacking), динамические рабочие пространства, соответствие ICCCM/EWMH, поддержку RandR (несколько мониторов) и встроенный системный трей.
- Herbstluftwm — Фреймовый оконный менеджер для X11, использующий Xlib и Glib. Размещение фреймов основано на принципе разделения областей экрана на подфреймы, которые, в свою очередь, также могут быть разделены снова (все как в i3/musca). Тэги (виртуальные рабочие столы) могут быть добавлены или убраны "на лету". Каждый тэг имеет собственную схему размещения. Только один тег может быть отображен на каждом мониторе, но, в целом, теги независимы от экранов (как в xmonad). Он настраивается в рантайме посредством IPC-вызовов от herbstclient. Поэтому файл настроек — это просто скрипт, который запускается при старте системы (как в to wmii/musca).
- i3 — Фреймовый оконный менеджер, написанный полностью с нуля. i3 был создан оттого, что wmii, наш любимый оконный менеджер, не предоставлял некоторых возможностей, которые мы хотели (например, работа на нескольких мониторах работала со сбоями), развивался медленно и был сложен в освоении и кастомизации (отсутствовала документация/комментарии в исходном коде). i3 заметно отличается в плане поддержки нескольких экранов и реализации метафоры дерева. Интерфейс Plan 9 не был реализован для более быстрой работы менеджера.
- Larswm — Фреймовый оконный менеджер, основанный на 9wm.
- https://leftwm.org || leftwmAUR
-
Notion — Фреймовый оконный менеджер с поддержкой вкладок для X Window System.
- Фреймы: вы разделяете экран на неперекрывающиеся фреймы. Каждое окно занимает целиком один фрейм.
- Вкладки: фрейм может иметь несколько окон внутри, но отображается всегда только одно — окно текущей вкладки.
- Статичность: большинство фреймовых менеджеров динамические, что значит, что они автоматически изменяют размер и передвигают фреймы при появлении и исчезновении окон. Notion, однако, не делает этого самостоятельно.
- Notion — форк Ion3.
- http://notion.sf.net/ || notion
- Ratpoison — Простой оконный менеджер без объемных зависимостей, ненужных эффектов, и декораций окон. Ratpoison настраивается в обычном текстовом файле. Информационная панель в Ratpoison несколько необычная, и показывается только по необходимости. Она предоставляет возможность запуска приложений и отображает уведомления. Ratpoison не включает в себя системный трей.
- Stumpwm — Фреймовый оконный менеджер для X11, нацеленный на управление с клавиатуры, и написанный целиком на Common Lisp. Stumpwm старается одновременно быть гибок в настройке и кастомизации, и при этом визуально минималистичен. Различные хуки позволяют подключить вашу собственную функциональность, а сам менеджер может быть перенастроен и перезагружен без полного перезапуска. Здесь нет декораций окон, значков, кнопок и системного трея. Информационная панель может быть настроена для постоянного отображения, либо появляться только по требованию.
- subtle — Фреймовый оконный менеджер с несколько нестандартным подходом.
- WMFS — Оконный менеджер From Scratch ("созданный с нуля") — легкий и гибкий в настройке фреймовый оконный менеджер для X. Поддерживает шрифты Xft (FreeType), совместим со спецификациями EWMH, Xinerama и xrandr. WMFS может управляться vi-подобными командами (ViWMFS).
- WMFS2 — Последователь WMFS, обратно с ним несовместимый. Он еще более минималистичен, но в него были добавлены и некоторые новые особенности.
Динамические оконные менеджеры
- awesome — Гибко настраиваемый с помощью скриптового интерпретатора Lua оконный менеджер для X нового поколения, очень быстрый и расширяемый. Выпускается под лицензией GNU GPLv2. Имеет встроенные системный трей, панель информации и панель запуска приложений. Доступно множество расширений, написанных на Lua. Awesome использует XCB вместо Xlib, что дает лучшую производительность.
- dwm — Оконный менеджер Dynamic Window Manager для X. Управляет окнами в фреймовом, полноэкранном и стековом режимах. Все схемы размещения могут быть изменены динамически. Не включает в себя трей или панель запуска, хотя неплохо интегрируется с dmenu (все-таки, у них один автор). Настраивается модификацией кода C с последующей перекомпиляцией.
- https://dwm.suckless.org/ || dwmAUR
- echinus — Простой и легкий фреймовый и стековый оконный менеджер для X11. Изначально являясь форком dwm с более простой настройкой, echinus стал полноценным репарентинговым оконным менеджером с поддержкой EWMH. Имеет панель задач ouricoAUR, совместимую с EWMH.
- http://plhk.ru || echinusAUR
- FrankenWM — Продолжение monsterwm с правильно реализованным стековым режимом. Из добавленных возможностей: новые схемы размещения (fibonacci, equal stack, dual stack), рамки и отступы можно настраивать, сворачивание/разворачивание отдельных окон, возможность показать/спрятать все окна и прочее
- spectrwm — Компактный динамический фреймовый оконный менеджер для X11, на который в свое время повлияли xmonad и dwm. Старается занимать как можно меньше места на экране, предоставляя возможность распорядиться им для более важных вещей. Настраивается в текстовом файле. Написан хакерами для хакеров и стремится быть легким, компактным и быстрым. Имеет встроенную строку статуса.
- Qtile — Полнофункциональный фреймовый оконный менеджер, написанный на Python. Qtile простой, компактный и расширяемый. Легко создавать собственные схемы размещения, виджеты и встроенные команды. Настраивается этот менеджер также изменением кода Python, таким образом, вы получаете всю мощь языка для удовлетворения любых собственных нужд.
- Wingo — Полнофункциональный гибридный оконный менеджер, который позволяет отображать разные рабочие столы на нескольких экранах, при этом позволяя на одном экране работать во фреймовом режиме, а на другом — в стековом одновременно. Wingo предоставляет также собственный язык для написания скриптов. Поддерживаются темы и пользовательские хуки. Wingo написан на Go и не имеет зависимостей.
- xmonad — Динамический фреймовый оконный менеджер для X11, написанный и настраиваемый на Haskell. В обычном менеджере, вы тратите кучу времени на размещение окон, а затем на их поиск. Xmonad делает жизнь проще, автоматизируя эти процессы. После изменения в настройках, xmonad необходимо перекомпилировать, поэтому должен быть установлен компилятор Haskell (больше 100 Мбайт). Большая библиотека xmonad-contrib предоставляет множество дополнительных возможностей.