Черный ящик, или к вопросу о True Unix GUI
АрхивТехнологизмы (архив)О приятном, удобном, дружественном и настоящем интерфейсе.
Пожалуй, наиболее интенсивно развивающееся направление в развитии открытого софта – это интегрированные визуальные (называемые также не совсем точно графическими) среды – KDE и GNOME, – и приложения для них. Роль этих сред, особенно KDE, для роста популярности Unix-подобных систем (особенно Linux'а) переоценить трудно. Именно они помогли и помогают недавнему Windows-мигранту преодолеть барьер отчуждения от мира командных строк и текстовых редакторов.
Однако по мере обвыкания в Unix-мире интегрированные среды превращаются в своего рода раздражающий фактор. Этому способствует и изобилие навязываемых для комплекта приложений, далеко не всегда лучших в своем классе [1], и сложность и непрозрачность ручных настроек, и не всегда оправданная функционально требовательность к ресурсам. А главное, пожалуй, – излишне громоздкий интерфейс, снижающий не столько даже объективное (то есть аппаратно обусловленное) быстродействие, сколько замедление работы вследствие пресловутого человеческого фактора (по простому это можно назвать – «глаза разбегаются»).
Кроме того, если KDE или GNOME воспринимается как органичный компонент user-ориентированных дистрибутивов Linux, то на фоне строгой простоты BSD-систем они выглядят чужеродными включениями [2]. И возникает естественное желание вернуться к истокам, то есть к тому, что было удачно названо True Unix GUI [3].
Правда, понятие это само по себе неоднозначно и требует некоторого освещения. Действительно, какова основная цель использования GUI'ев любого рода? Бытует мнение, что их главное (и чуть не единственное) предназначение – открыть много-много терминальных окон для работы в командной строке. Что, не смотря на некоторый экстремизм, не лишено резона. Ведь в Unix-мире именно командная среда – наиболее эффективный инструмент для решения 90% пользовательских задач.
Однако остается еще 10%, которые требуют какого-никакого графического режима. Ведь пока еще никто не додумался, как ретушировать фотоизображения в окне терминала. И если в последнем можно строить векторные чертежи или 3D-объекты, то для визуализации результатов графика все равно потребуется. Как и соответствующая программа, которую, очевидно, придется запускать из графической среды. Из чего и следует главная функция GUI – обеспечить запуск программ, управление открытыми приложениями и взаимодействие между ними. Все же остальное может рассматриваться как «бантики».
Хотя роль «бантиков» преуменьшать также не следует. Если текстовую консоль при все желании невозможно изуродовать, то с графическими интерфейсами это – плевое дело [4]. И потому эстетика GUI – далеко не последнее, что требуется для эффективного использования его функций. А поскольку эстетика для каждого своя [5], настраиваемость среды приобретает самоценность. Причем настраиваемость, осуществляемая простыми и понятными средствами.
Что же такое True Unix GUI с изложенных позиций? Пожалуй, традиционно в качестве такового рассматривается FVWM – не случайно именно он обычно оказывается оконным менеджером по умолчанию после установки системы X Window. Однако, на мой взгляд, есть не менее законный претендент на этот титул – оконный менеджер Blackbox.
Это – предельно простая по устройству и очень компактная среда (размер исполняемого файла менее 200 Кбайт, в полтора-два раза меньше также не тяжелых IceWM или WindowMaker). Для своей установки и работы она не требует никаких специальных высокоуровневых библиотек типа Qt или Gtk. Тем не менее, возможностей для пользователя она предоставляет вдоволь. Здесь и (рис. 1):
- неограниченное количество виртуальных рабочих столов (Workspaces), создаваемых при необходимости легким движением мыши;
- удобные средства навигации между рабочими столами и окнами открытых приложений; таковыми являются, во-первых, небольшая (и к тому же могущая скрываться автоматически) панель управления (Toolbar), во-вторых – контекстное меню, доступное по щелчку средней клавишей мыши;
- легко доступное (по щелчку правой клавишей мыши) и элементарно настраиваемое контекстное меню для запуска приложений.
- возможность минимизации, максимизации и закрытия окон приложений, сворачивания их до строки заголовка; при этом соответствующие управляющие элементы расположены удобно и привычно.
О возможностях настройки Blackbox следует сказать особо. Элементарное его конфигурирование выполняется непосредственно с рабочего стола. Здесь можно изменить модели фокусировки окон (по щелчку мышью, по перемещению курсора, автовсплытие) и их открытия (каскадное, «умное», упорядоченное в любом направлении), положение панели управления и некоторые другие параметры (рис. 2, 3).
Через главное же контекстное меню настраивается и внешний вид Blackbox – с помощью выбора одного из имеющихся в комплекте стилей (рис. 4). В это понятие входят цветовая гамма и характер заливки (сплошная, градиентная) рабочего стола и прочих интерфейсных элементов, шрифт меню, оконных титулов и прочего. Правда, свойства эти – сквозные, приписать индивидуальный стиль отдельному рабочему столу не получается. Как нельзя и использовать фоновые изображения для них.
Более тонкие настройки выполняются традиционным способом – правкой конфигурационных файлов. Главным из них является ~/.blackboxrc, который при первом же запуске Blackbox автоматически образуется в домашнем каталоге пользователя. Именно в нем прописаны модели фокусировки и открытия окон, положение панели управления, количество и имена рабочих столов.
Кроме того, в ~/.blackboxrc указываются пути к файлу, определяющему состав главного меню и к стилевому файлу, ответственному за внешний вид. По умолчанию это /usr/X11R6/share/Blackbox/menu и /usr/X11R6/share/Blackbox/styles/имя_стиля, соответственно. Редактированию пользователем они, естественно, не поддаются. Однако ничто не мешает скопировать целиком /usr/X11R6/share/Blackbox/ в свой пользовательский каталог
cp -R /usr/X11R6/share/Blackbox/ ~/.Blackbox/
и развлекаться с ним в свое удовольствие. В частности, переопределить состав главного меню можно просто в текстовом редакторе. Для этого достаточно внести в него, после строки [begin] (Blackbox 0.61.x), требуемые приложения в следующем формате:
[exec] (rxvt) {rxvt}
Можно организовать и субменю любой степени вложенности:
[submenu] (Graphics) [exec] (XV) {xv} [exec] (The GIMP) {gimp} [exec] (Image Magick) {display} [end]
Ничуть не сложнее и переопределить стили внешнего вида – взяв за основу любой подходящий или создав свой собственный с нуля по образу и подобию имеющихся. Каковые, к слову сказать, сделаны очень строго и с большим вкусом – я, например, заменил в используемых мной стилях только шрифты – на более подходящие моему зрению (см. рис. 1-3).
Ну и, конечно, нужно не забыть изменить пути к соответствующим файлам в ~/.blackboxrc. После чего вопрос с настройками Blackbox'а можно считать законченным.
Не знаю, удалось ли мне убедить читателя в несравненных достоинствах Blackbox'а. Однако думается, что таковые (компактность, оптимальное соотношение между возможностями настройки и их простотой, удобство использования и исключительная элегантность) делают его достойным звания истинно Unix'ового десктопа. Единственно, чего в нем не хватает по большому счету – это какого-нибудь минитерминала типа minicli в KDE, командной строки в панели IceWM или пункта Run в меню WindowMaker'а. Однако текущая версия Blackbox – 0.6x.x, кто знает, может быть, к версии 1.0 нечто в этом духе в нем и появится
[1] К примеру, если Konqueror из KDE можно считать лучшим файловым менеджером всех времен и народов, то уже Kwrite – далеко не самый совершенный из текстовых редакторов. [обратно к тексту]
[2] Я уж не говорю о том, что интегрированные среды, заимствовавшие многие элементы интерфейса Mac/Windows, рассматриваются часто как идеологически чуждые миру Unix'а. Но это я во внимание не принимаю, ведь основа идеологии постсоветского человека – то, что все эти идеологии ему до барабана. [обратно к тексту]
[3] Если не ошибаюсь, Виктором Вагнером – http://www.linuxrsp.ru/artic/true_unix_gui.html [обратно к тексту]
[4] Тем, кто помнит первые две версии Windows, не нужно объяснять, что такое уродливый графический интерфейс. Да и в мире X'ов подобные примеры сыщутся без труда. [обратно к тексту]
[5] Однако для того, чтобы заметить отсутствие эстетики – не нужно быть художественным критиком, достаточно обратиться к примечанию 3. [обратно к тексту]