Оконные менеджеры в Linux. Оконный менеджер X Window System

Детские товары 21.06.2019
Детские товары

Внимание! Эта статья не содержит руководств по настройке того или иного оконного менеджера. В ней объясняются некоторые общие теоретические и практические аспекты использования оконных менеджеров. Для получения инструкций обратитесь к статье о конкретном оконном менеджере в этой вики или задайте вопрос на форуме

Оконный менеджер - это приложение, которое отвечает за размещение, декорирование окон, взаимодействие с окнами - изменение размеров, максимизация, свёртывание, закрытие. Оконный менеджер взаимодействует с графическим сервером X11, который занимается взаимодействием c видеокартой и устройствами ввода/вывода (клавиатура, мышь и монитор).

Оконный менеджер может работать как вместе с окружением рабочего стола (Gnome , KDE , XFCE), так и отдельно от него. Функционал, предоставляемый оконными менеджерами, может достаточно серьёзно различаться.

Оконный менеджер в окружении рабочего стола

Итак, в состав окружения рабочего стола уже входит оконный менеджер. В случае с Gnome это Metacity, в случае с KDE - kwin, XFCE использует по умолчанию xfwm4. Окружение рабочего стола LXDE использует менеджер окон openbox - в отличие от других DE, использующих оконные менеджеры, написанные специально для них, LXDE включает в свой состав менеджер окон, разрабатываемый независимо от остального окружения.

В составе каждого из этих окружений оконный менеджер, поставляемый «по умолчанию», может быть заменён другим по тем или иным причинам.

Два, пожалуй, самых показательных для Ubuntu примера - замена стандартного менеджера окон Metacity на Compiz для включения различных спецэффектов или на Openbox для снижения потребления ресурсов и обеспечения более точного управления окнами (более эффективное использование горячих клавиш, помещение окон в различные слои (Always on top) и т.д.)

Собственно, не существует никаких препятствий для использования оконного менеджера kwin в рабочем окружении Gnome или наоборот.

В случае, если в составе рабочего окружения заменяется оконный менеджер, обычно достаточно следующих действий:

    Добавление команды на замену оконного менеджера в автозапуск средствами утилит контроля сессий данного окружения (хрестоматийный compiz –replace)

    В случае, если требуется передать оконному менеджеру контроль над рабочим столом (например, для того, чтобы заработало меню Openbox, появляющееся при правом клике на рабочем столе) - отключение функции контроля рабочего стола в настройках приложения, которое по умолчанию этим занимается. В случае с Ubuntu - это Nautilus.

При замене оконного менеджера в составе рабочего окружения последнее продолжает выполнять для вас ряд важных функций - контроль сессий, монтирование съёмных носителей, управление буфером обмена и сетью, ассоциацию файлов с приложениями. Вы меняете только и исключительно механизм управления окнами и рабочим столом.

Оконный менеджер без окружения рабочего стола

Предположим, для снижения потребления оперативной памяти и мощности процессора, для самообразования или по эстетическим соображениям вы решили самостоятельно развернуть рабочее окружение на основе какого-либо оконного менеджера.

Что до сих пор обеспечивало вам рабочее окружение? Что вам теперь предстоит настроить самостоятельно? Какие задачи решает большинство оконных менеджеров, а какие выполняются с помощью сторонних утилит?

Давайте разберём по порядку.

    Автозапуск и контроль сессий. Если в окружении рабочего стола вы могли добавить приложение в автозапуск через графический интерфейс, то теперь вам, скорее всего, придётся прописывать такие приложения в конфигурационном файле вашего оконного менеджера. Забегая вперёд, скажу, что скорее всего в автозапуск нужно будет добавить трей и/или панель, переключатель раскладки клавиатуры, утилиту для управления сетевыми подключениями, утилиту для монтирования съёмных носителей, утилиту для отрисовки обоев, почтовый клиент и интернет-мессенджер, торрент-клиент.

При добавлении в автозапуск приложений следите за порядком, в котором они запускаются. Например, если вы хотите запустить менеджер сетевых подключений или торрент-клиент, им, скорее всего, потребуется трей, поэтому они должны запускаться после трея, возможно, с некторой задержкой (используйте команду sleep)

    Управление сетевыми подключениями. Окружение рабочего стола предоставляет вам менеджер сетевых подключений, в случае с оконным менеджером вам нужно будет позаботиться об этом самому. Вы можете подключаться к сети до старта графического сервера либо после запуска оконного менеджера и трея запускать nm-applet или wicd-client .

    Буфер обмена. Вы можете заметить, что вставить фрагмент текста из браузера в текстовый редактор теперь можно только тогда, когда «донорское» приложение запущено. Установите и добавьте в автозапуск менеджер буфера обмена, например, parcellite .

    Переключение раскладок клавиатуры. Оно исчезло!

Самое универсальное решение:

Setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll"

Её тоже нужно добавить в автозапуск. Для более тонкой настройки переключения раскладок воспользуйтесь утилитами xxkb или xneur

    Возможно, вам нужны панели и/или трей. В состав оконного менеджера может входить панель, как в случае с fluxbox, но вы можете воспользоваться любой другой - нетребовательной к ресурсам tint2 или функциональными gnome-panel или xfce-panel

    Управление питанием. Если вы используете ноутбук, возможно, вам понадобится управлять профилями энергопотребления. Можно использовать gnome-power-manager или xfce-power-manager

    Обои. Большинство менеджеров окон покажут вам вместо обоев чёрный экран. Для того, чтобы менять и показывать обои, нужна отдельная утилита, подходят специальный менеджер обоев nitrogen или просмотрщик изображений feh

    Иконки рабочего стола. Если они вообще вам нужны, то можно воспользоваться файл-менеджером, который умеет их рисовать. Nautilus , pcmanfm или rox-filer подойдут. Nautilus - в меньшей степени - он стремится захватить наиболее полный контроль над рабочим столом и может мешать вашему оконному менеджеру.

    Монтирование съёмных носителей. Можно переложить эту функцию на файловый менеджер либо настроить монтирование с помощью udev

    Внешний вид приложений. Шрифты, иконки, темы рабочего стола, темы курсоров. Теперь их нужно настраивать самостоятельно. Создайте в своей домашней папке скрытые папки.icons и.themes, в первую можно складывать темы иконок и курсоров, во вторую - темы GTK. Внимание! Следите за иерархией папок! Темы будут настраиваться только в случае, если путь к теме выглядит так: ~/.themes/название_темы /gtk-2.0. Некоторые авторы делают паки тем, и в папке «Тема» могут оказаться подпапки «Тема светлая» и «Тема тёмная». Удобный инструмент настройки тем gtk, иконок, шрифтов и тем курсора - lxappearance . Не забудьте, что темам gtk для корректной работы требуются так называемые «движки» тем, которых в свежеустановленной минимальной системе, скорее всего, нет. Их можно установить из репозитариев, посмотреть, какие движки есть в репозитарии можно так: aptitude search gtk-engines

    Выключение компьютера иначе чем через halt/shutdown из консоли. Если для вашего оконного менеджера нет утилиты для выключения, то вам придётся прибегнуть к сторонним диалогам выключения, и при этом отредактировать sudoers только с помощью visudo для разрешения своему пользователю выключения и перезагрузки компьютера без ввода пароля

    Утилита для быстрого запуска приложений посредством ввода команды. Попробуйте для этих целей gmrun

    Композитинг, также известный как «прозрачность и кубик». Поскольку compiz сам является оконным менеджером, совместить его с openbox или fvwm, к сожалению, нельзя. Существуют, однако, композитные менеджеры, занимающиеся не отрисовкой окон, а исключительно спецэффектами - cairocompmgr и связка xcompmgr и transset - оба позволяют добавить несколько простых композитинговых спецэффектов (тени, прозрачность), но не более того.

Горячие клавиши, декорации окон, виртуальные рабочие столы и меню, как правило, предоставляются оконным менеджером и настраиваются в конфигурационном файле последнего.



Его основная задача - управлять поведением окон на экране. Заголовок окна, рамка, кнопки распахивания, сворачивания и т.п. - все это в его ведомстве. Кроме того, он занимается расположением окон на экране и на рабочих столах. При помощи Openbox, к примеру, можно поставить терминал в качестве фона рабочего стола. При потребности в выборе легкого и управляемого варианта я, как уже упоминал, остановился на Openbox (http://icculus.org/openbox). В Интернете много документации о его настройке, а тонкости конфигурации - не моя задача. Справедливости ради лишь отмечу, что использование Openbox далеко не принципиально - с легкостью можно настроить, например, и IceWM с выключенной панелью (на мой взгляд, она не очень удобна, хотя, опять же, кому как).

Рабочий стол и файловый менеджер



Такое объединение не случайно - это почти повсеместная практика, которая повелась еще со времен gmc. В качестве решения я выбрал pcmanfm (http://pcmanfm.sourceforge.net). Он умеет демонизироваться (т.е. не запускать окно, а только предоставлять рабочий стол), управлять рабочим столом, предоставляя при этом выбор, разрешать ли оконному менеджеру рисовать свое меню. Помимо всего, позволяет автоматически монтировать флешки - причем он сразу и из коробки поддерживал возможность задания опций монтирования, из-за чего проблем с кодировками не было как класса. Ценное, на мой взгляд, свойство pcmanfm - возможность быстрого запуска терминальной программы в текущей директории: для этого нужно просто нажать (для сравнения: Thunar, файловый менеджер из XFCE, такую возможность тоже предоставляет, но только из контекстного меню). Поддерживается и аргумент командной строки, который позволяет сразу запустить диалог поиска (команда pacman -f). И последнее удобство, которое нельзя не упомянуть, - возможность открытия директорий во вкладках.

Панель



Тут выбор широк: и tint2 (она не оснащена переключателем рабочих столов, хотя в остальном приятна), и fbpanel (для Fluxbox), и lxpanel (идеи взяты из fbpanel, но более или менее доведены до логического конца), и pypanel, и многие другие. Я остановил свой выбор на lxpanel (http://wiki.lxde.org/en/LXPanel): хоть она и является частью проекта LXDE, лишних зависимостей при этом не тянет. Поддерживается меню приложений (даже оно реализовано плагином) и множество расширений, среди которых: Launch для значков запуска приложений, переключатель рабочих столов, TaskBar, Tray, Cpu, часы, использование батареи (актуально для ноутбуков). Все это управляется через щелчок правой кнопкой мыши далее «Настройка панели» (или правкой конфигурационного файла).

Создание идеального окружения рабочего стола вас утомило и Вы хотите как следует развеяться? В таком случае я рекомендую Вам поиграть в увлекательные браузерные онлайн игры (http://online-games-free.ru/browser.html), которые помогут Вам развеяться и отдохнуть от всех насущных проблем! Подробности на online-games-free.ru.

В macOS и Windows есть встроенные инструменты, упрощающие работу с окнами, но всё же со специализированными решениями они конкурировать не могут. Если у вас нет второго монитора, то при одновременной работе с несколькими приложениями приходится изрядно исхитряться. Приложения из нашей подборки не смогут увеличить диагональ вашего дисплея, но однозначно сделают жизнь проще.

MacOS

Самое популярное приложение для управления окнами с огромным количеством настроек. Содержит уйму шаблонов расположения окон, которые можно использовать с помощью горячих клавиш и выпадающих меню. Размеры и положение областей настраиваются вручную, причём можно даже отдельно для каждого приложения.

Для ненавистников горячих клавиш есть активные края, разворачивающие окно до определённых размеров при перетягивании к соответствующим границам экрана. Есть даже возможность заменить действия стандартных кнопок «Закрыть», «Свернуть», «Развернуть» на более удобные для вас.

Очень простой и бесплатный менеджер окон, который по функциональности мало чем уступает своим платным аналогам. Spectacle умеет менять размер и положение активных окон с помощью горячих клавиш.

Шорткаты можно настроить по своему усмотрению. Всё остальное изменить нельзя. Впрочем, это и не нужно - предустановленных шаблонов хватит на все случаи жизни.

Похож на предыдущую утилиту, но помимо изменения размера окон также умеет работать с активными краями - при перетаскивании к границам экрана окна масштабируются как в Windows. Из других преимуществ Magnet можно выделить поддержку многодисплейных конфигураций. Приложение одновременно может работать с шестью мониторами.

4. Moom

Главная идея Moom - удобное изменение размеров окон через небольшое меню, которое всплывает при наведении на кнопку «Развернуть». Там содержатся избранные шаблоны (их можно заменить по желанию) и сетка, позволяющая настроить размер окна вручную. Для тех, кому больше нравится работа с клавиатуры, предусмотрены горячие клавиши, дублирующие пункты меню.

Как и другие менеджеры окон из этой подборки, умеет быстро изменять размер и расположение окон с помощью горячих клавиш или соответствующих пунктов выпадающего меню. При этом доступен выбор пропорции разделения экранного пространства отдельно для каждого из режимов.

Из продвинутых возможностей приложение может похвастаться поддержкой AppleScript, позволяющей создавать свои собственные действия.

Windows

Наверное, лучший менеджер окон для Windows с целым рядом фирменных фишек, из-за которых влюбляешься в приложение с первого взгляда. Самая крутая - это синхронное изменение размера группы окон и их перетаскивание. Также любое окно растягивается по клику и липнет к границам других окон и краёв экрана, позволяя настроить рабочее пространство буквально за секунды.

В дополнение к клавиатурным сокращениям в AquaSnap можно настроить шорткаты для мыши и даже заменить действия стандартных кнопок управления окном.

7. MaxTo

Достаточно простое приложение для управления окнами, но отлично справляющееся со своими функциями. MaxTo может изменять расположение и размер открытых окон в соответствии с готовыми профилями, а также позволяет добавлять свои собственные.

Взаимодействие происходит с помощью горячих клавиш или перетаскиванием на определённые области. Всё это одинаково хорошо работает как на одном мониторе, так и на нескольких.

У Mosaico примерно те же возможности, что и у других менеджеров, включая горячие клавиши для изменения окон и активные границы экрана. Ключевые отличия - это функция автоматического распределения пространства между открытыми окнами на основе умного алгоритма, а также возможность сохранять и быстро восстанавливать избранные группы окон в один клик.

9. Divvy

В отличие от других приложений, Divvy умеет изменять размеры окон не только по заранее настроенным шаблонам, а также вручную с помощью выделения нужного места на специальной сетке. Активные области экрана и горячие клавиши также присутствуют.

В macOS есть замечательная функция Misson Control, отображающая эскизы окон запущенных приложений на всех рабочих столах. Именно её и повторяет BetterDesktopTool.

Реализовано всё довольно качественно и заметно облегчает переключение между открытыми окнами. С помощью горячих клавиш можно взаимодействовать с окнами на различных рабочих столах и перемещать приложения между ними.

Оконные менеджеры в Linux Что же такое оконный менеджер или window manager в Linux? Оконный менеджер (или менеджер экрана) - это программа, которая, прежде всего, заботится о том, как будут выглядеть ваши окна. То есть, какой и где будет заголовок, как будут выглядеть кнопки закрытия, минимизации и т.д. Но, кроме этого, менеджер также определяет, как окна можно будет перемещать и какие операции над ними можно будет проводить (закрытие, минимизация, максимизация, максимизация только по вертикали и т.д.). Все, что относится к окнам на экране вашего монитора, вменяется в обязанности менеджера окон. Собственно, поэтому он так и называется. Однако современным программам, которые выполняют функции менеджера экрана в системе, приходится также заниматься фоновой картинкой, подвешивать различные иконки на десктоп и т.д. и т.п.
Менеджер окон занимает второй уровень в иерархии программ графической оболочки XFree86. На первом уровне (самом низком) находится сервер XFree86, а на третьем (самом высоком) - прикладные программы, которые взаимодействуют с сервером XFree86 либо напрямую, либо через менеджер окон при помощи специального набора библиотек, вроде Motif, Lesstif, KDElibs, GTK и т.д. Менеджеры окон в системах, работающих под управлением XFree86, отвечают за управление визуальными компонентами экрана, такими как окна, кнопки, рамки, строки текста.
В Xсах можно работать и без какого-либо менеджера окон. Однако даже на минимальный комфорт в таком случае надеяться не следует. Ваши окна не будут иметь заголовка и границ, а следовательно, их нельзя будет двигать по рабочему столу и изменять размеры. Так что менеджер экрана вам просто необходим для того, чтобы чувствовать себя человеком.
Рассмотрим несколько достойных представителей семейства оконных менеджеров:

IceWM
Начнем обзор менеджеров окон с самых простых и легковесных. Наиболее известным в этой категории является IceWM. Несмотря на малые размеры, IceWM обладает всеми возможностями нормального менеджера окон. Он даже позволяет устанавливать различные темы. IceWM написан на C++ с самого начала, т.е. в нем не используется исходный код ни от какого другого менеджера окон. При его проектировании ставились следующие цели:
- быть удобным, быстрым и простым в использовании;
- работать сразу после установки без сложной настройки;
- использовать мышь как дополнительное устройство ввода;
- сочетать в себе все лучшие особенности других менеджеров.
IceWM полностью совместим с GNOME и частично с KDE, но может использоваться и отдельно.
IceWM имеет все для того, чтобы пользователь мог нормально работать. В самом низу экрана располагается панель, на которой слева расположена кнопка для запуска различных программ, аналогичная кнопке "пуск" в Windows"9x. Сразу после нее находится кнопка, которая показывает список окон. Затем следуют три кнопки для быстрого запуска программ, а потом еще четыре для переключения между виртуальными экранами. Кроме всего этого, вы можете наблюдать на тулбаре часы, индикаторы почтового ящика и загрузки системы. Естественно, что наличие/отсутствие кнопок может конфигурироваться пользователем.

AfterStep (www.afterstep.org)
AfterStep основан на другом менеджере окон - Fvwm, но переработан таким образом, чтобы воспроизводить внешний вид и поведение NextStep. Правда, добавлено множество полезных и интересных возможностей. Начав свое существование под названием Bowman, AfterStep перерос просто эмуляцию NextStep и стал вполне своеобразным менеджером экрана. Экран под управлением этого менеджера окон выглядит следующим образом: сверху строка, которая показывает все работающие приложения и их окна; слева или внизу обычно находится панель для запуска программ и куда помещаются различные индикаторы.
К главным характеристикам AfterStep, которые делают его привлекательным для пользователей, можно отнести следующее:
- стабильность и вдумчивую проработку всех компонентов;
- cовместимость с большинством библиотек и менеджеров экрана (GNOME, KDE, Motif);
- размер основного исполняемого кода очень мал.

Window Maker
Еще один не менее популярный менеджер окон, который позволяет организовать ваш экран при помощи так называемых доков (docks).
Грубо говоря, док в WM (WindowMaker) похож именно на док в море. Только в данном случае море - это весь ваш экран, а док - определенное место, где "прикрепляются" приложения; они не могут перемещаться по рабочему столу. Приложения прикрепляются в виде иконки (поскольку обычно именно так выглядит минимизированное приложение в WM). В WindowMaker"e все приложения имеют ассоциированные с ними иконки. В любое время вы можете спрятать любое из окон под его иконкой. После двойного нажатия на нее окно приложения вновь появится на экране.
Вы можете помещать иконки приложений, которые постоянно используете, в области дока для того, чтобы иметь возможность легко запускать их. Когда приложение, с которым связана иконка, не запущено, на ней появляются три точки, которые означают, что приложение находится в неактивном состоянии. После запуска программы эти три точки исчезают.
Приложение в доке также поддерживает запуск себя при перетаскивании чего-либо на кнопку этого приложения. К примеру, вы можете перетащить файл с рисунком на кнопку - запустится графический редактор и откроет файл с изображением, которое вы перетаскивали.
Сейчас существует много приложений для дока, которые созданы с учетом работы WindowMaker"a. Например, индикаторы нагрузки системы, часы, проигрыватели CD-дисков и MP3-файлов.
В WindowMaker"е приложение имеет связанную с ним иконку, даже если не минимизировано, в отличие от explorer"a Windows. Как и большинство оконных менеджеров, WindowMaker поддерживает систему виртуальных экранов.

Enlightment
"Лучше один раз увидеть, чем сто раз услышать", - это точно об Enlightment. Настраивается практически под любого пользователя. Даже под самого привередливого. Имеет огромное количество всевозможных визуальных эффектов (выпадающих меню, выезжающих из-за пределов экрана окон и т.п.), которые радуют глаз и делают общение с компьютером похожим на то, что мы иногда видим в различных техногенных фильмах.
Наворотам и прибамбасам этого менеджера экрана нет числа. Ваши окна могут при появлении выдвигаться из-за границ экрана или образовываться из точки, постепенно увеличиваясь. Терминал с различными бэкграундами, в том числе и с отображением части бэкграунда экрана, над которым сейчас находится терминал.
Некоторые недолюбливают Enlightment за его слишком уж большую страсть к визуальным эффектам. Да, это в определенной степени скрашивает многие часы, которые человек проводит за компьютером, но есть и те, кто больше ценят удобство и функциональность того окружения, в котором работают.
Вернемся к нашим баранам. Оконные менеджеры сами по себе не могут дать полностью комфортной работы в графической среде. Поэтому практически всегда используется Desktop Environment - окружение рабочего стола или среда рабочего стола. Она возлагает на свои плечи заботу обо всем, что касается комфортной работы пользователя в графической оболочке операционной системы. Различные тулбары, ярлыки для выполнения программ и многое другое. Как и большинство оконных менеджеров, все среды рабочего стола имеют средства для переключения между виртуальными экранами. Для этого на панели существует набор кнопок или специальное приложение - пейджер (никакого отношения к мобильной связи оно не имеет). Современные среды рабочего стола (к примеру, GNOME и KDE) базируются на определенной библиотеке графического интерфейса пользователя и включают в свой дистрибутив разнообразные полезные программы (редакторы, электронные записные книжки, органайзеры, простенькие игры, почтовые клиенты и прочее).
Помимо всем известных Gnome и KDE, существует еще ряд Desktop Environment. Рассмотрим некоторые из них.

XFCE (www.xfce.org)
Легко настраиваемая, не требовательная к ресурсам среда. Правда, запрашивающая для работы библиотеку GTK и от этого частично совместимая с GNOME. То есть вы можете одновременно использовать часть возможностей из GNOME и главную панель от XFCE.
Самое большое отличие этой программы в том, что она позволяет изменять меню своей панели без большой затраты сил. Просто надо выбрать пункт меню, которое вы хотите отредактировать, и нажать правую кнопку мыши. Для добавления пункта в меню надо всего лишь нажать на крайний пункт меню. Такая легкость настройки для Linux не характерна (шутка).

CDE
CDE (Common Desktop Environment) - это наследие от самого UNIX"a. Так как для работы CDE нужна коммерческая библиотека Motif, этот продукт не выпускается под лицензией GNU и его приходится покупать. Его используют на таких коммерческих операционных системах, как SCO Unix, BSDI, AIX.
XFCE - свободно распространяемый потомок CDE. Обе программы имеют одну цель: обеспечить достаточно переносимый интерфейс для пользователя и обеспечить его всем необходимым для комфортной работы.



Рекомендуем почитать

Наверх