Оконные менеджеры. Оконные менеджеры в Linux

  • 12.05.2019

Оконные менеджеры в 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. Обе программы имеют одну цель: обеспечить достаточно переносимый интерфейс для пользователя и обеспечить его всем необходимым для комфортной работы.

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

Оконный менеджер - это приложение, которое отвечает за размещение, декорирование окон, взаимодействие с окнами - изменение размеров, максимизация, свёртывание, закрытие. Оконный менеджер взаимодействует с графическим сервером 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 - оба позволяют добавить несколько простых композитинговых спецэффектов (тени, прозрачность), но не более того.

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

Вне зависимости от того, какая рабочая среда установлена на вашем компьютере, в ней наверняка есть какие-то особенности, «фишки», из-за которых вы предпочли именно данную систему. Возможно, вас привлекло богатство программного обеспечения Windows, а может быть — сетевые возможности Linux или интуитивность OS X. Каждая из них хороша по-своему и каждая имеет особенности, отсутствующие у других.

Сегодня речь пойдет об отличительной черте Unix-совместимых систем — . Этот термин означает специфический стиль работы в рамках GUI, при котором все пространство экрана занято непересекающимися окнами открытых программ.

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

Примерно также ведут себя тайловые оконные менеджеры , только вместо фреймов web-страницы в этих нарезанных кусочках экрана (тайлах) живут программы. Если, например, вы захотите соорудить на экране подобие «коммандера», можно открыть две папки и дать менеджеру окон команду: «применить схему — два окна на экране, разделены вертикальной границей».

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

А теперь давайте вернемся к системе, которая сейчас имеется на большинстве компьютеров читателей — Microsoft Windows .

От тайлового менеджера в ней окончательно отказались еще в версии 2.0. Реализованное ныне управление окнами становится лучше с каждой версией. В Windows 7 появилось несколько новых возможностей — теперь можно быстро развернуть окно только вертикали или расположить его ровно на половине экрана, справа или слева. Если вам часто приходится пользоваться одновременно двумя программами, это очень удобно, больше нет нужды прибегать к контекстному меню панели задач.

Однако это еще не максимум того, что можно «выжать» из оконного менеджера Windows. Правда, ничего больше разработчики в него пока не заложили. Давайте посмотрим, что можно найти на просторах Всемирной паутины, и попробуем использовать найденное.


Бесплатно:

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

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

Управление осуществляется исключительно горячими клавишами и аргументами командной строки при запуске. Можно в любой момент перевести текущее окно в обычный режим и обратно, сменить размеры и размещение окон, выйти из тайлового режима (при этом расположение окон сохраняется), поменять количество окон в группах — и все это после небольшой практики делается моментально, несравнимо быстрее по сравнению с попытками сделать примерно то же стандартными средствами.

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

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

Бесплатно:

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

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

Единственный раз неудобство у меня возникло, когда я попытался перетащить таким образом первую вкладку в браузере Chrome — вместо перетаскивания вкладки включился тайлинг всего окна браузера. «Хром» пришлось внести в исключения и двигать горячими клавишами. Впрочем, это тоже вполне удобно и не вызывает чувства отторжения.

Программа примечательна еще одной возможностью — очень гибко настраиваемыми схемами раскладки окон. Вы можете отредактировать имеющуюся, создать свою и, что особенно интересно, использовать «плагины» — программы, реагирующие на события GridMove . В поставке уже есть несколько таких утилит, они умеют запоминать положение окна, восстанавливать его обратно, разворачивать окно только по горизонтали и т.д. В схеме можно указать не только «левую половину экрана», но и «справа внизу на 33%+10 пикселей по ширине с отступом 20 пикселей от края экрана и развернуть по вертикали на две трети экрана».

По умолчанию у меня включена схема, которая разбрасывает окна в соответствии с положением цифр на нампаде . Например, «Win+9» — окно в верхнюю правую четверть экрана, а «Win+5» — окно по центру экрана, размером 2/3 высоты и ширины от текущего разрешения дисплея.

Для меня GridMove стал фаворитом за простоту — после первого дня использования пальцы сами стали нажимать нужные клавиши. Раскладка перетаскиванием за область заголовка — это вообще функция, которую бы мне хотелось увидеть как штатное обновление Windows. Времени на привыкание вообще не требуется, а вот отвыкнуть уже практически нереально.

Бесплатно:

Для меня это — ближайший конкурент GridMove , которому для полного счастья не хватало только удобного перетаскивания за заголовок.

Масштабирование горячими клавишами у WinSplit даже удобнее, чем у GridMove — настройки закрепляют за одним хоткеем несколько разных положений, которые можно перебирать, последовательно нажимая комбинацию клавиш. Например, несколько нажатий «Ctrl+Alt+NumPad1» последовательно развернут окно в нижнем правом углу (половина высоты десктопа) на треть, половину и две трети ширины экрана. Сочетание «Ctrl+Alt+F» включает режим Fusion , когда окно прилипает к одной из сторон экрана, а ширину/высоту, то есть положение «не прилипшего» края, можно тут же отрегулировать курсорными кнопками.

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

Управление окнами с помощью мыши здесь называется Drag’n’Go и реализовано почти так же удобно, как в GridMove . Единственное отличие — переход в тайловый режим при перетаскивании окна выбирается не областью, за которую вы «ухватились», а сочетанием клавиш-модификаторов. По умолчанию это Ctrl+Alt, но можно назначить свои. Я сначала поставил Win, а после и вовсе отключил модификаторы. Все равно окна у меня почти никогда не перекрываются, так что любое перетаскивание окна можно считать попыткой расположить его в тайлах.

Единственный минус, который я смог найти, — программа при установке забирает под себя много популярных сочетаний клавиш. Впрочем, их можно переназначить, в остальном управление с клавиатуры — лучшее среди всех рассмотренных. Неплохо было бы также добавить область окна для перетаскивания, как в GridMove — и тогда WinSplit был бы практически идеальным инструментом.

Приводить скриншоты этих двух программ бессмысленно, в этом плане они похожи на DropBox — вы не видите их, они просто работают, и делают это хорошо.

Shareware:

Эта программа уже является «настоящим» тайловым менеджером , который не просто располагает окна, но занимает ими по возможности весь экран. На приведенном ниже скриншоте (пардон за низкое разрешение) — один из вариантов раскладки окон, получившихся при включении режима QuickArrange . Если сейчас, например, растянуть окно Total Commander (на скриншоте справа внизу), то остальные окна соответствующим образ масштабируются, чтобы не нарушилась целостность «мозаики». Попытка перетянуть одно окно на другое приведет к тому, что окна обменяются местами.

Например, окно браузера, перетянутое на Word , займет левую половину экрана, а текстовый редактор масштабируется и переместится в верхний правый угол дисплея. Такое поведение будет только у окон, открытых на момент команды тайлового менеджера.

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

Впрочем, первое впечатление не было настолько хорошим, чтобы пользоваться программой постоянно и, тем более, покупать ее. После запуска пару раз возникали проблемы с искажением панелей в офисных программах, а настройки довольно бедны — настройка горячих клавиш ограничивает выбором... нет, не самих клавиш, а только модификаторов Ctrl-Alt либо Ctrl-Shift.

Для платной программы, на мой взгляд, WindowSizer пока сыровата и слишком бедна возможностями.

Shareware:

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

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

Бесплатно:

По сути, Bug.n является набором скриптов для программы . При запуске от пользователя скрывается панель задач, а сами окна (по крайней мере, те, у которых были стандартные декораторы), лишаются заголовков и располагаются в тайлы. Взамен панели задач предлагается собственный простенький тулбар.

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

Итого

За рамками статьи остались другие интересные аддоны к оконному менеджеру Windows, такие как WindowTabs , складывающий любые окна в стеки с закладками (как страницы в Chrome), разнообразные утилиты, добавляющие элементы в заголовки окон, реализующие функции RollUp , свертывание в трей, прикрепление к десктопу и «поверх всех окон» и т.п.

Что же касается предмета рассмотрения, то мои однозначные фавориты — GridMove , который я использую сейчас, и WinSplit , завороживший меня реализацией горячих клавиш, удобнейшей из всех рассмотренных. Именно с одной из этих программ я рекомендую вам познакомиться поближе.

Но, не одним Windows жив человек, поэтому предлагаю на примере классических тайловых менеджеров под Unix.

Здравствуйте! Прочитав недавно статью в Linux, мне захотелось рассказать всем о менеджере, который был там упомянут - «awesome».
Это тайлинговый windows manager для unix (linux, freebsd, openbsd, netbsd).

Описание

Awesome WM - тайлинговый wm, с возможностями быть и композитным. Это одна из его особенностей, часто пользователям требуется компактность (тайлинговая сторона этого WM), но и иногда можно и поработать в обычном режиме (композитном). Он очень легок, не нагружает процессор, и пространство экрана используется очень размерено и пустых пространств не остается (в тайлинговом режиме).
Настраивается он при помощи конфигурационного файла, на скриптовом языке Lua. Есть поддержка плагинов, которые тоже, в свою очередь, написаны на Lua.

Установка

Установить его очень просто, например на Arch Linux просто напишите
sudo pacman -S awesome vicious
Или на Debian based
sudo apt-get install awesome awesome-extra
Пакет «vicious» содержит в себе базовые плагины, которые Вы в дальнейшем можете использовать.

Далее требуется прописать его загрузки при загрузке X Window System. Это прописывается в файле, находящемся в домашнем каталоге, ".xinitrc".
#!/bin/sh exec awesome
Перезагружаемся и появляется это wm.

Первое знакомство



Вот так выглядит ваша сессия при первом включении. Казалось бы, как в этом работать и что тут делать? На самом деле все просто, когда поймешь ее систему. Все действия с окнами выполняются с помощью хоткеев. По умолчанию они таковы (все это можно прочитать в «man awesome», сам текст взят с gentoo wiki):

super + number переход на другой тэг, где тэг это номер клавиши, точнее его положение (проводя аналогию с другими wm, тэг = вирт. рабочий стол).
super + shift + number перенести текущее окно на другой тэг.
super + j, super+k переход между окнами.
super + shift + j или super + shift + k поменять местами два окна.
super + Space изменение отображения окон. (В awesome очень много видов отображений - тайлинговые: вертикально, горизонтально; композитные - можно мышкой таскать; приложение в фокусе на весь экран и пр.)
super + Enter запустить терминал.
super + r запуск программы.
super+shift+c закрыть окно.
super+shift+r перезапустить awesome.
super+shift+q выйти из awesome.

Несомненно кому-то они не удобны. Но ведь мы можем все изменить! Поэтому переходим к конфигурационному файлу.

Конфигурационный файл

Предупреждение, для редактирования его нужны хотя бы небольшие навыки в программировании или написании скриптов.
Глобальный конфиг файл находится в системе в "/etc/xdg/awesome/rc.lua", но его лучше не изменять, тк если он не правильный, то wm не запустится. Поэтому сделаем свой.
mkdir ~/.config/awesome cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
И будем изменять уже непосредственно его.
Прежде всего хотелось бы изменить некоторые клавиши.
Хоткеи находятся в секции
" - {{{ Key bindings "
Изменять все просто.
modkey - это наша клавиша super (с логотипом windows на клавиатуре).
Например:
awful.key({ modkey, "Shift" }, "q", awesome.quit),
Это строчка говорит, что super + Shift + q заставит awesome закрыться.
Допустим, мы хотим оставить тоже самое, но без shift, тогда будет
awful.key({ modkey, }, "q", awesome.quit), Или например просто по клавише Esc (Это лишь пример!)
awful.key({}, "Esc", awesome.quit), Думаю, логика понятна.
Так, с клавишами разобрались. Теперь стоит настроить глобальные переменные.
Эта секция находится в начале. (Далее мои собственные настройки, которые вы можете, конечно же, изменить)
terminal = "terminal" browser = "chromium-dev" editor = os.getenv("vim") or "vim" editor_cmd = terminal .. " -e " .. editor
Думаю с «внутренностями» мы разобрались, пора браться за внешний вид.

Еще чуть-чуть про настройку

Все так же продолжаем работать в конфигурационном файле.
Сперва, вместо просто цифр хотелось бы переименовать наши тэги. Это находится в секции
"--- {{{ Tags"
Вместо цифр просто напишите имена.
Например у меня:
tags[s] = awful.tag({ "All", "IM", "Work", "Etc", "Media"}, s, layouts)
Вообще про конфигурацию я написать хорошо не сумею, ведь это дело персональное. Лучше всего про это прочитать на awesome wiki . Вообще, дописав конфиг, Вы ощутите новую легкость работы с окнами. Большое количество плюшек можно найти .

Вместо заключения

Хочу отметить, что данный wm идеально подойдет людям, которые часто держат в фокусе несколько окон. Так же он подойдет для слабых машин и легковесных систем, и машин с небольшими экранами (ноутбуки)
Заучив (по началу), а потом по наитию нажимая хоткеи, Вы уже не будете думать над тем, как, куда, что сделать с окном, как его разместить.
Например в awesome в одном тэге можно держать определенные окна. Например у меня в тэге IM находятся Skype и Pidgin.
Но что слова! Скриншоты!


Полноразмерный последний скриншот
Мои обои, по просьбам трудящихся.
А так же видео, демонстрирующее работу WM.

Так же прилагаю архив со своим конфигом + плагины.

Надеюсь, я заинтересовал Вас этим классным (от англ. awesome) WM, и Вы попробуете его в деле! И готов с радостью ответить и помочь в комментариях.



Его основная задача - управлять поведением окон на экране. Заголовок окна, рамка, кнопки распахивания, сворачивания и т.п. - все это в его ведомстве. Кроме того, он занимается расположением окон на экране и на рабочих столах. При помощи 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.