Window manager (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Window manager. Дата последней синхронизации: 20 января 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Оконный менеджер (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 вся функциональность доступна с клавиатуры, однако, мышь также может быть использована для управления окнами.
https://github.com/venam/2bwm || 2bwmAUR
  • 9wm — Оконный менеджер X11, вдохновлённый rio из Plan 9.
https://github.com/9wm/9wm || 9wmAUR
  • AfterStep — Оконный менеджер для X Window System. Изначально повторяющий внешний вид интерфейса NeXTStep, он предоставляет конечным пользователям гармоничный, чистый и элегантный рабочий стол. Целью разработки AfterStep является предоставление возможности гибкой настройки рабочего стола и эстетичного дизайна при эффективном использовании системных ресурсов.
http://www.afterstep.org/ || afterstep-gitAUR
  • berry — Компактный оконный менеджер, написанный на C для Unix-систем. Он управляется через клиент командной строки, что позволяет пользователям управлять окнами с помощью демона горячих клавиш, такого как sxhkd, или расширять функциональность с помощью скриптов. Он предоставляет расширяемые параметры оформления с двойными рамками, строками заголовка и текстом окна. Berry интуитивно размещает новые окна в незанятых местах и поддерживает виртуальные рабочие столы.
https://berrywm.org/ || berry-gitAUR
  • Blackbox — Быстрый и лёгкий оконный менеджер для X без всех этих раздражающих зависимостей. Blackbox написан на C++ и содержит полностью собственный код (хотя реализация графики идентична таковой в WindowMaker).
https://blackboxwm.sourceforge.net/ || blackbox
  • Compiz — Композитный менеджер на основе OpenGL, использующий GLX_EXT_texture_from_pixmap для использования изображений окон в качестве текстур. У него есть гибкая система плагинов и он спроектирован для работы на большинстве графических ускорителей.
https://launchpad.net/compiz || compizAUR, compiz-coreAUR
  • cwm — Изначально отделившийся от evilwm, но позже переписанный с нуля. cwm нацелен на простоту и при этом предлагает некоторые полезные возможности, такие как поиск окон.
https://github.com/chneukirchen/cwm || cwmAUR
  • eggwm — Легковесный оконный менеджер Qt4/Qt5.
eggwm-qt5AUR || eggwmAUR
  • Enlightenment — Это не просто оконный менеджер для X11, но и целый набор библиотек, которые помогут вам создать отличные пользовательские интерфейсы с много меньшими затратами времени и сил, чем при использовании более консервативных тулкитов, не говоря уже о других оконных менеджерах.
https://www.enlightenment.org/ || enlightenment
  • evilwm — Минималистичный оконный менеджер для X Window System. Минималистичный тут не значит, что этот менеджер голый и неюзабельный — под этим имеется в виду, что он в нём отказались от всего, что делает неюзабельными другие оконные менеджеры.
https://www.6809.org.uk/evilwm/ || evilwmAUR
  • Fluxbox — Оконный менеджер для X, основанный на коде Blackbox 0.61.1. Нетребователен к ресурсам и практичен в использовании, при этом полон возможностей для создания простой и очень быстрой рабочей среды. Он написан на C++ и имеет лицензию MIT.
https://github.com/fluxbox/fluxbox || fluxbox
  • Flwm — Попытка совместить лучшие идеи из разных оконных менеджеров. Основное влияние и кодовую базу получил от wm2 автора Криса Каннама.
https://flwm.sourceforge.net/ || flwmAUR
  • FVWM — Мощный ICCCM-совместимый много-виртуально-десктопный оконный менеджер для X Window System. Находится в активной разработке и имеет отзывчивую техподдержку.
https://www.fvwm.org/ || fvwmAUR
  • Gala — Симпатичный оконный менеджер из Elementary OS, является частью Pantheon. Также, являясь композитным менеджером, работает на libmutter.
https://launchpad.net/gala || gala, gala-gitAUR
  • Goomwwm — Оконный менеджер X11, написанный на C по методологии «чистой комнаты». Он предоставляет возможность гибкого управления окнами посредством клавиатуры: есть горячие клавиши для переключения окон, изменения размеров, перемещения, укладывания плиткой и других операций. Он также быстрый, лёгкий, знает, что такое Xinerama, и совместим с EWMH везде, где только это возможно.
https://github.com/seanpringle/goomwwm || goomwwmAUR
  • IceWM — Оконный менеджер для X. Целью своей ставит стремление к скорости, простоте и старается как можно меньше раздражать пользователя при работе.
https://ice-wm.org/ || icewm
  • jbwm — Оконный менеджер, основанный на evilwm, с минимальным размером конфигурации примерно 16 КБ, ориентированный на небольшой размер бинарника и удобство использования, включающий дополнительные строки заголовка и XFT title-bar font rendering как опцию при компиляции. jbwm также имеет более простые сочетания клавиш, чем evilwm.
https://github.com/jefbed/jbwm || jbwmAUR
  • JWM — Оконный менеджер для X, написан на C и использует только Xlib.
https://joewing.net/projects/jwm/ || jwmAUR
  • Karmen — Оконный менеджер для X, написанный Йоханом Винхуйзеном. "Создан, чтобы просто работать". Тут нет никаких файлов настройки и других зависимостей, кроме Xlib. Karmen совместим с ICCCM и EWMH.
https://karmen.sourceforge.net/ || karmenAUR
  • KWin — Стандартный оконный и композитный менеджер KDE. Это позволяет KWin использовать разнообразные графические эффекты, подобно Compiz, при этом также предоставляя все возможности с предыдущих релизов KDE (например, очень неплохую интеграцию со средой, гибкость в настройке, предотвращения потери фокуса, надёжный механизм обработки сбоев приложений/тулкитов и т. д.). Также может работать как композитор Wayland.
https://techbase.kde.org/Projects/KWin || kwin
  • lwm — Оконный менеджер для X, который всеми силами прячется от вас. Вы не увидите значков, кнопок, панелей, меню, ничего: если вам что-нибудь из этого нужно, устанавливайте сторонние программы. Здесь нет никаких настроек вообще: если они вам нужны, используйте другой оконный менеджер — такой, который поможет вашей операционной системе оккупировать все свободное пространство на вашем жестком диске, а потом примется за вашу оперативную память.
http://www.jfc.org.uk/software/lwm.html || lwmAUR
  • Marco — Оконный менеджер MATE, форк Metacity.
https://github.com/mate-desktop/marco || marco
  • Metacity — Этот оконный менеджер стремится быть компактным и стабильным, при этом просто тихо выполнять свою работу и не отвлекать пользователя. Он использовался в GNOME 2 и GNOME Flashback, ныне его заменил Mutter.
https://blogs.gnome.org/metacity/ || metacity
  • MLVWM — Macintosh-Like Virtual Window Manager, потомок FVWM, который пытается имитировать внешний вид и дизайн окон Macintosh до появления Mac OS X.
http://www2u.biglobe.ne.jp/~y-miyata/mlvwm.html || mlvwmAUR
  • Muffin — Менеджер окон и композитинга для Cinnamon, форк Mutter, основан на Clutter, использует OpenGL. Его нельзя использовать отдельно от Cinnamon.
https://github.com/linuxmint/muffin/ || muffin
  • Mutter — Оконный и композитный менеджер для GNOME, основанный на Clutter; использует OpenGL. Также может работать как композитор Wayland.
https://gitlab.gnome.org/GNOME/mutter/ || mutter
  • MWM — Менеджер окон Motif (MWM) — это менеджер окон X, основанный на наборе инструментов Motif.
https://sourceforge.net/projects/motif/ || openmotif
  • Openbox — Очень гибкий в настройке оконный менеджер с расширенной поддержкой разнообразных стандартов. Визуальный стиль *box хорошо известен своей минималистичностью. Openbox предоставляет большое количество возможностей для разработчиков тем оформления, чем предыдущие реализации *box.
https://openbox.org/ || openbox
  • pawm — Оконный менеджер для X Window system. Он не предоставит вам рабочий стол и не утомит тысячами бесполезных опций. Вместо этого, он включает в себя только те компоненты, которые нужны для запуска ваших приложений X и в то же время имеет простой и дружелюбный интерфейс.
https://www.pleyades.net/david/projects/pawm || pawmAUR
  • PekWM — Оконный менеджер, некогда основывавшийся на aewm++, но теперь уже далеко от него ушедший. У него сильно больший набор возможностей, например группировка окон (аналогично Ion, PWM, или Fluxbox), auto-properties, Xinerama, keygrabber с поддержкой наборов ключей и многое другое.
https://www.pekwm.org/ || pekwm
  • Sawfish — Расширяемый оконный менеджер, который использует скриптовый язык наподобие Lisp. Его политика очень минимальна по сравнению с большинством оконных менеджеров. Его цель — просто управлять окнами наиболее гибким и привлекательным способом. Многие высокоуровневые функции также реализованы на Lisp.
https://sawfish.wikia.com/wiki/Main_Page || sawfishAUR
  • sowm — Simple Opinionated Window Manager, обеспечивает переключение в полноэкранный режим, центрирование окон и смешанный рабочий процесс (например, мышь и клавиатура).
https://github.com/dylanaraps/sowm || sowmAUR
  • TinyWM — Оконный менеджер Tiny, который автор создал, чтобы поупражняться в минимализме. Он может быть весьма полезен в обучении основ построения оконных менеджеров. Включает в себя около 50 строк кода на C. Есть также версия на python, которая использует python-xlib.
http://incise.org/tinywm.html || tinywmAUR
  • twm — Простой оконный менеджер для X, используется как менеджер по умолчанию в Xorg с 1989 года. Он предоставляет заголовки окон, рамки, несколько способов управления значками, макросы, а также поддержку горячих клавиш.
https://gitlab.freedesktop.org/xorg/app/twm/ || xorg-twm
  • ukwm — Лёгкий оконный менеджер GTK, стандартный оконный менеджер среды рабочего стола UKUI.
https://github.com/ukui/ukwm/ || ukwm
  • UWM — Оконный менеджер UDE.
https://udeproject.sourceforge.net/ || udeAUR
  • Wind — Небольшой стековый оконный менеджер. Пытается соответствовать ICCCM, EHWM, NetWM.
https://windwm.sourceforge.net/ || windwmAUR
  • WindowLab — Компактный и простой оконный менеджер. Имеет свои отличительные особенности.
https://github.com/nickgravgaard/windowlab || windowlabAUR
  • Window Maker — Оконный менеджер для X11, изначально разработанный для поддержки интеграции для GNUstep Desktop Environment. Везде, где возможно, он повторяет элегантный стиль графического интерфейса NEXTSTEP. Он быстрый, обладает широкими возможностями, прост в настройке и использовании.
https://windowmaker.org/ || windowmakerAUR
  • WM2 — Оконный менеджер для X. Он предоставляет необычный стиль оформления окон и настолько скромную функциональность, насколько его автору кажется приемлемым для оконного менеджера. wm2 ненастраиваемый: вы можете только редактировать исходный код и пересобирать его. Он точно не для тех, кому нужен дружелюбный оконный менеджер.
https://www.all-day-breakfast.com/wm2/ || wm2AUR
  • worm — Динамический оконный менеджер на основе тегов для X11. Он поддерживает как стековое, так и фреймовое размещение окон. Написан на языке программирования Nim.
https://github.com/codic12/worm || worm-gitAUR
  • Xfwm — Оконный менеджер Xfce управляет отображением окон на экране, предоставляет привлекательное оформление окон, управляет виртуальными рабочими столами и умеет работать с несколькими экранами. Предоставляет собственный композитный режим (благодаря расширению X.Org Composite) для прозрачности и теней. Оконный менеджер Xfce также включает редактор сочетаний клавиш для команд пользователя, а также панель настроек для конфигурирования.
https://docs.xfce.org/xfce/xfwm4/start || xfwm4

Фреймовые оконные менеджеры

  • Bspwm — Фреймовый оконный менеджер, который предоставляет окна как листья бинарного дерева. Есть поддержка EWMH и нескольких мониторов, а ещё он настраивается и управляется посредством сообщений.
https://github.com/baskerville/bspwm || bspwm
  • EXWM — EXWM (Emacs X Window Manager) — полнофункциональный оконный менеджер X Window для Emacs, построенный на основе XELB. Он предлагает полностью управляемые с клавиатуры операции, гибридные режимы макета (tiling & stacking), динамические рабочие пространства, соответствие ICCCM/EWMH, поддержку RandR (несколько мониторов) и встроенный системный трей.
https://github.com/ch11ng/exwm || emacs-exwm-gitAUR
  • Herbstluftwm — Фреймовый оконный менеджер для X11, использующий Xlib и Glib. Размещение фреймов основано на принципе разделения областей экрана на подфреймы, которые, в свою очередь, также могут быть разделены снова (все как в i3/musca). Тэги (виртуальные рабочие столы) могут быть добавлены или убраны «на лету». Каждый тэг имеет собственную схему размещения. Только один тег может быть отображён на каждом мониторе, но, в целом, теги независимы от экранов (как в xmonad). Он настраивается в рантайме посредством IPC-вызовов от herbstclient. Поэтому файл настроек — это просто скрипт, который запускается при старте системы (как в wmii/musca).
https://herbstluftwm.org || herbstluftwm
  • i3 — Фреймовый оконный менеджер, написанный полностью с нуля. i3 был создан оттого, что любимый разработчиками wmii не предоставлял некоторых возможностей, которые они хотели (например, работа на нескольких мониторах работала со сбоями), развивался медленно и был сложен в освоении и кастомизации (отсутствовала документация/комментарии в исходном коде). i3 заметно отличается в плане поддержки нескольких экранов и реализации метафоры дерева. Интерфейс Plan 9 не был реализован для более быстрой работы менеджера.
https://i3wm.org/ || i3-wm
  • Larswm — Фреймовый оконный менеджер, основанный на 9wm.
http://porneia.free.fr/larswm/larswm.html || larswmAUR
  • LeftWM — Фреймовый оконный менеджер, написанный на Rust.
https://leftwm.org || leftwmAUR
  • Notion — Фреймовый оконный менеджер с поддержкой вкладок для X Window System.
    • Фреймы: вы разделяете экран на неперекрывающиеся фреймы. Каждое окно занимает целиком один фрейм.
    • Вкладки: фрейм может иметь несколько окон внутри, но отображается всегда только одно — окно текущей вкладки.
    • Статичность: большинство фреймовых менеджеров динамические, что значит, что они автоматически изменяют размер и передвигают фреймы при появлении и исчезновении окон. Notion, однако, не делает этого самостоятельно.
Notion — форк Ion3.
https://notionwm.net/ || notion
  • Ratpoison — Простой оконный менеджер без объёмных зависимостей, ненужных эффектов и декораций окон. Ratpoison настраивается в обычном текстовом файле. Информационная панель в Ratpoison несколько необычная и показывается только по необходимости. Она предоставляет возможность запуска приложений и отображает уведомления. Ratpoison не включает в себя системный трей.
https://www.nongnu.org/ratpoison/ || ratpoisonAUR
  • Stumpwm — Фреймовый оконный менеджер для X11, нацеленный на управление с клавиатуры, и написанный целиком на Common Lisp. Stumpwm старается одновременно быть гибок в настройке и кастомизации, и при этом визуально минималистичен. Различные хуки позволяют подключить вашу собственную функциональность, а сам менеджер может быть перенастроен и перезагружен без полного перезапуска. Здесь нет декораций окон, значков, кнопок и системного трея. Информационная панель может быть настроена для постоянного отображения, либо появляться только по требованию.
https://stumpwm.github.io/ || stumpwm

Динамические оконные менеджеры

  • awesome — Гибко настраиваемый с помощью скриптового интерпретатора Lua оконный менеджер для X нового поколения, очень быстрый и расширяемый. Выпускается под лицензией GNU GPLv2. Имеет встроенные системный трей, панель информации и панель запуска приложений. Доступно множество расширений, написанных на Lua. Awesome использует XCB вместо Xlib, что дает лучшую производительность.
https://awesomewm.org/ || awesome
  • 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), рамки и отступы можно настраивать, сворачивание/разворачивание отдельных окон, возможность показать/спрятать все окна и прочее.
https://github.com/sulami/FrankenWM || frankenwmAUR
  • spectrwm — Компактный динамический фреймовый оконный менеджер для X11, на который в свое время повлияли xmonad и dwm. Старается занимать как можно меньше места на экране, предоставляя возможность распорядиться им для более важных вещей. Настраивается в текстовом файле. Написан хакерами для хакеров и стремится быть легким, компактным и быстрым. Имеет встроенную строку статуса.
https://github.com/conformal/spectrwm/ || spectrwmAUR
  • Qtile — Полнофункциональный фреймовый оконный менеджер, написанный на Python. Qtile простой, компактный и расширяемый. Легко создавать собственные схемы размещения, виджеты и встроенные команды. Настраивается этот менеджер также изменением кода Python, таким образом, вы получаете всю мощь языка для удовлетворения любых собственных нужд.
https://github.com/qtile/qtile || qtile
  • Wingo — Полнофункциональный гибридный оконный менеджер, который позволяет отображать разные рабочие столы на нескольких экранах, при этом позволяя на одном экране работать во фреймовом режиме, а на другом — в стековом одновременно. Wingo предоставляет также собственный язык для написания скриптов. Поддерживаются темы и пользовательские хуки. Wingo написан на Go и не имеет зависимостей.
https://github.com/BurntSushi/wingo || wingo-gitAUR
  • xmonad — Динамический фреймовый оконный менеджер для X11, написанный и настраиваемый на Haskell. В обычном менеджере вы тратите кучу времени на размещение окон, а затем на их поиск. Xmonad делает жизнь проще, автоматизируя эти процессы. После изменения в настройках xmonad необходимо перекомпилировать, поэтому должен быть установлен компилятор Haskell (больше 100 МБ). Большая библиотека xmonad-contrib предоставляет множество дополнительных возможностей.
https://xmonad.org/ || xmonad

Смотрите также