Предисловие
В данной статье я собрал некоторые свои замечания о поводу различных опробованных мною оконных менеджеров (WM - windows manager). Воспринимайте данные заметки лишь как общие идеи, простые комментарии и мысли, которые, я надеюсь, окажутся вам полезными.
Каждый из оконных менеджеров использует в своей работе различные наборы графических средств, языки и проч. (Иногда, как вы в дальнейшем увидите, из всего этого получается довольно странная смесь), так что я должен предупредить читателей, что настоящее объективное сравнение графических пользовательских интерфейсов (GUI) просто невозможно. Выбор "лучшего ОМ" зависит от качества используемых графических средств, время разработки, количество разработчиков и помощников и многие другие факторы, и это читатели должны принять во внимание.
С другой стороны всегда существует фактор субъективности, связанный с личными вкусами и предпочтениями. Я попытаюсь быть как можно более объективным и учитывать все замечания, изложенные выше.
Сначала я хотел бы представить вам файлы сценариев, благодаря которым я могу пользоваться сразу двумя оконными менеджерами. Их достоинство заключается в том, что я могу быстро менять менеджеры рабочего стола (спасибо М.Сориано :)).
Файл /usr/local/flin:
#! /bin/sh
export WM=after
if [ $# = 0 ]; then
exec startx -- -bpp 16 :0
else
if [ $1 = 'dual' ]; then
export WM=after
exec startx -- -bpp 16 :0 &
sleep 5
export WM=kde
exec startx -- :1 &
fi
if [ $1 = 'kde' ];then
export WM=kde
exec startx -- -bpp 16 :0
fi
fi
My $HOME/.XClients:
#! /bin/bash
#
# Styx's .xinitrc
#
####################################
exec 2>$HOME/xinit.error.log
echo "Parameter 1 $1 " >&2
sysresources=$HOME/.Xdefaults
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
# You may at this point start your personal applications.
# e.g xscreensaver
# xscreensaver -timeout 2 -cycle 1 &
xmodmap ~/resources/X11/Mapeo.es
xhost +
# Agenda planifier
if [ -f /usr/local/lib/pland ]; then
/usr/local/lib/pland &
fi
if [ $WM = "kde" ]; then
exec startkde -display :1
else
exec afterstep -display :0
fi
Благодаря данным файлам настройки я могу набрать в командной строке следующее:
- $ flin /*запускается AfterStep*/
- $ flin kde /*запускается KDE*/
- $ flin dual /*запускается AfterStep и KDE*/
Масса графических средств и библиотек.
Первое, что смущает пользователей, это обилие графических средств и прочих инструментов, которые используются в каждом оконном менеджере или графическом интерфейсе. Все они распространяются в соответствии с правилами лицензий Public Domain License, GPL/LGPL или каких-либо других аналогичных лицензий, что подразумевает бесплатность их использования.
На мой взгляд это только создает проблемы для пользователя, который предпочитает работать только с одним оконным менеджером, и не знает, какие составные части для него требуются. Во всех случаях полную информацию по этим вопросам мы можем найти в документации и Web-страницах, посвященных каждому из проектов.
Нужен Linux стандартный пользовательский интерфейс?
Этот вопрос может показаться странным, а у большинства пользователей на него найдется простой ответ: "Пользуйтесь тем. Что вам нравится больше всего". Но для остальных пользователей этот вопрос действительно очень важен, так как он связан с направлением дальнейшего развития ОС Linux.
Задача состоит в том, чтобы создать графический пользовательский интерфейс, который прост в использовании, интуитивно понятен, снабжен мощной справочной системой, обеспечивает полную интеграцию различных приложений, и обладает другими качествами, облегчающими ежедневную работу с системой, причем всей действия должны выполняться мышью, и все это должно быть интегрировано в процесс установки операционной системы на компьютер и управления ею.
Некоторые компании уже начали работать над данным типом программных продуктов. И на сегодняшний день мы уже имеем графический интерфейс от компании Caldera, который включен в дистрибутив Caldera Linux, а также разработку CDE for LINUX компании Red Hat.
К счастью в сообществе пользователей Linux множество людей, которые принимают активное участие в разработке нового программного обеспечения, а потому данным коммерческим продуктам существуют бесплатные альтернативы. Некоторые из них будут описаны в данной статье.
Естественно пользователи должны иметь свободу выбора, но создав
для Linux хороший графический интерфейс мы наконец перестанем слышать
на каждом шагу избитую фразу: "Linux не так красив, как ┘.".
Обратите внимание: вы никогда не видели, как глядя на машину, работающую c графическим пользовательским интерфейсом под Linux, люди и не догадывались, что перед ними вовсе не Microsoft Windows?
Стоит отметить, что наличие стандартов значительно облегчает работу программистам. Для них уже понятно, как должны взаимодействовать друг с другом оконный менеджер и приложения. Многие приложения очень сильно опираются в своей работе на оконный менеджер (понять это довольно сложно, но я надеюсь, читатели просто поверят мне на слово).
В качестве итога можно сказать, что полемика по этому вопросу еще только началась.
KDE (The K Desktop Environment)
Мои первые шаги по освоению этой программы были непростыми. Мне пришлось установить библиотеку QT. Then I downloaded the KDE Beta2 version in a rpm format
После этого я переписал из сети бета версию пакета KDE Beta2 в формате rpm (я пользуюсь RedHat 4.2). Программа не заработала, поэтому мне пришлось переписывать релиз Beta3 вместе с исходными текстами, и потратить примерно 1 час на их компиляцию на машине Pentium 133 (32 Mb ОЗУ). Новый бета-релиз KDE работает прекрасно. К счастью исходные тексты библиотеки и менеджера рабочего стола KDE можно получить в разных форматах пакетов: RPM, tar и deb.
После установки переменных среды и пары команд типа "configure; make; make install" я получил среду, первые впечатления от которой были ошеломительными. Практически перед нами графический интерфейс, который по виду очень похож на своих коммерческих собратьев. Я могу лишь посоветовать читателям не стесняться и хорошенько исследовать его. Знакомство с инструментами менеджера не отнимет у вас много времени, и вскоре вы с легкостью сможете настроить KDE на свой вкус. Поведение и внешний вид KDE можно подстроить под Windows 95 или Motif CDE, либо раскрасить рабочий стол под свой собственный вкус. В на рисунке, представленном ниже, я сделал "снимок" своего рабочего стола, настроенного под Motif CDE (таким образом я могу воспроизвести на экране другую ОС, от которой мне пришлось надолго отказаться :)).
Рис. 1. Главное окно KDE.
Внизу экрана располагается панель и кнопка "К", с помощью которых вы получаете возможность управлять всеми утилитами графического интерфейса. Например можно вставить любой пункт в меню (с помощью программы kmenuedit) или в панель инструментов.
Первой привлекательной функцией среды являетс
электронна справочная система, которая позволяет обращатьс
к файлам справки самой программы, к man-страницам и (в
будущем) к info-файлам. Нажав правую кнопку мыши, вы
увидите на экране меню, в котором надо выбрать пункт "Help
on the screen". Задать язык, на котором интерфейс выдает
свои сообщения, можно с помощью переменной LANG, то же
самое можно сделать с помощью утилиты KDE Control Center.
Еще одним мощным инструментом является менеджер файлов (kfm), с помощью которого вы можете работать с файлами и путешествовать по Web, т.е. в одной программе совмещены две возможности.
Рис. 2. Вывод справки в KDE.
Количество утилит в данном интерфейсе просто огромно, все они распределены по группам network, graphics, administration, multimedia и Internet (пользователь может сам выбрать, какой из пакетов он хочет установить). Любой пользователь данного интерфейса будет иметь в своем распоряжении инструменты по крайней мере для повседневной работы, а ведь это и есть цель интерфейса. Многие инструменты, интегрированные в менеджер, могут удовлетворить минимальные потребности любого пользователя.
Например, в меню есть пункт "Utilities". В нем располагаются очень хороший калькулятор (до 15 разрядов), редактор шестнадцатеричных кодов, программа просмотра графики, инструмент управления системным временем, программа составления расписания, программа-"наклеки", редактор меню, терминаль (kvt) и программа работы с zip-файлами. Если попытаться описать все эти инструменты и все свойства менеджера KDE, на это одной статьи не хвати, а потребуется не один выпуск журнала LinuxFocus.
В релизе Beta3 появилась новая функция под названием KDE
Control Center. С помощью этой программы вы можете управлять
всей средой и изменять ее по своему вкусу. Не забывайте, что
некоторые утилиты (например kuser,
управляющий базой данных пользователей и групп) для своей работы требуют, чтобы у пользователя была привилегия "root". Этот инструмент может заменить пункт "Settings" в главном меню. KDE Control Center предоставляет прекрасные возможности по настройке рабочего стола.
Рис. 3. KDE Control Center
При щелчке мышью по любой из пиктограмм, что расположены в системном дереве (слева на рисунке), открывается определенная подсистема. Так вы можете с легкостью добраться до любого элемента, который вам надо настроить. Действие большинства параметров среды можно проверить, а затем включить с помощью кнопки "Apply". Некоторых случаях для того, чтобы увидеть результаты внесенных изменений, приходится перезагружать оконный менеджер. Например первое, что делает каждый пользователь, это настройка менеджера на свой язык. Делается это с помощью пункта Language в меню Desktop. Можно выбрать до трех языков.
Для доступа к Интернету через модем следует воспользоваться программой kppp. После того, как в панели настройки будут указаны все данные, мы можем выйти на связь и отслеживать состояние этой линии, статус связи, время и даже стоимость звонков. Удивительно, что стоимость звонков рассчитывается на основании страницы, заданной в меню настройки. Например можно задать стоимость звонков по Инфовиа (этой телефонной сетью владеет компания Telefonica de Espana S.A.) в Испании.
После подключения к сети мы можем пользоваться программами чтения почты и новостей, сетевыми утилитами, которые входят в состав KDE.
Рис. 4. Главное окно программы kppp.w
Если вы компилируете и устанавливаете программу на основе исходных кодов, как в моем случае, в главном меню вы увидите пункт "non-KDE Apps". Именно сюда менеджер KDE вставил (или попытался вставить) все X-приложения, которые были установлены в предыдущей графической среде. Если в данном пункте появилось лишь несколько программ. Или вообще ничего нет, вы можете запустить программу "kappfinder", которая будет искать на вашей системе все стандартные утилиты для графической среды.
Давайте вернемся назад к рисунку 1. Обратите внимание на левую сторону рабочего стола, где расположено несколько пиктограмм: Trash (мусорка естественно :-)), Templates (шаблоны) служит для создания ярлыков к устройствам, URL и так далее) и Autostart - здесь задаются программы, которые запускаются при старте графической среды (в данный пункт помещается создаваемый для данной программы файл типа .kdelnk). ярлык можно создать для чего угодно. Я например создал в несколько приемов ярлык ZIP-устройству:
- Выбираем в Desktop Menu (открывается по щелчку правой кнопки мыши) пункт New Device.
- На экране появляется окно, в котором набираем "zip.kdelnk".
- ╥ Нажимаем ОК. на рабочем столе появляется новая пиктограмма. Теперь у вас два пути: отредактировать свойства ярлыка или применить к нему команду Open
with. Изменять устройство, точку его монтирования и прочие свойства можно с помощью любого текстового редактора на ваш выбор. В менеджере KDE уже имеются готовые шаблоны ярлыков. В большинстве случаев эти шаблоны не подходят полностью для той или иной ситуации, поэтому приходится редактировать соответствующий файл, как мы это делали только что. Так выглядит окно свойств ярлыка, в которое можно внести нужную информацию или выбрать те или иные опции:
При выходе менеджер KDE попытается запомнить состояние всех приложений, чтобы восстановить их при запуске следующего сеанса. KDE выводит диалоговое окно, в котором расположен список утилит, которые можно перезапустить, и утилит, в которых при выходе будут потеряны все данные. Та же самая функция присутствует и в WINDOWSMAKER (о нем речь пойдет ниже).
В заключении я хотел бы сказать, что данная среда значительно облегчает ежедневную работу. В верхней части экрана располагаются кнопки, соответствующие запущенным в настоящее время приложениям. Можно менять количество виртуальных рабочих столов, переключение между которыми осуществляется очень просто. Если вы предпочитаете работать с клавиатурой, для переключения между столами воспользуйтесь сочетанием клавиш / + . Настроить можно даже внешний вид терминала (kvt). Например с помощью главного меню изменить тип и цвета фона и текста. Если нужно "прикрепить" окно терминала к рабочему столу, достаточно нажать пиктограмму в левой верхней части окна.
Главное меню kvt.
Данная оболочка имеет огромное число функций. Несмотря на то, что в ее настройках можно разобраться интуитивно, я рекомендую читателям, которых эта оболочка заинтересовала, обратиться к электронной справочной системе KDE.
Библиотека Qt. Источник всех конфликтов.
Люди, вовлеченные в разработку менеджера KDE, заявляют, что выбор библиотеки QT был обусловлен ее небольшими требованиями к ресурсам системы и высокой степенью надежности. Однако данная библиотека вызвала большую полемику, связанную с лицензией по которой она распространяется. Бесплатное использование данного инструмента разрешается для разработки бесплатного программного обеспечения. Но за использование ее в коммерческих целях необходимо платить. Однако эта лицензия вовсе не совпадает с известной лицензией GNU General Public Domain..
Получить исходные тексты библиотеки, полную документацию и примеры исходного кода может любой пользователь, однако создатели библиотеки QT оставили за собой некоторые права собственности на данный продукт. Некоторые пользователи соглашаются с такой политикой распространения, и используют библиотеку для создания бесплатного ПО, так как у нее простой интерфейс (построенный на С++), высокое качество и так далее. Остальные же считают, что данная библиотека распространяется бесплатно до тех пор. Пока находится в стадии разработки, а потом (может быть начиная с версии 1.4) она перестанет быть бесплатной, и мы останемся ни с чем.
Пока же можно только утверждать, что версия 1.32 подчиняется прежнему правилу: бесплатно для бесплатного ПО, и не бесплатно для всякого прочего. О планах компании пока никому ничего неизвестно, но от сделанной к настоящему времени работы уже невозможно отказаться. Сегодня библиотека представляет собой серьезную альтернативу в разработке приложений под X Window. Высказывается мнение, что данный проект над перевести данный набор инструментов
GTK, или создать бесплатный вариант библиотеки QT.
Лично я считаю, что на создание бесплатного варианта Qt потребуется очень много времени и усилий. Не пытаясь кого-то обидеть, я полагаю, что может быть набора GTK будет и недостаточно для разработки KDE, но начиная с него этот набор инструментов по мере продвижения процесса разработки может улучшаться. Возможностей масса, и я не хотел бы быть свидетелем пустой траты сил и работы на "войны" подобного рода. По себе среда KDE очень хороша, и у нее есть серьезные шансы стать стандартной средой для Linux. Например дистрибутив от SUSE
делает ставку на него. В будущих релизах данных продуктов он будет еще больше улучшен.
Windowmaker & Afterstep
Первоначально я собирался написать несколько строк об оконном менеджере, которым я пользуюсь сейчас, - AfterStep, но не так давно мое внимание привлек проект Windowmaker. Я не уверен в своем предположении, но мне кажется, что две идеи соединились в одну. Либо оконный менеджер Windowmaker представляет собой эволюцию AfterStep, либо его развитие закончилось с выходом версии 1.3. Координатор проекта Windowmaker (Альфредо К.Кохима) является одним из разработчиков AfterStep. Поэтому ниже я буду говорить сразу о двух оконных менеджерах, чтобы были видны их схожие черты.
AfterStep - произошел, как и многие другие оконные менеджеры, из twm. Если вдаваться в детали, то twm послужил базой для fvwm, который в свою очередь является отцом менеджера BowMan, который позднее превратился в AfterStep (уф-ф!! :) ). Изначально идея заключалась в том, чтобы воспроизвести поведение и внешний вид ("look and feel") оконного менеджера NEXTSTEP. Что касается генеалогического древа Windowmaker, пусть читатель сам над ним поработает на досуге ;).
Процесс установки Windowmaker очень прост. Дополнительные библиотеки для него не требуются, за что большое спасибо. Все программы поставляются с исходными текстами. Прежде всего пользователю надо откомпилировать и установить, это небольшая (читатели простят меня за "маленькую ложь") библиотека libProplist. После компиляции и установки программ и графических файлов (Windowmaker-data.tar.gz) необходимо дать команду "wmaker.inst", которая внесет изменения в файл $HOME/.xinitrc и создаст каталог $HOME/GNUstep. В этот каталог будут помещены все файлы настройки оконного менеджера. В связи с этим заранее позаботьтесь о своих файлах .xinitrc и .Xclients.
После запуска менеджера на экране появляется голубой фон, а затем одно окно терминала: ничего странного для пользователя AfterStep. Правой кнопкой мыши вызывается главное меню, из которого можно запустить любое приложение; перемещение между виртуальными рабочими столами осуществляется с помощью средней кнопки мыши. Я пишу эти строки в данном оконном менеджере. В работе с ним вам поможет опыт работы с AfterStep.
Рис. 5. Изображение Windowmaker.
Окна сворачиваются по двум щелчкам мышью на заголовке окна (а разворачиваются комбинацией клавиш Control + Shift). В AfterStep для этого требуется щелкнуть правую кнопку мыши на верхней части окна, а для изменения размеров - выбрать нижнюю часть окна.
Главное меню также появляется на экране, если щелкнуть правой кнопкой мыши на заголовке окна. С его помощью можно настроить окна и характеристики представления приложений. Все это делается с помощью мыши и переключателей, и открывать файл конфигурации не нужно.
Оконное меню.
Пожалуй наиболее важным пунктом в меню является
Attributes. Он позволяет изменять свойства окна: "приклеивать" его к определенному месту на рабочем столе, сворачивать в пиктограмму и менять переход фокуса и так далее. Например:
Настройка окна emacs.
Еще одна функция, которую можно вручную менять пиктограмму, что выводится в правой части окна; для этого достаточно перетащить на это место любую пиктограмму. К сожалению мне не удалось выполнить эту операцию с пиктограммой xemacs :(.
Если вы хотите настраивать оконный менеджер из файла конфигурации, прочитайте поставляемую с пакетом документацию. Она оформлена в формате Postscript. В ней описаны не все свойства программы, но зато в конце подробно описаны синтаксис и все пункты программы. Со времен .steprc в программу были внесены многие изменения, так что я советую вам почитать документацию. Настройки и использование оконного менеджера дополнено описанием множеств сочетаний клавиш. Я считаю, что простота и производительность были главной идеей создания данного оконного менеджера, так как он не требует много системных ресурсов и позволяет интенсивно использовать клавиатуру. Мне кажется, что он работает несколько быстрее, чем KDE и его маленький брат, хотя я не могу подтвердить это реальными данными.
В оконном менеджере AfterStep имеется утилита под названием ascp (AfterStep Control Panel). С помощью данной программы настраивается оконным менеджер.
Панель управления AfterStep.
В результате у нас прекрасный оконный менеджер, пользователи AfterStep могут рассматривать его как следующий шаг (next step ;) (непередаваемый каламбурчик - прим. переводчика). Я не объяснил и не описал все возможности данного пакета, но это реальный кандидат на установку на любую машину, где нет больших системных ресурсов, и где требуется мощный и в то же время простой в использовании оконный менеджер. Пожалуй главной трудностью для кого-то окажется присутствие большого количества файлов конфигурации, но я полагаю они не предназначены для пользователей, у которых плохо с английским и мал опыт работы с Linux :).
Gnome. А все могло быть и лучше :(.
Мне очень жаль заканчивать данную статью плохими новостями. Я собирался написать о проекте Gnome и о том, в каком состоянии он сейчас находится (особенно после заявления со стороны Red Hat и DEBIAN о своей поддержке данного проекта). По этой причине я переписал с их главного FTP-узла все необходимые программы (gnome-0.12.tar.gz) и набор инструментов GTK (v.0.99.2).
Для новичков поясню, что библиотека GTK является главной из тех, что необходимы для работы приложения GIMP - самой лучшей программы работы с графикой под Linux. Библиотека изначально была создана для программы Gimp, а затем развилась в набор графических инструментов для X Window. Распространяется она по общедоступной лицензии GNU GPL. Сейчас ею пользуется пакет Gnome.
Во-первых я был удивлен тем, что не смог найти никаких справочных файлов. Были лишь файлы README, но их было явно недостаточно. Я не знаю, что нужно делать с пакетами, порядок установки нигде не описан, ничего не сказано о специальных параметрах, и так далее┘ Так что первое, что я сделал, руководствуясь собственной интуицией, это скомпилировал и установил все пакеты за исключением главного (gnome-xxx). Больше всего проблемы у меня было с пакетом "slib". Хотя я считаю, что мне удалось-таки его правильно установить (я надеюсь).
После своих первых тщетных попыток с помощью подписчиков одного из списков рассылки, посвященному Linux, я узнал, что мне необходимо использовать библиотеку gtk 0.99.3. Я загрузил из сети "заплатку", с помощью которой сделал обновление библиотеки, но когда я попытался запустить компиляцию, я получил сообщение об ошибке, которое утверждало, что у меня отсутствует Emacs!!! Есть там дин маленький файл-сценарий, который пытается запустить Emacs для компиляции файла, написанного на Lisp (ranlisp). Мне удалось изменить его (вставил "xemacs"). После чего все прошло хорошо.
Я также узнал. Что мне необходимо установить компилятор Objective-C, чтобы откомпилировать некоторые файлы. Это действительно так?
В заключении скажу, что, насколько я могу судить, проект находится на самой ранней стадии развития. Пожалуй, он годится пока только для разработчиков (или для спецов). Я не нашел никакого упоминания о том, чем является данный пакет: альфа- или бета-версией. Также я не знаю, насколько оправдано использование С, С++, Objective C, Lisp, Scheme и .. так далее. Надо ли пользователю устанавливать все эти инструменты, чтобы пользоваться пакетом Gnome? Что я сделал неправильно?
Мне поступило множество советов со стороны пользователей, но мне так и не удалось поработать с оболочкой достаточно времени, чтобы написать данную статью, а ее краткое описание было бы явно недостаточным. Я хочу посвятить побольше времени данному проекту.
Несмотря ни на что, я обещаю написать статью или связаться с кем-то, кто достаточно квалифицирован, чтобы сделать это, и чтобы читатели LinuxFocus получили хорошую статью о GNOME. :).
Заключение.
В данной статье была предпринята попытка представить пользователям Linux краткий обзор нескольких менеджеров рабочих столов, которые могут помочь им облегчить выполнение их каждодневных задач. Все работает прекрасно и выглядит замечательно, так что можно сказать, что выбор существует.
Надеюсь мне удалось пролить немного света на инструментальные средства, используемые в каждой среде. Я не собирался убеждать кого бы то ни было в преимуществе какого-то определенного набора над другими. Я попытался быть объективным насколько это возможно, и описал текущее состояние дел и уровень каждого их проектов. Я опять приношу свои извинения, если я кого-то обидел в своей статье.
Ну вот и все. Аплодирую всем проектам и людям, которые помогают делать так, чтобы Linux не только хорошо работал :), но также и "прекрасно" выглядел.
Lesstif. Забыли о великом?
Ой. Не могу не сказать несколько слов об одном деле. В свое работе я так и не нашел ни одного оконного менеджера, который бы базировался на данной библиотеке (за исключением всех наследников mwm, построенных на базе Motif). Существует бесплатный клон этой библиотеки OSF/Motif, которым практически никто не пользуется. Почему?
Я заметил, что сообщество пользователей Linux в общем-то отвергает любое программное обеспечение, которое ограничено более строгими авторскими правами, чем те, что описаны в GPL. Кроме того, в данной библиотеке нет достаточных возможностей для разработки графической среды. Процесс ее развития далек от оптимального. (позднее мы можем более подробно поговорить на эту тему). Но в то время, как CDE по-видимости становится стандартным графическим интерфейсом для мира UNIX, почему это не может произойти с Lesstif CDE?
Netscape
объявила о выпуске исходных текстов своих программ Navigator и Composer для Linux. Но смогут ли пользователи откомпилировать эти исходные тексты с помощью библиотеки Lesstif? Я полагаю, если бы это было так, это была бы приятная новость как для пользователей, так и для разработчиков.
Я не знаю ответов на все эти вопросы, но я считаю, что многие программы могли бы воспользоваться характеристиками Lesstif. При поддержке со стороны пользователей и разработчиков, эта библиотека стала бы прекрасной альтернативой.
|