Window manager (Русский) - ArchWiki

Jump to content

# Window manager (Русский)

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

Ссылки по теме

- Xdg-menu (Русский)
- Xorg (Русский)
- xinit (Русский)
- Wayland (Русский)#Композиторы
- Среда рабочего стола
- Оконный менеджер

Оконный менеджер (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/ || jwm

- 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.

  https://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

- 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[ссылка недействительна: package not found]

- WindowLab — Компактный и простой оконный менеджер. Имеет свои отличительные особенности.

  https://github.com/nickgravgaard/windowlab || windowlabAUR

- Window Maker — Оконный менеджер для X11, изначально разработанный для поддержки интеграции для GNUstep Desktop Environment. Везде, где возможно, он повторяет элегантный стиль графического интерфейса NEXTSTEP. Он быстрый, обладает широкими возможностями, прост в настройке и использовании.

  https://windowmaker.org/ || windowmaker

- 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

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

- The Window Manager Report
- What are the best window managers for Linux?
- A Memory Comparison of Light Linux Desktops

Categories:

- Window managers (Русский)
- Lists of software (Русский)

Hidden category:

- Pages with broken package links

Window manager (Русский)
Add topic