Библиотека сайта rus-linux.net
Пластическая операция для Linux. Часть 2
Сегодня я займусь неблагодарным занятием - буду описывать малоизвестные менеджеры экрана. Постараюсь объять необъятное, т.е. описать все программы этого класса. Хотя, как мне кажется, хотя бы несколько из них ускользнут от моего внимания.
Во времена господства Windows и тотальной неизвестности других операционных систем пользователи мирились с тем, что давала им ОС в плане графического интерфейса. Время прошло и ситуация изменилась. Многие люди после того, как начинали работать в Linux, понимали, что тут все по-другому. Не человек должен подлаживаться под единый графический интерфейс, а машина должна корпеть, чтобы обеспечить пользователю наиболее комфортную среду для работы. Именно этим объясняется такое большое количество менеджеров экрана для Linux.
Перед тем как начать описывать различные программы из этой категории, я открою вам маленький секрет. На самом деле, если вы являетесь программистом, то можете написать свой shell (для LiteStep - www.litestep.net). Если не знаете как, то сходите на www.litestep.net и скачайте исходники к LiteStep. Точно знаю, что с компиляцией и отладкой исходного текста LiteStep в Microsoft Visual Studio 6.0 проблем не возникает. А благодаря лицензии GNU вы можете совершенно беспрепятственно модифицировать эту программу и в конце концов создать свой собственный shell для Windows, который будет обеспечивать вам максимум комфорта в работе. Ну а теперь вернемся к Linux. При нижеследующем описании программ, управляющих внешним видом и поведением вашего экрана, я старался расположить их в порядке убывания известности. К сожалению, я пользовался таким необъективным критерием как собственное мнение, так что не слишком обращайте на это внимание.
BlackBox |
Сегодня я хочу начать с экранного менеджера BlackBox. Это самая известная (как мне кажется) из малоизвестных программ своего класса. Но совершенно
неоспоримо то, что это один из самых легковесных экранных менеджеров. Эта программа написана на C++ и не использует исходный текст из других источников (хотя реализация графики и похожа на используемую в Window Maker). Версия 0.51.3.1 (самая последня из известных мне) состоит из 14 406 строк, включая сам исходный код, файлы заголовков, комментарии и директивы препроцессора (поверьте, это не так уж и много). Весь исходный текст пишется и поддерживается человеком по имени Brad Hughes (blackbox@alug.org) вместе с различными кусками кода и патчами, полученными от других людей.
Начиная с того времени, когда была написана первая строка исходного текста главной целью было сведение к минимуму требований к ресурсам. Black Box не предназначен для того, чтобы радовать глаз или поражать своей необычностью, он просто предназначен быть быстрым. То же относится и к пользовательскому интерфейсу BlackBox'а. Быстрый и простой. Все основные свойства менеджера экрана, меню для запуска программ и инструменты для минимизации, максимизации и изменения размеров окон.
Интересно поступает BlackBox с изображениями, которые использует. Обычно изображение загружается в память и висит там используясь по мере необходимости.
Однако этот экранный менеджер не имеет встроенных средств для загрузки изображений. И, как сказано в его документации, никогда иметь не будет. Вместо этого он использует встроенный графический класс для постройки (рендера) изображения "на лету" с последующим кэшированием в случае необходимости.
FLWM
http://flwm.sourceforge.net
FLWM - это попытка собрать лучшие идеи нескольких менеджеров экрана. Прежде всего на ее реализации чувствуется влияние исходного кода от wm2 (автор Крис Каннам).
В этом продукте используется библиотека fltk, так что скачайте ее прежде чем компилировать flwm. К главным особенностям относятся:
- Системные элементы менеджера занимают минимум места на экране;
- Имеются раздельные кнопки для максимизации по вертикали и горизантали;
- Понимает расширения KDE, Motif и GNOME;
- Очень быстрый и компактный код;
Последняя версия этого менеджера экрана - 0.25, т.е. до релиза еще очень далеко.
И хоть у этого продукта множество плюсов, но незаконченность реализации не дает ему конкурировать с такими средами, как KDE, GNOME и Window Maker.
FVWM
http://www.fvwm.org
Как и большинство описанных здесь программ, FVWM берет свое начало и некоторые куски исходного кода от другого менеджера экрана (twm). Однако, с выходом второй версии (fvwm2), он достаточно отошел от своего предка и имеет свои неповторимые черты. При создании этого продукта была сделана попытка привести его к стандарту ICCCM 2. Он расчитан на использование в средах (и с библиотеками) Motif, хотя и нормально работает в одиночку. Мне показалось, что по расположению компонентов он сильно похож на интерфейс Windows, но с элементами оформления окон для Motif.
LWM
http://users.ch.genedata.com/~enh/lwm
LWM можно назвать менеджером экрана для аскета или минималиста. В нем нет иконок, нет доков, нет панелей с кнопками, нет экранных меню. Если вам нужно что-то из вышеперечисленного, то существует множество отдельных программ. В LWM нет даже нормальных средств конфигурации экрана. Зачем же тогда нужен такой уродец?
Он нужен, чтобы помогать вашему любимому компьютеру бороться с нехваткой дискового пространства и физической памяти. Из всех элементов оформления окон в LWM присутствует только небольшая полоса вверху с квадратиком. В зависимости от того, какой кнопкой мыши этот квадратик нажимается, окно минимизируется или максимизируется.
MLVWM
http://www2u.biglobe.ne.jp/~y-miyata/mlvwm.html
У многих из вас есть любимые платформы прошлого или настоящего. Кто-то фанатеет от Амиг, а кому-то нравятся Маки или что-нибудь еще более необычное. Этот менеджер как раз для фанатов "Макинтошей". Разработанный на платформе FreeBSD, этот продукт не имеет ничего интересного, кроме копирования внешнего вида и поведения некоторых версий Mac Os. Однако поражает количество платформ, на которых он успешно компилируется и запускается (Solaris, NetBSD, Linux, FreeBSD, Irix, HP-UX, AIX, Ultrix, OSF/1 и еще парочка полностью неизвестных).
AMIWM
http://www.lysator.liu.se/~marcus/amiwm.html
Продолжаю тему менеджеров экрана, которые копируют внешний вид и поведение другой платформы. Ну что ж, со своей обязанностью он справляется. Пользователи (или бывшие пользователи) Амиг теперь могут без особых затрат нервов переходить на Линукс или FreeBSD. Однако мне все-таки больше по душе родные менеджеры экрана для Linux.
Несколько необычный менеджер экрана. Или по крайней мере нетрадиционный.
Необычность его заключается не в том, что он как-то нетривиально выглядит, а в том, что он имеет встроенный язык для написания скриптов, похожий на Lisp.
Все элементы оформления описываются при помощи этого языка, и их поведение под полным контролем пользователя.
Qvwm отностится к разряду тех программ, которые повторяют внешний вид Windows.
Это может быть полезно как тем пользователям, которые переходят с Windows в мир UNIX, так и просто в целях унификации интерфейса. Qvwm так похож на Windows, что с первого взгляда не определить что на самом деле это не она. Этот экранный менеджер компилируется и работает на следующих платформах: AIX, BSD/OS, FreeBSD/NetBSD/OpenBSD, HI-UX/WE2, HP-UX, IRIX, Linux, MkLinux, NEWS-OS, OS/2, OSF1, Solaris, SunOs4, UNIX SV, UXP/DS. Поскольку список платформ включает практиче-ски все платформы и операционные системы, этот менеджер может использоваться как решение унификации интерфейса пользователя в UNIX-мире.
Единственный минус заключается в том, что вряд ли пользователи и системные администраторы UNIX-систем будут использовать что-то, что хоть немного относится к миру Windows.
SCWM |
SCWM - это экранный менеджер со встроенным языком конфигурации, который довольно похож на язык программирования (но все-таки по некоторым параметрам до оного не дотягивает) Guile Scheme. У scwm есть множество расширенных опций (параметров) для конфигурирования, которые описываются через встроенный язык. В данный момент scwm находится в стадии активной разработки и постоянно совершенствуется. Он основан на исходном коде fvwmw (описан выше), но все внутреннее содержимое практически полностью переписано. Однако поддерживается совместимость с предком (fvwm2), например можно использовать модули fvwm2 с помощью определенного адаптера из набора Guile Scheme.
GWM
http://www.inria.fr/koala/gwm
Generic Window Manager (GWM) базируется на ядре языка WOOL (Window Object Oriented Language - Оконно Ориентированный Язык?), который в свою очередь является интерпретируемым диалектом Lisp'a со специальными средствами управления окнами. Пользователь конструирует оконный интерфейс, описывая в WOOL файлах объекты экрана.
Пользователь также описывает поведение описанных объектов при возникновении определенных событий (нажатия клавиш мыши, клавиатуры и т.п.). GWM очень полезен для эмуляции внешнего вида и поведения другого менеджера экрана или экранной системы другой платформы. GWM поставляется с набором уже определенных (описанных) экранов, но вы с легкостью сможете переделать их в то, что вам на самом деле нужно.
GWM выполняет как менеджер экрана то, что делает EMACS как текстовый редактор (EMACS - это редактор со встроенным языком программирования типа Lisp. EMACS конфигурируется при его помощи и может делать практически все). Заранее извиняюсь перед теми, чьи чувства я затронул. Лично я использую всего два менеджера экрана из описанного многообразия: XFCE на работе и KDE дома. Ни в коей мере не хочу сказать, что выбор абсолютно правильный, но так уж я привык.
Выбор рабочей среды прежде всего зависит от личных предпочтений пользователя, и в мире UNIX унификации не подвергается. Ваш экран будет выглядеть только так, как вы этого захотите, и никак иначе. Полная свобода выбора. Это, наверное, и есть главный принцип поколения Linux.