Введение в POSIX'ивизм

       

Проблема выбора


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

Итак, наш парашютист ответил: когда я прыгаю, у меня есть два выхода - или парашют раскроется, или не раскроется. Если раскроется - все хорошо, а если не раскроется, остается два выхода: или я останусь жив, или разобьюсь насмерть. Если я останусь жив - все хорошо, если разобьюсь - остается два выхода: или я попаду в рай, или я попаду в ад. Если я попаду в рай - все хорошо, а если я попаду в ад, остается два выхода: или черт меня не съест, или черт меня съест. Если черт меня не съест - все хорошо, а если черт меня съест - ну один-то выход у меня все равно остается!

Это объяснение каждый начинающий POSIX'ивист должен запомнить, как молитву: в любом затруднительном положении у него есть как минимум два варианта решения своей проблемы. И если ему покажется, что решения нет - хоть один вариант по зрелом размышлении найдется обязательно.

Так что проблема выбора графического интерфейса начинается с определения того, что же нужно пользователю - просто оконный менеджер или действительно интегрированная среда (graphic desktop environment), называемая также просто десктопом (desktop). Различия между ними очевидны: первый класс программ предоставляет пользователю возможность управления окнами - их открытия, закрытия, масштабирования, сворачивания, перемещения, переключения между открытыми окнами.

В качестве дополнительных (обычно присутствующих в оконном менеджере, но отнюдь не обязательных) возможностей могут иметь место: виртуальные рабочие столы и/или виртуальные разрешения оных, средства запуска приложений - иконки рабочего стола, треи, контекстные меню, строки минитерминала (то, что в KDE называется mini-cli), средства навигации по десктопам и окнам (типа панелей задач), различные допонительные украшательства - фоны, обои и так далее.
А также - более или менее автоматизированные средства для конфигурирования всего этого. Однако повторяю - все, что выходит за рамки управления окнами, является сугубо опциональным и может отсутствовать в оконном менеджере, а настройка его вполне может осуществляться только прямым редактированием конфигурационного файла.

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

Маленькое отступление. Среди старых (не по возрасту, а по стажу) пользователей POSIX-систем широко распространено мнение, что любые программы, выполненные в направлении Unix Way (или, резче, True Unix Way) должны настраиваться правкой конфигов в текстовом редакторе (а паче того, их созданием "с нуля), все же остальное - от лукавого.

С этим трудно не согласиться. Да, истинный POSIX'ивист всегда должен иметь возможность вмешаться руками в процесс настройки. Однако если речь идет о правке многих десятков конфигов (а в случае с KDE, как станет ясным из дальнейшего, именно так и есть), не проще ли в общем и целом положиться на собственный конфигуратор, а к ручной правке прибегать только в критических ситуациях? Ибо если GUI не может сам себя настроить средствами своего же GUI - то какой он к чертям собачьим Интерфейс Пользователя?



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

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



А вот при выборе интегрированного десктопа перед пользователем два выхода. Первый - это строить такой десктоп самостоятельно, на основе более или менее простого оконного менеджера и тех приложений, которые он использует постоянно. Благо многие из оконных менеджеров позволяют превратить себя в полноценную интегрированную среду (хотя и весьма индивидуальную) если не легким движением руки, то несложным редактированием своих конфигов. Здесь показателен пример fluxbox'а - благодаря механизму закладок (tabs) совместно используемые приложения (например, терминал, текстовый редактор, браузер) легко объединяются в группы "по интересам". Так что если пользователь сделает такой выбор, все хорошо: остается только затратить должное количество времени на редактирование файла X-ресурсов, пользовательского ~/.xinitrc, конфигурационных файлов оконного менеджера и отдельных приложений. Если же это почему либо не устраивает - остается второй выход: использование уже готового десктопа.

Каковых также не так и мало. Из мне известных графических интерфейсов в этом качестве позиционируются CDE, XFce, GNOME и KDE. Однако первая - продукт коммерческий, и, насколько я знаю, не входит в состав ни одного дистрибутива Linux или свободной BSD-системы. А XFce, при всех своих несомненных (и многочисленных) достоинствах, в современном своем виде на роль интегрированной среды претендовать может с трудом: это скорее наиболее развитый (по сравнению с прочими оконными менеджерами) конструктор для собственноручного построения таковой.


Так что на самом деле и тут остается только два выхода: GNOME или KDE.

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

Я вполне разделяю чувства поклонников элегантности преемников NextStep (Afterstep, WindowMaker) или строгой простоты семейства *box'ов (Blackbox, Openbox, Fluxbox - к слову, ничуть не менее элегантных, а последний еще и уникально функционален). Тем паче, что сам долгое время был в их числе (а периодически пользуюсь WindowMaker или Fluxbox и по сей день). Я готов понять любителей IceWM, сочетающего в себе простоту настройки с ее гибкостью. Я осознаю несравненную настраиваемость FVWM и его клонов - хотя и чисто теоретически. Мне, столь же платонически, очень нравятся идеи, заложенные в XFce, являющего близкий к идеальному баланс между минимализмом оконного менеджера и функциональностью полноценного десктопа. Наконец, я некоторых случая мне представляется вполне приемлемым предельный аскетизм FLVM, которому, приложив чуть-чуть усилий, можно еще и придать некоторую элегантность.

Но, разгрызи меня гром, за все свои попытки общения с GNOME я не обнаружил в нем никаких привлекательных (для себя) черт. Начать с того, что это - также не вполне интегрированная среда. Что, конечно, становится особенно понятным при сравнении с KDE, однако... Большая часть того, что интегрировано в GNOME и заслуживает всяческого использования - создавалась до него, вне него, и независимо от него. Тут вспоминаем GIMP - ведь именно для его разработки была придумана библиотека Gtk (что так и расшифровывается - GIMP Toolkit), послужившая базой для множества приложений, изначально с GNOME никак не связанных - от сугубо кросс-платформенного AbiWord до векторного графического редактора Sodipodi, автор которого озаботился столь же легкой интеграцией своего произведения в KDE, как и в GNOME.

Далее. Если KDE с каждой новой версией становится все быстрее, то GNOME - все задумчивее.


А тенденция к разрастанию объема выражена во втором ничуть не меньше, чем в первом. Ну и наконец, просто идеология: разработчики GNOME все больше и больше тяготеют к воспроизведению особенностей Самой Великой ОС всех времен и народов. Известное высказывание, что последние версии GNOME представляют собой большую Windows, чем сама Windows, говорит само за себя.

Единственным основанием к использованию GNOME я вижу нежелание (или невозможность) плодить большое количество библиотек - так как без GIMP при мало-мальски существенной доле работы с графикой обойтись все равно не удастся, а он основан на той же библиотеке Gtk, что и GNOME. Хотя строго говоря, как раз наоборот - Gtk создавалась специально для GIMP, а ко GNOME ее прикрутили за отсутствием выбора. Впрочем, лично мне думается, что и тут XFce (основанная на той же Gtk) была бы более предпочтительна.

Впрочем, ругательных материалов о GNOME, особенно в современных его ипостасях, в Сети можно найти ничуть не меньше, чем хвалительных. Как уже было сказано, мне лично хвалить GNOME не за что, а ругать его не возьмусь за слабым знанием. Ограничившись одним-единственным (но для меня очень весомым) аргументом, также анекдотического происхождения. Помните, как один мужик в церкви жаловался Господу, что дела у него идут из рук вон плохо, не смотря на его хорошее, с точки зрения христианских понятий, поведение, и в отчаянии вопрошал: "Ну почему, о Боже?" - "Ну не нравишься ты мне" - донесся до него Глас Божий. Вот и про GNOME могу сказать - не нравится он мне, вот и все.

Так что пользователь должен сделать свой выбор, опираясь на субъективные впечатления и (квази) объективные оценки из источников. Однако, если выбор его будет не в пользу GNOME, то еще один выход у него найдется. И выход этот - использование KDE.


Содержание раздела