14 лет назад 8 января 2007 в 12:35 315

Но не Microsoft единой жив пользователь.

Р азработчики свободного ПО подготовили то, что не оставит равнодушным любителей спецэффектов, – графическую подсистему Xgl. Говоря научным языком, это X-сервер, использующий OpenGL. А по-простому – полноценный 3D-десктоп.

Графический интерфейс Xgl
Впрочем, лучше один раз увидеть, что сто раз прочитать. Тем более когда речь идет о спецэффектах. Поэтому освобождаем место на жестком диске и готовимся к знакомству.
Прежде всего, нам потребуется подходящий дистрибутив. Такой, чтоб из Cети качать поменьше. Нам прекрасно подойдет SuSE Linux Enterprise Desktop (SLED) 10 (http://www.novell.com/). У пользователя, желающего получить его, есть два пути: купить или скачать. На этом вопросе останавливаться не будем. Также игнорируем все, что связано с инсталляцией и первичной настройкой. Тем более что статью о SuSE 10 мы публиковали, и хотя дистрибутивы различаются между собой, но не настолько, чтобы мы повторялись. Поэтому приступаем непосредственно к изучению графического интерфейса Xgl. В моем компьютере стоит видеокарта NVIDIA, этот частный случай и рассмотрим. Владельцы адаптеров от ATI могут взять статью за основу и действовать по аналогии.
Итак, первая проблема: по умолчанию Xgl не активирован. Более того, это вообще невозможно сделать сразу же после установки системы. Дело в том, что интерфейс требует полноценной поддержки 3D, что не удивительно. А вот проприетарный драйвер видеоадаптера отсутствует по причинам юридического характера.
Чтобы устранить это досадное препятствие, придется немного поработать. Формальная логика говорит, что лучше всего воспользоваться системой обновления. Увы, как показывает практика, ничего нужного нам в списке нет. Причина очевидна: репозитарий, в котором хранится драйвер NVIDIA, программа апдейта в упор «не видит», потому как ничего о нем «не знает».
Есть два варианта действий. Прежде всего, следует учесть, что SLED 10 – это коммерческий дистрибутив, нуждающийся в регистрации. Не прошедшим эту процедуру закрыт доступ к некоторым сервисам. В утешение обделенным компания Novell любезно позволяет бесплатно обновлять систему в течение двух месяцев после получения ключа активации. Поэтому особо ленивые отправляются на страницу download.novell.com/ICSLogin/?%22, где после некоторых формальностей получают заветное лекарство.

Если ваша видеокарта позволяет, то включение трехмерного рабочего стола производится утилитой Desktop Effects Settings 

Первым делом нужно установить фирменный драйвер видеоадаптера, который обеспечит аппаратную поддержку 3D


Но я так поступать не советую. Два месяца пролетят быстро, и ключ потеряет силу. Ради такого пустяка жаль тратить подарок от Novell. Поэтому запустите YaST (Computer > Control Center > YaST), введите пароль супепользователя и активируйте инструмент «Программное обеспечение» > «Источник установки». Нажмите на кнопку «Добавить» и выберите из списка FTP. Заполните поля.
Имя сервера: download.nvidia.com
Каталог: novell
Вход на сервер, естественно, анонимный. Нужный репозитарий подключен безо всякой регистрации, что и требовалось доказать.
Затем следует определить версию ядра, используемого системой (команда uname -r). Если после установки вы не меняли данный элемент, то ответ будет таким: «2.6.16.21-0.8-smp». Запомните или запишите это значение.
Затем запустите утилиту «Управление программным обеспечением». Чтобы не просматривать все доступные пакеты, следует воспользоваться поиском по следующему запросу: «x11-video-nvidia». (Естественно, его нужно вводить без кавычек.) Искомый модуль сразу же появится в главном окне. Поставьте галку и нажмите кнопку «Принять».
Но это еще не все. Введите в строку поиска запрос «nvidia-gfx-kmp-», и вам будет предложено три варианта пакета. Отметьте тот, который соответствует вашему ядру. Если вы еще не успели навести в системе шороху, то вам требуется обычный SMP-модуль.
Перезапустите X-сервер одновременным нажатием Ctrl + Alt + Backspace. А чтобы спецэффекты заработали, следует активировать соответствующий режим с помощью инструмента Desktop Effects в контрольном центре системы. Убедитесь в том, что все сделано правильно. Прежде всего, откройте файл /etc/X11/xorg.conf. Опция Composite должна быть дезактивирована. Не волнуйтесь: Xgl все равно ее поддерживает, независимо от того, что написано в файле xorg.conf.
Для ускорения Xvideo целесообразно использовать FBO, а не pbuffers. Проверьте. Откройте файл /etc/sysconfig/displaymanager и убедитесь в том, что значение параметра DISPLAYMANAGER_XGL_OPTS равно “-accel glx:pbuffer -accel xv:fbo”. Если оно иное, внесите изменения вручную.

Перемещение окон по «рабочему столу» стало похоже на физическое движение материальных объектов

Вращающийся куб – самое эффектное шоу, ожидающее пользователя системы Linux

Однако если в качестве штатной графической среды вы хотите использовать KDE, то придется еще немного поработать. Прежде всего, опция Show windows from all desktops должна быть активной (см. раздел «Рабочий стол» в системе персональной настройки).
Затем следует создать два файла: compiz.sh и kdewm.sh. В каждом из них – по одной строке. В первом – /usr/bin/
compiz gconf & /usr/bin/gnome-window-decorator &м, во втором – export KDEWM=/
usr/local/bin/compiz.sh. В свойствах обоих объектов нужно указать, что они являются исполняемыми файлами. После перезапуска сеанса стереоэффекты должны появиться и при работе с KDE. Вот теперь действительно все.
Xgl дает только потенциальную возможность использования стереоэффектов, а их практическим применением ведает оконный и композитный менеджер Compiz. Именно слияние этих двух функций позволяет программе добиться такого результата. «Оконная» часть приложения управляет представленными на экране объектами, а «композитная» – объединяет графические элементы для получения сложных изображений. Приступаем к настройке этого компонента системы.

Desktop Effects
Воспользуемся графической утилитой Desktop Effects (из контрольного центра системы). Инструментарий, честно говоря, небогатый. Четыре вкладки, одна из них предназначена исключительно для включения-выключения трехмерного рабочего стола. Путем элементарного вычитания получаем три более или менее полезных блока.
Первый из них – Window Effects. В нем задается поведение активного окна при его перетаскивании и сворачивании, а также способ изменения его прозрачности.
Если опции блока Moving Windows неактивны, то окно всегда имеет вид прямоугольника. Это скучно. Сделайте его «резиновым», чтобы при перетаскивании с места на место оно изгибалось и меняло форму, то есть вело себя подобно осязаемому физическому объекту, который берут за верх и переносят. Выглядит довольно красиво, хотя требуется несколько мгновений, чтобы буквы снова стали четкими после остановки. Впрочем, при известной остроте зрения можно приспособиться читать, даже когда объект движется.
Второй блок вкладки – Window Transitions. В нем настраивается поведение окна при различных манипуляциях с ним. Например, можно приказать, чтобы его свертывание / развертывание происходило не мгновенно, а плавно. Правда, мои эксперименты показали, что эти эффекты почти незаметны.
Наконец, опция Translucent Windows позволяет задать клавишу, при нажатии на которую прозрачность активного окна меняется колесиком мыши. Причем фокус по-прежнему остается на объекте. Это, кстати, приводит к действительно забавным эффектам. Допустим, вы делаете текстовый редактор еле видимым, но продолжаете набирать текст. Потом возвращаете его в исходное состояние и смотрите, что получилось.
Вторая вкладка – свойства Desktop Cube. Безусловно, самое необычное качество новой технологии. «Рабочие столы» располагаются не на одной плоскости, а на сторонах трехмерной фигуры. Кстати, не обязательно куба. Переключение между ними осуществляется как клавиатурой, так и мышью.
Сперва следует указать количество «рабочих столов». По умолчанию их четыре, но никто не мешает вам сделать столько, сколько нужно. Однако помните, что это потребует машинных ресурсов, поэтому сопоставляйте желаемое с возможным.

Тонкую настройку трехмерного режима следует проводить в «Редакторе конфигурации для GNOME»

Интерфейс переведен в режим просмотра всех «рабочих столов»


Затем нужно решить, с помощью каких кнопок вращать полученную фигуру. Одна клавиша должна быть на мыши, остальные – на клавиатуре. Впрочем, перейти на другую грань можно и без «борды» – подведите курсор к краю экрана. Но для этого необходимо активировать опцию Edge Flipping. Только не забудьте задать оптимальное значение задержки, иначе одно неосторожное движение – и вы окажетесь на другом «рабочем столе».
Разумеется, управление трехмерным объектом осуществляется только с клавиатуры. Предлагается целый список функций, вызываемых при помощи горячих клавиш. Более половины из них по умолчанию неактивны. Поэтому при необходимости внесите изменения в настройки.
Третья вкладка – Other Features. На ней, кстати, настраивается единственная функция трехмерного интерфейса, имеющая практический смысл, – отображение всех открытых на «рабочем столе» окон.
Допустим, вы запустили сразу много программ и затрудняетесь активировать ту, которая вам нужна в настоящий момент, потому что она затерялась среди множества вкладок на рабочей панели. Вот тут-то и понадобится режим Window Picker. Нажатие на одну клавишу (или движение мыши) – и все открытые окна выстраиваются черепицей. Кликайте на нужное – оно тут же переместится на передний план и станет активным.
Опция Zoom – аналог экранной лупы. Возможна работа в двух режимах. Первый: при одновременном нажатии на заданные клавиши (одна – на клавиатуре, вторая – на мыши) масштаб резко увеличивается. Второй: приближение происходит плавно, но вместо кнопки мыши нужно использовать колесико.
Наконец, эффект поверхности воды. Тоже два варианта. Первый: разводы сопровождают курсор мыши. Второй: экран становится натуральной лужей (или кусочком озера, если вам так больше нравится), на которую падают капли дождя. Функциональность системы, кстати, нисколько не страдает: спокойно занимайтесь своим делом. Если, конечно, не залюбуетесь на красоты.
Ничего больше графический инструмент настройки не дает. Но это не значит, будто исчерпаны все возможности десктопа. Поэтому переходим к последнему этапу, на котором мы будем явно менять значения некоторых параметров Compiz.

Ручная настройка
Большинство параметров Compiz настраиваются при помощи утилиты gconf-editor: More Applications > «Система» > «Редактор конфигурации для GNOME». Нас интересует ветка /apps/compiz. Как нетрудно заметить, правила работы с программой чем-то напоминают редактирование реестра системы Windows.
Секции allscreens и screen0 преимущественно информативные. По крайней мере, именно там указано, какие плагины Compiz имеются в вашем распоряжении. Их должно быть четырнадцать. Разумеется, рассмотреть все опции каждого расширения не представляется возможным, поэтому остановлюсь на тех, которые считаю наиболее интересными.
Первый плагин – cube. Именно благодаря ему пользователь имеет возможность крутить виртуальный куб. Займемся украшением фигуры.
Опция color раскрасит верхнюю и нижнюю грани куба в цвета, приятные вашему глазу. Учтите, что нет никакого вспомогательного средства, никакой всплывающей палитры, по которой можно было бы водить курсором. Только поле, в которое нужно вбить числовой код. Раздолье для дальтоников: посмотрел на циферки и сразу все понял.
Опция images указывает путь к изображениям, размещаемым на верхней и нижней гранях куба. Поддерживаемые форматы – SVG и PNG. Для того чтобы не прописывать полный путь к файлу, лучше сразу поместите его в каталог /usr/share/
compiz (умолчальный).
Если вы считаете, что каждая сторона фигуры заслуживает отдельной картинки, воспользуйтесь опциями images_
bottom и images_top. Первая отвечает за нижнюю грань, вторая – за верхнюю. Правила работы с ними аналогичны вышеизложенным.
Некоторым пользователям не понравится то, что картинка на грани куба вращается вместе с самим объектом. Если вы хотите, чтобы она всегда была у вас перед глазами, создайте ключ rotate_
images. Он включает вращение изображений относительно куба.
In – забавная опция, но не для тех, кто страдает клаустрофобией. Если ее активировать, «рабочие столы» переместятся с внешних граней куба на внутренние. Таким образом, пользователь окажется как бы внутри коробки. С непривычки некоторые чувствуют себя неуютно.
Группа опций skydome заменит черный фон на любое изображение. На мой взгляд, лучше выбрать что-нибудь абстрактное: все равно большая часть картинки закрыта.
Ссылка на графический файл формата PNG прописывается в ключе skydome_image, а skydome_animated активирует эффект подвижного фона. Кстати, последняя опция способна превратить в абстракцию почти любую картинку. В общем, экспериментируйте – и будет вам красота.
Второй полезный плагин – decoration. Он отвечает за поддержку некоторых эффектов оформления окон. Только учтите, что к настройке внешнего вида объектов это расширение не имеет никакого отношения. У него есть потенциал, реализация которого представляет собой отдельную задачу.
Ключи shadow_offset_x и shadow_offset_y задают смещение теней по двум направлениям. Параметр shadow_opacity отвечает за уровень их прозрачности, а shadow_color определяет цвет. Наконец, в shadow_radius содержится величина радиуса тени.
На мой взгляд, главное – чувство меры: недолго сделать «рабочий стол» неинформативным. Наилучший результат достигается путем постепенного изменения параметров. Как только почувствовали, что перебор, вернитесь к предыдущему значению и на том успокойтесь.
Плагин fade отвечает за плавное открытие окон и других элементов интерфейса. Там довольно много ключей, но практический интерес для обыкновенного пользователя, на мой взгляд, представляют только четыре. Кстати, все они заданы по умолчанию.
Первый параметр – fade_speed. Он задает скорость появления / исчезновения окон. Минимальное значение – ноль, максимальное – десять. По умолчанию выставлено среднее, и оно представляется мне оптимальным. По крайней мере, меньше – хуже: проще совсем отключить эту функцию. А вот сделать движение более медленным – это уже эффектнее. Но быстро надоедает.
Наконец, window_type – ключ, указывающий, на какие именно объекты распространяется эффект. По умолчанию разработчики поместили туда что только можно. Если вам не требуется такого богатства, просто удалите лишнее. Лично мне не нравится тормознутость открытия меню. Но решать вам.
Minimize – плагин, достаточно похожий на предыдущий, поэтому я советую настраивать их одновременно. Отвечает расширение за отрисовку окна при сворачивании и развертывании.
Прежде всего, задайте параметр speed – скорость самого эффекта. Также не забудьте о ключе window_types, с назначением которого мы знакомы. А если вы хотите, чтобы эффект распространялся на создаваемые окна, то создайте запись zoom_created_windows и активируйте ее.
Плагин rotate настраивается преимущественно через графический интерфейс. Однако я советую уделить ему внимание. Дело в том, что расширение отвечает за переключение между сторонами куба. То есть позволяет перемещаться по «рабочим столам».
Опций там достаточно много, и назначение каждой совершенно очевидно, поэтому не буду толочь воду в ступе. Предлагаю посмотреть на таблицу, из которой сразу все становится ясно.

Значения ключей опции rotate

Ключ                                     Функция
Acceleration                          Задает ускорение вращения куба. Меняется в диапазоне 1-19.
Edge Flip DnD                      Позволяет переключаться на другую сторону куба при перемещении активного объекта к границе «рабочего стола».
Edge Flip Move                     Позволяет переключаться на другую сторону куба при перемещении окна к границе «рабочего стола».
Edge Flip Pointer                  Позволяет переключаться на другую сторону куба при перемещении курсора мыши к границе «рабочего стола».
flip_time                               Задает паузу перед сменой «рабочего стола». Меняется в диапазоне 0-1000.
initiate                                  Определяет комбинацию клавиш для вращения куба мышью.
invert_x и invert_y                  Инвертируют соответствующую ось при вращении куба.
rotate_left и rotate_right         Задают комбинацию клавиш для вращения куба влево или вправо.
rotate_left_window
и rotate_right_window            Задают комбинацию клавиш для вращения куба вместе с активным окном.
sensitivity                             Задает чувствительность мыши при вращении куба. Меняется в диапазоне 1-100.
snap_top
и snap_bottom                      Позволяют повернуть куб верхней / нижней стороной вперед и зафиксировать его в этом положении.
speed                                   Задает скорость вращения куба. Меняется в диапазоне 1-49.
terminate                              Задает комбинацию клавиш для прерывания операции, описанной в ключе initiate.
timestep                               Задает шаг вращения. Меняется в диапазоне 0,0-50,0.

Неожиданный вывод
На первый взгляд все очевидно: интерфейс Xgl лучше Aero по всем параметрам. Наворотов в нем столько, что пользователям Windows Vista остается только облизываться. Однако предлагаю присмотреться к интерфейсам более пристально.
Линуксоиды всегда гордились тем, что их любимая операционная система начисто лишена всяких рюшечек и оборочек, предназначенных для впечатлительных старшеклассниц. Дескать, есть только безусловно полезное, а остальное – баловство.
Теперь роли поменялись. Aero предлагает потребителю немного эффектов. Но каждый из них теоретически рассчитан на получение дополнительного удобства в работе (конечно, у каждого свой взгляд). А вот какой-либо пользы от Xgl я пока не вижу. Красиво? Да! Оригинально? Еще бы! Эффектно? Вне всякого сомнения! Делает работу эффективнее? Очень сильно сомневаюсь.
Возможно, скоро наступит время, когда новообращенные пользователи Linux будут недоумевать, что хорошего нашли все остальные в системе Vista с ее убогим и скучным интерфейсом. На что им будут отвечать, что Windows предназначена для работы, а не для глупостей. Мы, мол, делом заняты, а не кубики крутим. UP

Сергей Голубев

Никто не прокомментировал материал. Есть мысли?