Делатель окон
Оконный менеджер WindowMaker

Пролог

Как недавний пользователь Windows, до недавнего времени в качестве графической среды я применял KDE, как наиболее привычную внешне. Однако одна из свобод, даруемых Linux - это свобода выбора. И на KDE свет клином не сошелся. Почувствовав себя в силах, решил поэкспериментировать с другими оконными менеджерами. По причинам, о которых скажу ниже, первым в очереди оказался WindowMaker.

Что требуется от графической рабочей среды, вне зависимости от того, в какой операционной системе она функционирует? На мой взгляд, следующее:

Во первых, конечно, стабильность: падениями и зависаниями я сыт по самые окна (с 3.1 по 98).

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

Однако и созерцать ее приходится постоянно, а потому, в третьих, эстетический фактор - хоть и последний по счету, но не по значению.

С точки зрения первых двух пунктов с KDE все нормально: и работает стабильно, и приложений, легко запускаемых, вволю. Но вот эстетика - явно подкачала, вызывая нездоровые ассоциации (одна буковка "K" чего стоит). Хотелось свежих зрительных впечатлений.

И к тому же KDE считается одной из самых ресурсоемких сред. Правда, на достаточно мощной машине (P-III/533 со 128 Мбайт памяти) это не очень угнетает. Однако по своим прошлым Linux-попыткам я помнил, что, скажем, fvwm работал существенно быстрее (на машинах много более слабых). И я занялся изучением вопроса оконных менеджеров. Изучение доступной литературы (см., например, обзор Вячеслава Максимова "Каждому GUI - своего Юзера" в Byte Россия, 1998, # 4, или сайт NeoSoft - http://www.neosoft.ru/) показало, что единственной интегрированной графической средой, сопоставимой с KDE, в XFree86 является GNOME. Каковой и был опробован.

С результатом достаточно удручающим. Сам по себе GNOME показался мне приспособлением для свопирования оперативной памяти: после его запуска индикатор активности диска не гас ни на мгновение, что сопровождалось достаточно удручающими звуками. Родные GNOME-приложения, по сравнению с KDE-аналогами, оставляли впечатление недоработанных (и к тому же имели привычку самопроизвольно слетать). Что касается эстетики, она показалась мне несколько сюрреалистической; а логотип вызвал воспоминания о следах снежного человека йе-ти и его мати. Кроме того, в использованном мной варианте (из дистрибутива RedHat 6.1) обнаружились некоторые проблемы с русскими буквами. И GNOME был истреблен с безжалостностью гоблина.

Как я уже говорил, KDE нравился мне в основном своими приложениями. Которые я активно использую и отказываться от которых не собираюсь. А потому главным критерием выбора среди оставшихся оконных менеджеров для меня оказалась совместимость с KDE-приложениями. Что из доступных мне систем декларировалось только для WindowMaker. Каковой я и взялся устанавливать.

Установка

WindowMaker (версии 0.60) в качестве rpm-пакета присутствовал в используемом мной дистрибутиве Linux Mandrake 6.0/RE. Поэтому сама по себе установка сложностей не вызвала. Однако попытка запустить его сразу (командой wmaker) дала сообщение о фатальной ошибке. Просмотрев состав пакета, я обнаружил в нем файл wmaker.inst. Логично предположив, что это - инсталляционный скрипт, запустил его (в режиме пользователя). Он сообщил мне, что все конфигурационные файлы WindowMaker'а имеются и спросил, не хочу ли я их переписать. Поскольку ответ на это по умолчанию предполагался отрицательным, я переписывать их не стал. И потому при попытке ввести в командной строке wmaker получил сообщение о невозможности открыть экран.

Повторил процедуру инсталляции, добросовестно ответив "Yes" на каждое предложение переписать существующий файл. С тем же результатом. Тогда, просмотрев конфигурационные файлы, обнаружил в своем пользовательском xinitrc строчку

exec wmaker

Попробовал набрать startx - и вместо KDE у меня благополучно (и, сравнительно с KDE, быстро) загрузился WindowMaker. То есть возникла картинка вроде приведенной на рисунке 1.

Рис. 1. WindowMaker - первый запуск

Рис. 1. WindowMaker - первый запуск

Вид был достаточно необычный, требующий внимательного рассмотрения.

Первые впечатления

Для начала оказалось, что щелчок на десктопе правой клавишей мыши вызывает контекстное меню (на рис. 1 - слева), а правой - список запущенных приложений (на рис. 1 - справа). Не исчезающих, в отличие от KDE (и Windows) самопроизвольно. Щелчок левой клавишей никаких действий не оказывал: чтобы закрыть ниспадающие меню, следовало щелкнуть ее на заголовке меню и затем - на появившемся крестике. Либо - щелкнуть соотвтетсвующей (правой или средней) клавишей вне меню на десктопе.

Далее, следовало определить назначение кнопок-иконок. Одинокая кнопка слева вверху (называемая Clip) выполняла двоякую функцию: переключения рабочих столов (мест) и прикрепления (пришвартования, в терминологии оригинала) приложений. Новые рабочие места, однако, создавались (в любом количестве, и удалялись тоже) из меню по правой клавише мыши (Application - Workspace - Создать). Но потом между ними можно было переключаться уголками на кнопке Clip. Переключение рабочих мест (РМ) сопровождалось объемной анимацией их названий в центре экрана. Однако поскольку название места по умолчанию русское (Рабочее место #), а соответствующий шрифт отсутствует, анимировалась абракадабра. Правда, название РМ можно изменить щелчком правой клавиши на кнопке Clip. Открытые приложения по умолчанию не переходят на новое РМ.

Кнопки вверху справа оказались чем-то вроде панели запуска приложений. Осуществляемого двойным щелчком левой клавишей мыши или из выпадающего по одинарному щелчку правой клавишей меню (пункт "Запуск"). При этом верхняя кнопка (именуемая WMDock) никакого приложения не запускает, а служит для управления положением панели на экране: ухватив за нее, панель можно перемещать вверх-вних или с правой на левую сторону экрана (на верхнюю или нижнюю - нельзя).

Вторая сверху кнопка (ASClock) - это просто индикатор времени и даты. Третья (xterm) запускает стандартный X-терминал. А четвертая - (WMPefs) служит для конфигурирования WindowMaker (как - расскажу чуть ниже).

Вот и все базовые средства. Поскольку WindowMaker, в отличие от KDE или GNOME, именно и только диспетчер окон, а не интегрированная графическая среда. И о пополнении панели запуска приложений следует позаботиться самому.

Как - a priory не совсем ясно. Но методом ползучего эмпиризма я нашел три способа. Первый - запустить приложение, выбрав из всплывающего по щелчку правой клавишей мыши меню пункт Run (аналог minicli из KDE, правда, историю команд не поддерживает). А затем, щелкнув правой клавишей мыши на кнопке Clip, выбрать из появившегося меню пункт "Притягивать значки". После этого рядом с кнопкой Clip появляется кнопка (не минимизированная пиктограмма) приложения, которая просто перетаскивается мышью на панель WMDock).

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

Третий способ - правка вручную конфигурационных файлов, о чем скажу позже.

Следует сказать, что KDE-приложения мне не удалось встроить в WMDock ни одним из этих способов. И вообще никак не удалось. Благо, их можно запускать из окна терминала, строки минитерминала, а также с рабочего стола из меню по правой клавише мыши. Кроме того, запуск kfm (KDE-шный файл-менеджер) приводит к появлению на РМ всех иконок, выеденных на рабочий стол KDE. Можно и просто переключиться на любой имеющийся диспетчер окон, в том числе - и KDE, о чем расскажу дальше.

Абсолютно все приложения KDE, которые я использую постоянно (kedit, kwrite, kfm, kcommander, webmaker, kjukebox и другие) работали под WindowMaker как в родной среде. Нормально функционировала также программа kkb, позволяющая использовать нестандартные кириллические раскладки клавиатуры (что необходимо для работы с кириллицей в, скажем, klyx и StarOffice). Хотя индикатор раскладки клавиатуры мне вывести не удалось. Также не было проблем и с теми немногими GNOME-приложениями, которые я использую (табличный процессор Gnumeric, web-редактор Bluefish). Они, в отличие от приложений KDE, встраивались в панель запуска.

Окно запущенного приложения по умолчанию имеет в стоке заголовка два значка - минимизации слева и закрытия справа. По щелчку правой клавишей мыши на строке заголовка окно можно развернуть на полный экран, свернуть (то есть минимизировать), втянуть (то есть сократить до строки заголовка), выделить, перемасштабировать/переместить, закрыть (нормальное завершение программы) и убить (аварийное завершение программы, то есть команда kill). Здесь же доступ к свойствам и параметрам. Свойства - это атрибуты окна, такие, как наличие/отсутствие строки заголовка, кнопок закрытия и минимизации, изменяемость размера и прочее, а также исходное рабочее место (программу можно жестко привязать к любому из существующих РМ). Параметры - это положение на РМ (всегда вверху или внизу), а также присутствие везде (как я уже говорил, по умолчанию каждое приложение существует только на том РМ, на котором оно открыто).

Настройка

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

Перво-наперво, базовые настройки осуществляются через уже упоминавшуюся кнопку WMPefs. Она вызывает окно конфигурирования WindowMaker (рис. 2).

Рис. 2. Окно конфигурирования WindowMaker

Рис. 2. Окно конфигурирования WindowMaker

Здесь можно настроить:

а - стиль Windows б - по верхнему краю

Рис. 3. Настройка выпадающих подменю - в стиле Windows (а) или по верхнему краю (б)

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

В меню приложений (то есть те самые Applications, вызываемые с рабочего стола правой клавишей мыши) можно добавить (и, разумеется, удалить) пункты первого уровня, которые могут содержать подменю любого уровня вложенности. И с любым количеством пунктов, которым приписываются любые команды - достаточно указать ее имя (или полный путь, в случае отсутствия его в переменной окружения). Можно определить также горячие клавиши для вызова программы (рис. 4). Это - самый удобный путь для быстрого запуска приложений KDE, не встраиваемых в панель WMDock.

Кроме того, здесь же (в пункте Exit), кроме выхода из Window Maker и его перезапуска, можно (в подпункте Switch to) прописать вызов любого доступного диспетчера окон, также с горячей клавишей. Делается это абсолютно так же, как и вызов прикладных программ). При этом переключение в другой оконный менеджер происходит с сохранением всех открытых приложений. По крайней мере, в отношение KDE это проверено экспериментально. К сожалению, обратная процедура (то есть, скажем, возврат из KDE в Window Maker) невозможна.

Дополнительные настройки внешнего вида рабочих мест можно выполнить из всплывающего меню Applications (подменю Appearance, а не Workspaces, как можно было бы ожидать). Здесь можно определить

Из комбинации всех этих элементов легко создать собственную тему и сохранить ее в виде файла. Отсутствует только возможность изменения базового шрифта - это делается только вручную.

А Window Maker, как и любой уважающий себя элемент Unix-системы, позволяет точную ручную настройку путем правки конфигурационных файлов. Их - пять, находящихся по адресу /etc/X11/WindowMaker и в каталоге /$HOME/GNUstep/Defaults. Править, естественно, лучше последние, во избежание неприятностей.

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

В файле WindowMaker указываются стили меню и икон, цветовая палитра, пути для икон и фоновых рисунков и многие другие параметры, определяемые через WMPrefs. Через который их и лучше изменять при необходимости. Однако, если вы случайно отключите WMClip и WMDock, единственный способ вернуть их в зад - отыскать в этом файле строки

DisableClip = YES;
DisableDock = YES;

и заменить "YES" на "NO" (или просто удалить - значение по умолчанию "NO". Только сделать это нужно либо в консольном режиме, либо - переключившись в другой оконный менеджер; иначе Window Maker при выходе восстановит значения текущего сеанса.

Файл WMRootMenu описывает содержание меню Applications, вызываемого с рабочего стола и также определяемого через WMPrefs. Содержание WMWindowAttributes ясно из названия. Ну а WMState - описание панели WMDock и рабочих мест. Именно его легко отредактировать для внесения новых приложений в WMDock. Правда, встроить в последний приложения KDE не удается даже таким способом.

Итоги

Каков же вывод из всего рассмотренного? В целом, по моему, сугубо положительный. Конечно, на первый взгляд Window Maker выглядит непривычно для пользователя Windows. Однако этим и пробуждает здоровое любопытство. Тем более что удовлетворение его не связано ни с какими принципиальными сложностями.

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

Что же касается быстродействия - судить трудно. Во всяком случае, на машине с P-III/533, 128 Мбайт RAM и видеокартой Matrox G-400 с 16 Мбайт запуск Window Maker происходит за 5,4 сек. Для KDE это время составляет 14,9 с. В обоих случаях - разрешение 1024*768 без виртуального десктопа, 16-битный цвет, в качестве фона - космоснимок в формате JPEG размером 1024*768 и объемом около 500 Кбайт. В обоих случаях дано среднее из пяти замеров без изменения конфигурации - любая смена параметров увеличивает время загрузки в полтора-два раза.

Таким образом, Window Maker может рассматриваться как полноценная альтернатива KDE, позволяя запускать все рассчитанные на последний приложения при меньшем расходовании ресурсов. И более привлекательной внешности.

Последнее (впрочем, как и все остальное) - не более чем мое личное мнение. Готов выслушать любые конструктивные возражения, дополнения и исправления. А также просто комментарии.

Алексей Федорчук Щербинка, 6 февраля 2000 г.



Реклама в Интернет
©Алексей Федорчук