В началоНастройка X → XGL
Gentoo-doc HOME Пред.: Установка XglВ началоУровень выше: Настройка XСлед.: Автоматическое переключение раскладок

6. XGL

6.1. Введение

Xgl это X сервер, который использует OpenGL для прорисовки обьектов. Вместе с композитным оконным менеджерами Compiz или новой версией Metacity позволяет получить превосходное качество 3D и 2D эффектов рабочего стола. Xgl базируется на расширении Mesa, GLX_EXT_texture_from_pixmap, который представлен только в версиях Mesa 6.5 и старше.

На the XOrg mailing list предлагается написать спецификацию GLX_EXT_texture_from_pixmap расширения совместно с NVIDIA. Бета версия драйверов уже выпущеных NVIDIA, версия 9625, поддерживают это расширение, это означает что Xgl уже не нуждается в использовании Compiz на NVIDIA картах, кроме этого использование данной конфигурации приветствуется. Для информации об этом методе использования Xgl, пожалуйста ознакомтесь на en:HOWTO nVidia GL Desktop Effects

Кроме того, Compiz тесно связан с GNOME-компонентами, Xgl и Compiz работают прекрасно во всех окружениях рабочих столов (KDE/GNOME/Xfce/*box). Если Вы всё же не используете GNOME, будте готовы к установке необходимых библиотек и утилит.

Предупреждение: Данное программное обеспечение ещё не является стабильным, и хотя оно почти всегда работает, всё же используйте его с осторожностью.

6.2. Системные требования

см. the article on video card support under Xgl.

Установка Xgl Примечание: Установка должна быть произвадена на системе с работающей X сессией используя эмулятор терминала типа konsole или gterm, выполнение этого условия необходимо для запуска gconf-editor или gset-compiz для конфигурации Compiz в конце установки.

6.3. Требования к програмному обеспечению

Обновите Ваше локальное дерево портажей.

emerge --sync

Вам необходима модульная версия XOrg (версия 7.x). Для установки модульной версии XOrg ознакомтесь с официальной Gentoo документацией или соответствующей статьёй wiki.

en:HOWTO Modular Xorg

6.4. Официальное руководство

Модульный XOrg (версия 7.x) был опубликован в стабильнй ветке дерева портажей, поэтому Вы можете пропустить эту главу если Ваш Gentoo полностью обновлен.

Compiz использует рабочую оболочку GNOME GConf для конфигурации, и некоторые из опций конфигурации будут приведены здесь. Наиболее легким и популярным способом конфигурации является программа gconf-editor, одна из приложений GNOME. Конечно, и менее известная KDE программа KConfigEditor также может использоваться для конфигурации. Правда для этой программы пока не существует ebuild файла, но Вы можете загрузить исходный код этой программы с extragear.kde.org. Пожалуй самый нежелательный из способов это редактирование gconf конфигурационных файлов вручную, что является скучным и неблагодарным занятием.

Если Вы хотите использовать gconf-editor, то его необходимо установить.

emerge -nav gconf-editor

Также Вам необходимо установить Subversion с включенной поддержкой webdav. Вы должны отключить флаг nowebdav. Добавте добавте при необходимости следующую строку в /etc/portage/package.use: Примечание: Тут используется двойное отрицание в использовании USE флага.

echo "dev-util/subversion -nowebdav" >> /etc/portage/package.use

затем,

emerge -nav subversion

6.5. Загрузка Portage оверлея

Существуют два метода для создания требуемого оверлея; оверлей можно загрузить используя svn утилиту или использовать layman утилиту которая будет управлять оверлеями вместо Вас. Используя layman производить обновление системы проще, так что решать Вам. Вне зависимости, что Вы будете использовать результат будет одним и темже.

Метод по умолчанию: использование Layman утилиты

Если вы ещё не установили Layman, сделайте это сейчас.

emerge -nav layman

Также Вам необходимо добавить следующую строку в Ваш make.conf.

echo "source /usr/portage/local/layman/make.conf" >>/etc/make.conf

Если Вы используете Eix Caching System, удостовертесь что Вы используете самую новую версию; старые версии не поддерживают чтение внешних файлов make.conf.

Измените "nocheck" переменную на значение "yes" в конфигурационном файле утилиты layman. (/etc/layman/layman.cfg)

Затем добавте оверлей с помощью Layman утилиты:

layman -f

layman -a xeffects

если вы используете layman версии 1.0.7 или позже, то оверлеи с неправильными атрибутами будут проигнорированы. Используйте опцию -k для обхода этой ситуации.

layman -k -a xeffects

6.6. Альтернативный метод: Создание оверлея вручную

Если Вы хотите обслуживать Вашь оверлей самостоятельно, то сделайте следующее. Иначе (если используется lanman), вы можете перейти к главе Размаскирование необходимых пакетов. Примечание: Лучше всего не смешивать оверлеи и использовать их отдельно друг от друга.

Перейдите в Вашу директорию оверлеев

cd /usr/local/overlays

Загрузите последнюю версию из CoffeeBuzz's Subversion репозитория в директорию 'xgl-coffee'

svn co http://svn.xgl-coffee.org/xgl-coffee/trunk xgl-coffee

Теперь Вы создали оверлей дерева портежей в /usr/local/overlays/xgl-coffee.

Добавьте следующий путь в переменную PORTDIR_OVERLAY в /etc/make.conf.

Файл: /etc/make.conf

PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/overlays/xgl-coffee"

6.7. Размаскирование необходимых пакетов

Много пакетов маркированы как нестабильные и должны быть размаскированы чтобы их можно было установить из дерева портажей Добавте следующие строки к файлу /etc/portage/package.keywords или /etc/portage/package.unmask

Файл: /etc/portage/package.keywords

# Зависимости

dev-util/git

media-libs/glitz

media-libs/mesa

x11-apps/mesa-progs

sys-apps/man

x11-libs/cairo

dev-python/pycairo

x11-libs/qt

x11-misc/util-macros

x11-proto/glproto

x11-apps/xvinfo

x11-apps/xlsclients

x11-libs/libwnck

x11-misc/xwinwrap

virtual/xft

gnome-base/gconf

gnome-base/libgnomeui

x11-libs/gtk+

dev-libs/glib

x11-libs/libdrm

#XGL пакет

x11-base/xgl

# старые версии Compiz

x11-wm/compiz-quinnstorm

x11-misc/compiz-quinnstorm-plugins

x11-wm/compiz

x11-wm/cgwd

x11-misc/csm

x11-misc/cgwd-themes

x11-misc/cgwd-themes-extra

x11-misc/gset-compiz

x11-misc/compiz-manager

# новая ветка Beryl для Compiz

x11-wm/beryl-core

x11-plugins/beryl-plugins

x11-misc/beryl-manager

x11-misc/beryl-settings

x11-wm/emerald

x11-misc/emerald-themes

Удостоверьтесь что флаги glitz, pdf и png включены в переменную USE для Cairo. Возможно Вам понадобится добавить следующую строку к файлу package.use:

Файл: /etc/portage/package.use

x11-libs/cairo glitz pdf png

6.8. Установка Xgl

Новые бета драйверы с закрытым исходным кодом от nVidia (версия 1.0.9625) уже включают в себя поддержку XGL. Поэтому не нужно более никаких установок. Если вы не хотите использовать новейшие бета драйвера, то следуйте к главе "не-nVidia пользователи". Данный способ работает на nVidia картах при этом установка и использование новых nVidia драйверов намного проще. Если Вы хотите использовать новейшие бета драйвера тогда Вы должны перейти к главе "nVidia Пользователи".

Не-nVidia пользователи

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

# emerge --oneshot --ask --verbose cairo

Переинсталируй pango и gtk+ с использованием новоустановленного Cairo пакета.

# emerge --oneshot --ask --verbose pango gtk+

Далее у Вас есть выбор между beryl и compiz ветками:

compiz это оригинальное приложение написанное Давидом Равеманом (David Reveman) из Новел (Novell). Это приложение уже включено в дерево портажей.

beryl это снимок Quinnstorm's Ubuntu кодовой базы с некоторыми экспериментальными плагинами. Формально эта ветка известна под названием compiz-quinnstorm. Использует emerald как window decorator. это отдельный пакет не включенный в дерево портежей.

Проверьте что флаги dbus и svg включены в переменную USE для Compiz. Возможно Вам потребуется добавить следующую строку в package.use: Файл: /etc/portage/package.use

x11-wm/compiz dbus svg

Проверьте что пакеты glproto и libdrm установлены. Установите их если это требуется:

# emerge --ask --verbose --oneshot --noreplace glproto libdrm

В конечном итоге Вы должны будете установить Xgl и Mesa, которые автоматичеси скомпилируют и установят Compiz а также все его плагины и Xgl сервер.

# emerge --ask --verbose --oneshot --noreplace mesa

Опция 1: Для использования vanilla compiz:

# emerge --ask --verbose xgl compiz

Опция 2: Для использования beryl мета пакета:

# emerge --ask --verbose xgl beryl-core

Примечание: Установка beryl также устанавливает декоратор окон emerald и его темы. Таким образом emerald не надо устанавливать отдельно.

Примечание: NVIDIA пользователи пожалуйста переустановите nvidia-drivers после установки Xgl

Примечание: Если неудается скомпилировать xgl, проверте заплатку на

http://forums.xgl-coffee.org/viewtopic.php?t=178

Примечание: Если неудается скомпилировать beryl из за dbus, попробуйте обновить пакет dbus

Примечание: Если неудается скомпилировать xgl и компиляция обрывается на fbmmx.c или fbedge.c, попробуйте удалить флаг "-fforce-addr" из переменной CFLAGS. Также ознакомтесь с документацией на форуме

Если всё прошло удачно, то Cairo должен присутствовать в системе как зависимость. Примечание: Для следующей проверки необходим установленый пакет gentoolkit.

Проверите с помощью следующей команды

# equery d -o -p cairo

Предупреждение: Если команда не возвращает никаких пакетов, то значит чтото прошло не правильно!

После произведенных действий Вы должны получить функционирующую установку Xgl. Пожалуйста ознакомтесь с Глава работающий Xgl.

nVidia пользователи

nVidia драйвер версии 9625 BETA и старше содержат XGL и AIGLX-подобные расширения и могут быть использованы совмесно с другими композитными менеджерами окон. см. en:HOWTO nVidia GL Desktop Effects для более детальной информации.

6.9. Обновление Xgl

Из-за быстрой разработки Xgl и Compiz, оверлей обновляется как минимум один раз в неделю. Используйте один из приведённых методов для обновления оверлея.

Обновление с помощью Layman утилиты

Обновление оверлея с помощью Layman утилиты очень просто:

layman -s xeffects

Обновление вручную

Для обновления оверлея вручную, перейдите в директорию оверлея и введите ./svnup.sh. этот скрипт также выведет список изменений.

cd /usr/local/overlays/xgl-coffee/

./svnup.sh

6.10. Запуск Xgl

Конфигурация Compiz

Для начала надо сконфигурировать Compiz и его плагинов. Если никакие плагины не указаны, тогда окна останутся без декораций! (не будет кнопок minimize/maximize/close, невозможно будет изменять размеры окна, ничего вообще толком не будет.)

Существуют два пути указания плагинов. Вы можете указать плагины в командной строке или использовать оконный редактор конфигурации например с помощью программ gconf-editor или gset-compiz. Но вы не можете использовать оба способа одновременно! Если gconf указан в командной строке, тогда Compiz проигнорирует все другие плагины указанные в командной сторке и возьмёт список плагинов из вашей конфигурации gconf.

Таким образом если Вы впервые запускаете Xgl и Вы хотите конфигурировать в оконном редакторе, наступило время сделать это, до того как Вы выйдете из Вашей X сессии.

Способ "По умолчанию": Использование gconf-editor

# gconf-editor

Перейдите в apps --> compiz --> general --> allscreens --> options и отредактируйте узел active_plugins находящийся справа. Примечание: Если в gconf-editor нет вкладок Сompiz, тогда это можно исправить таким образом:

 # export GCONF_CONFIG_SOURCE="xml:merged:/etc/gconf/gconf.xml.defaults"

 # gconftool-2 --makefile-install-rule /etc/gconf/schemas/compiz.schemas

Способ "По умлочанию" для compiz-quinnstorm: Использование csm

# csm

Плагины могут быть активированы кликая в checkbox после имени. Индивидуальная конфигурация плагинов осуществляется после щелчка мышью на имени плагина. Примечание: Compiz-quinnstorm поставляется вместе с Compiz Manager (compiz-manager). Это оконное приложение находящееся в системной панели и включает в себя Compiz Settings Manager (csm) и Compiz Theme Manager (gcompizthemer). Запустив на выполнение эти две утилиты (управляйте compiz и темами), перестартуйте оконный менеджер или декоратор из системной панели и установите запасной оконный менеджер который будет использоваться в случае неудачного старта.

# compiz-manager

 or (if any dbus problem) :

# dbus-launch compiz-manager

Альтернативный способ: Испльзование gconftool-2

# gconftool-2 -s /apps/compiz/general/allscreens/options/active_plugins "[gconf,decoration,wobbly,fade,minimize,cube,switcher,move,resize,place,rotate,zoom,scale]" -t list --list-type=string

Укажите активные плагины внутри квадратных скобок.

Альтернативный способ: Использование gset-compiz Предупреждение:

gset-compiz больше не пытается использовать все возможности Compiz. Используйте лучше gconf-editor или более новые программы для возможностей которыми не располагает gset-compiz.

# gset-compiz

Плагин можно активировать поставив галочку сразу возле его имени. Конфигурация индивидуальных настроек плагина доступна после нажатия кнопки Plugins находящейся сразу под меню.

Как минимум, потребуются пакеты gconf и decoration. Также, если Вы хотите включить все доступные эффекты, надо также добавить wobbly, fade, switcher, move, resize, place, minimize, cube, rotate, zoom, и scale. Из имени пакета Вы сами можете догадаться, что выполняет каждый из плагинов, так что не торопитесь включать их все. Это как предпочтения "сладостей для глаз", установите плагины move и resize — у Вас появится возможность работать с их функциями.

Using Quinnstorm's compiz & cgwd

Quinnstorm's new compiz doesn't use gconf plugin anymore (so settings). To use it, replace any instance of compiz --replace gconf found in this document with dbus-launch compiz --replace dbus csm. And set it by csm or dbus-launch csm.

Quinnstorm's new window decorator must be called instead of gnome-window-decorator in order to function. If you chose to emerge cgwd, just replace any instance of gnome-window-decorator found in this document with dbus-launch cgwd.

Оконный режим

Запустив Xgl таким способом мы создадим новое окно с включенным Xgl сервером. Это отличный способ протестировать правильность установки прежде чем запускать XGL в полноэкранном режиме.

Чтобы попробовать его работу в оконном режиме при уже запущенном X сервере: Code: Для ati пользователей

Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer -fp /usr/share/fonts/misc,/usr/share/fonts/other_fonts

Code: Для nVidia пользователей

Xgl :1 -ac -accel glx:pbuffer -accel xv -fp /usr/share/fonts/misc,/usr/share/fonts/other_fonts

Примечание: Обсуждение использования pbuffer или fbo как аргументов accel, можно почитать здесь http://forums.gentoo.org/viewtopic-t-455153-highlight-.html

Примечание: Xgl не будет считывать значение FontPath из xorg.conf, по-этому, лучше в конце строки после опции -fp прописать пути к шрифтам разделяя их запятой. Используйте этот скрипт для получения путей к шрифтам прописанным в файле xorg.conf:

 grep -i fontpath /etc/X11/xorg.conf | egrep -v "[:space:]*#" | sed "s/.\+\"\(.\+\)\"/\1,/g" | xargs echo | sed "s/\ //g" | sed "s/,\$//"

Протестируйте Вашу конфигурацию:

Запустите композитный оконный менеджер (compiz or compiz-quinnstorm), запустите декоратор окон (gnome-window-decorator or cgwd) и запустите приложение (xterm). Code: Для большинства: Если Вы используете compiz совмесно с gnome-window-decorator

Учтите что название gnome-window-decorator изменилось на gtk-window-decorator 22 Сентября 2006 года.

LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ \

DISPLAY=:1 compiz gconf

DISPLAY=:1 gnome-window-decorator

DISPLAY=:1 xterm

Code: Альтернатива 1: если Вы используете compiz-quinnstorm совмесно с gnome-window-decorator

LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ \

DISPLAY=:1 dbus-launch compiz dbus csm

DISPLAY=:1 gnome-window-decorator

DISPLAY=:1 xterm

Code: Альтернатива 2: Если вы используете compiz-quinnstorm с cgwd

LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ \

DISPLAY=:1 dbus-launch compiz dbus csm

DISPLAY=:1 dbus-launch cgwd

DISPLAY=:1 xterm

Если всё прошло успешно, мы можем начать конфигурировать Вашу систему для запуска Xgl с Вашим графическим менеджером аутентификации. Следуйте инструкциям которые помогут Вам настр�ить менеджер аутентификации. Это последний шаг необходим для удобного использования Xgl.

startx (Для пользователей startx)

Если вы обычно загружаетесь в консоль и Xorg сервер запускается через startx, а .xinitrc загружает ваш менеджер окон на DISPLAY:0, то вам нужно: написать скрипт startxgl для запуска сервера Xgl, а так же файл .xglinitrc для загрузки менеджера окон на DISPLAY:1. Эти действия не изменят вашей текущей конфигурации и вы сможете в любой момент вернутся в нормальный Xorg сервер.

1) Скопируйте startx (cp /usr/bin/startx /usr/local/bin/startxgl) и отредактируйте 2 строки: Файл: /usr/local/bin/startxgl

 ## userclientrc=$HOME/.xinitrc

 userclientrc=$HOME/.xglinitrc

 ## xinit $clientargs -- $serverargs -deferglyphs 16 &

 # ATI

 xinit $clientargs -- /usr/bin/Xgl :1 $serverargs -ac -accel xv -accel glx:pbuffer -deferglyphs 16 &

 # NVIDIA

 xinit $clientargs -- /usr/bin/Xgl :1 $serverargs -ac -accel xv -accel glx:fbo -deferglyphs 16 &

2) создайте файл ~/.xglinitrc (vi ~/.xglinitrc) Файл: ~/.xglinitrc

 sleep 2 # give Xgl some extra time to start

 DISPLAY=:1 KDEWM=compiz-decorator startkde

Примечание: Пользователи Gnome должны вписать gnome-session вместо startkde и WINDOW_MANAGER вместо KDEWM. Пользователи других DM вписывают соответствующие им команды запуска. Для уточнения проверте ваш ~/.xinitrc.

3) создайте файл compiz-decorator (vi /usr/local/bin/compiz-decorator) Файл: /usr/local/bin/compiz-decorator

## Start compiz or compiz-quinnstorm

## compiz --replace gconf &

## dbus-launch compiz --replace dbus csm &

compiz --replace gconf &

sleep 2

## Start gnome-window-decorator or cgwd

## gnome-window-decorator &

## dbus-launch cgwd &

gnome-window-decorator &

Примечание: Команды для запуска и использования compiz-quinnstorm и cgwd в скрипте закоментированны. Если вы хотите пользоваться ими то незабудте закоментировать текущие

Смените права доступа на /usr/local/bin/compiz-decorator что бы сделать его исполняемым:

# chmod +x /usr/local/bin/compiz-decorator

4) Для запуска вашего оконного менеджера в XOrg используйте startx, для запуска в Xgl используйте startxgl.

Скрипты тестировались на связке ATI и KDE. --Ash 17:48, 11 Сентября 2006 (UTC)

XDM (Базовая графическая система аутентификации)

Измените ссылку на X сервер: Файл: /etc/X11/xdm/Xservers

:0 local /usr/bin/Xgl vt7

KDM (для пользователей KDM)

Замените строку с ServerCmd в kdmrc на одну из следующих:

Файл: /usr/kde/<your version>/share/config/kdm/kdmrc

# NVidia Command

ServerCmd=/usr/bin/Xgl -br -ac -accel glx:pbuffer -accel xv

# ATI Command

ServerCmd=/usr/bin/Xgl -br -ac -accel glx:pbuffer -accel xv:pbuffer

Вы также должны поменять занчение ServerTimeout так как Xgl запускается немного дольше, чем нормальный Х сервер:

Файл: /usr/kde/<your version>/share/config/kdm/kdmrc

ServerTimeout=30

Если kdm не смог загрузится, измените значение ServerTimeout на 600. Учтите, что в этом случае время загрузки Xgl значительно увеличится.

Не используйте скрипт /usr/kde/3.5/share/config/kdm/Xstartup для запуска Compiz. Для его выполнения нужны права пользователя root.

Скопируйте скрипт в другое место, например сюда: Файл: /usr/local/bin/compiz-decorator

## Start compiz or compiz-quinnstorm

## compiz --replace gconf &

## dbus-launch compiz --replace dbus csm &

compiz --replace gconf &

sleep 2

## Start gnome-window-decorator or cgwd

## gnome-window-decorator &

## dbus-launch cgwd --replace &

gnome-window-decorator --replace &

Примечание: Команды для запуска и использования compiz-quinnstorm и cgwd в скрипте закоментированны. Если вы хотите пользоваться ими то незабудте закоментировать текущие.

Сделайте вновь созданный скрипт /usr/local/bin/compiz-decorator исполняемым:

# chmod +x /usr/local/bin/compiz-decorator

Далее измените:

Файл: /etc/env.d/99kde-env

KDEWM=compiz-decorator

И наконец, выполните команду:

# env-update

Теперь после перезагрузки или выполнения комманды /etc/init.d/xdm start вы запустите полнофункциональный Xgl со всеми эффектами без пользовательского вмешательства и аутентификацией с помощью KDM.

GDM (для пользователей GNOME)

Вы должны сделать 3 вещи, чтобы заставить Xgl работать с GDM и использовать Compiz для автоматической загрузке при авторизации пользователя.

Сконфигурируйте GDM для Xgl с отложенным запуском, чтобы при запуске нельзя было сказать, что она не работает

Сконфигурируйте GDM для использования с Xgl-сервером

Установите сессию GNOME для автоматического запуска из Compiz Примечание: Конфигурирование gdm для отложенного запуска Xgl доступно с gdm-2.14.1 и поздних версий. Если Вы используете раннюю версию, начинте с шага 2, но, возможно, Вам не удастся заставить gdm работать с Xgl. Также использование gdmsetup для конфигурирования gdm на испольльзоваине Xgl-сервера (Раздел 2a) может быть недоступно для версий gdm ранее 2.14.0. Если недоступны необходимые Вам функции, самостоятельно отредактируйте конфигурационный файл GDM (Раздел 2b).

Конфигурирование Gdm на отложенный запуск для запуска Xgl

Gdm сконфигурирована по умолчанию на завершение (kill) X-сервера, если загрузка заняла более 10 секунд. К сожадению, новые версии Xgl могут загружаться дольше. Пользователи Xgl в Gentoo, могут сконфигурировать Gdm (пример по версии 2.14.1) на ожидание более 10 секунд.

# emerge --ask --verbose >=gdm-2.14.1

Добавьте/измените следующие команды секции [daemon] файла /etc/X11/gdm/custom.conf. Строка: Файл: /etc/X11/gdm/custom.conf

GdmXserverTimeout=30

Если /etc/X11/gdm/custom.conf не существует, попробуйте /etc/X11/gdm/gdm.conf-custom или /etc/X11/gdm/gdm.conf.

Конфигурирование Gdm для использования сервера Xgl

Использование gdmsetup

Для начала сделайте резервную копию файла gdm.conf

cp /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm.conf.bak

Запустите gdmsetup

Выберите раздел Security

Щёлкните кнопку Configure X Server, расположенную снизу-справа раздела

Для начала мы удалим значения для стандартного X-сервера

Нажмите по стандартному серверу, ктороы находится в списке Servers to Start

Нажмите Remove Button

Сейчас мы создадим значения для сервера Xgl

Нажмите кнопку Add/Modify

Задайте использование нового сервера VT 1. Используйте Standard для Server опцию — она отображает, какой профиль использовать для сервера, в идеале мы должны создать новый "Xgl"-профиль, а в настоящее время при помощи gdmsetup это сделать невозможно, так что отредактируем настройки для профиля Standard. Не воодите здесь каких-либо опций. Нажмите Ok по завершении.

В Server Settings измените Server Name на "Xgl"

Введите команду Xgl в поле Command, например, для пользователей ATI:

/usr/bin/Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer

NVIDIA users should use:

/usr/bin/Xgl -br -ac -accel glx:pbuffer -accel xv

Измените в выпадающем списке Launch значение на Greeter

Установите Logins are handled by this computer

Установите Flexible (on demand)

Save и Close

Перезапустите gdm

Ручная настройка

Для начала сделайте резервную копию файла gdm.conf

cp /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm.conf.bak

Now open /etc/X11/gdm/gdm.conf in a text editor and search for the [servers] section. This should be near the end of the file.

Comment out 0=Standard and add a new line that reads 0=inactive and one that reads 1=Xgl.

Add the server information for the Xgl server, remember to substitute the correct Xgl server command! The one below is for ATI cards.

The modified /etc/X11/gdm/gdm.conf:

[servers]

#0=Standard

1=Xgl

# Definition of the xgl X server.

[server-Xgl]

name=Xgl

command=/usr/bin/Xgl :1 -ac -accel xv:pbuffer -accel glx:pbuffer

flexible=true

chooser=false

handled=true

priority=0

Restart gdm Примечание: For i810 users (not necessarly i915; this would kill my xorg sessions, I had to use the ATI command), the command for the above should be:

[server-xgl]

name=Xgl server

command=/usr/bin/Xgl -accel xv -accel glx:pbuffer -accel xv:pbuffer -ac -audit 0 -br -dpms -dpi 72

flexible=true

Via xsession

You can add another session for Xgl on display :1 (leaving the standard server on :0). It is a 2 step setup and imho the best option, first create a file to start Xgl and second create a new xsession file.

Create a new file startxgl.sh in /usr/bin which starts Xgl.

vim /usr/bin/startxgl.sh

And add one of the four options below.

NVIDIA (using GNOME)

#!/bin/bash

Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:fbo &

sleep 2 && DISPLAY=:1 gnome-session

NVIDIA (using KDE)

#!/bin/bash

Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:fbo &

sleep 2 && DISPLAY=:1 startkde

ATI and Intel (using GNOME)

#!/bin/bash

Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:pbuffer &

sleep 2 && DISPLAY=:1 gnome-session

ATI and Intel (using KDE)

#!/bin/bash

Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:pbuffer &

sleep 2 && DISPLAY=:1 startkde

Create a new xsession file: Файл: /usr/share/xsessions/xgl.desktop

[Desktop Entry]

 Encoding=UTF-8

 Name=Xgl

 Comment=Start an Xgl Session

 Exec=/usr/bin/startxgl.sh

 Icon=

 Type=Application

Now you will be able to select a new session via gdm's option menu. Options -> Select Session

The benefit is that it will not replace your normal XOrg server. So when you "break" your Xgl you can return to the normal XOrg server.

Adding Compiz to your GNOME session (replacing Metacity)

Here is a little startscript, which I've placed in /usr/bin/. Useful if you do not always run Xgl. Change or remove the setxkbmap line according to your keyboard layout. Файл: /usr/bin/compizrc

#!/bin/bash

#

# Start compiz within gnome-session

#

if [ `ps -A -o comm | grep -c '^Xgl$'` == "1" ]; then

        DISPLAY=:1 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &

        DISPLAY=:1 gnome-window-decorator &

#       DISPLAY=:1 setxkbmap -model pc105 -layout it -variant basic # Change according to your needs, and uncomment if needed

#       Or like that, if you need to switch between layouts.

#       setxkbmap -model pc105 -layout "us,ru(winkeys)" -variant winkeys -option "grp:alt_shift_toggle,grp_led:scroll"

else echo "${0}: Error: Compiz and g-w-d not launched. Xgl not running?"

fi

Файл: /usr/bin/compizrc.modified

#!/bin/bash

#

# Start compiz within gnome-session

#

if [ `ps -A -o comm | grep -c '^Xgl$'` == "1" ]; then

# For old versions

#       DISPLAY=:0 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &

# For Compiz-Quinnstorm with csm

        DISPLAY=:0 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace dbus csm &

        DISPLAY=:0 dbus-launch cgwd --replace &

#       DISPLAY=:0 setxkbmap -model br-abnt2 -layout br -variant br

else echo "${0}: Error: Compiz and cgwd not launched. Xgl not running?"

fi

Code: Make the script executable

chmod 755 /usr/bin/compizrc

After logging into GNOME, start System->Settings->Sessions. Here you go to the 3rd tab Startup Programs and press the Add button. Enter the path to your Compiz startscript (e.g., /usr/bin/compizrc).

After logging out and back in Compiz will start, but you'll see no decorations and effects. Thats because the Compiz gconf tree for the current user has just been created — without any plugins!

So start your configuration editor and go to apps/compiz/general/allscreens/options and edit the active_plugins key. This should contain the following items in this order: gconf decoration wobbly fade minimize cube rotate zoom scale move resize place menu switcher

If the key is not there, make it with a type of List

After restarting your Xgl Server should be accessible with GDM & gnome-session.

Xsession (Modifying startx)Примечание: This is for NVIDIA users.

Предупреждение: This currently will not work for ATI users because of the display issues, requiring to be run on DISPLAY=:1.

Примечание: I use simmilar configuration (see startx section) on ATI. Consider /usr/bin/Xgl :1 instead of /usr/bin/Xgl and starting Gnome at :1 as well, if DISPLAY:0 is problematic. --Ash 17:57, 11 September 2006 (UTC)

Copy /usr/bin/startx to /usr/bin/startxgl and change the following line towards the end of the file: Файл: /usr/bin/startxgl

xinit $clientargs -- $serverargs -deferglyphs 16 &

to

xinit $clientargs -- /usr/bin/Xgl $serverargs -ac -accel xv -accel glx:pbuffer -deferglyphs 16 &

This does not start Compiz so create a small start script and add it to the gnome-session manager (Once GNOME is up. The first time, you will have to open a terminal and call the script manually.) Файл: /usr/bin/compizrc

#!/bin/bash

#

# Start compiz within gnome-session

#

if [ `ps -A | grep Xgl | wc -l` == "1" ]; then

        LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &

        gnome-window-decorator &

#       setxkbmap -model pc105 -layout it -variant basic # Change according to your needs, and uncomment if needed

#       Or like that, if you need to switch between layouts.

#       setxkbmap -model pc105 -layout "us,ru(winkeys)" -variant winkeys -option "grp:alt_shift_toggle,grp_led:scroll"

fi

Примечание: This should start the desktop environment configured via XSESSION in /etc/rc.conf

Xfce4

With xfce4-session

xfce4-session is installed by default as part of the xfce4 meta-package. If you installed xfce4 this way, the following will work.

First, it is necessary to create a script that will start Compiz and gnome-window-decorator with the correct libraries and switches. Файл: /usr/bin/compizrc

LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace gconf &

gnome-window-decorator

Code: Make the script executable

chmod 755 /usr/bin/compizrc

Now, edit the xfce4-session settings to point to this rather than xfwm4. Файл: /etc/xdg/xfce4-session/xfce4-session.rc

[Failsafe Session]

Count=4

Client0_Command=compizrc

Client0_PerScreen=False

Client1_Command=xfce4-panel

Client1_PerScreen=True

Client2_Command=xftaskbar4

Client2_PerScreen=True

Client3_Command=xfdesktop

Client3_PerScreen=False

Примечание: Instead of editing system-wide file you may also add above section to ~/.config/xfce4-session/xfce4-session.rc file. Note also that you may need to delete content of the ~/.cache/sessions directory, if you still have xfwm4 rather than Compiz running.

Finally, create a script to start Xgl with Xfce4. Файл: /usr/bin/startxgl for NVIDIA

#!/bin/bash

Xgl -ac -accel xv:fbo -accel glx:pbuffer &

xfce4-session

Файл: /usr/bin/startxgl for ATi

#!/bin/bash

Xgl -ac -accel xv:pbuffer -accel glx:pbuffer &

xfce4-session

Code: Make the script executable

chmod 755 /usr/bin/startxgl

You will notice that xfce4-panel is now transparent, just like if you were using xfwm4's compositor. The pager will be distorted, but otherwise everything works beautifuly. Windows even minimize to the correct spot on the taskbar.

Without xfce4-session

If you compiled a minimal Xfce (without xfce4-session, xffm4, etc.), then you can use this altered startxgl script from the gnome script above:

#!/bin/bash

echo ">Starting XGL at Display: $1"

echo "========= XGL ============"

Xgl :$1 -ac -accel xv -accel glx:pbuffer &

sleep 3

echo "======= COMPIZ ==========="

DISPLAY=:$1 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace switcher decoration wobbly fade minimize cube rotate zoom scale move resize place &

sleep 3

echo "======= XFCE ============"

DISPLAY=:$1 xfce-mcs-manager

DISPLAY=:$1 gnome-window-decorator &

DISPLAY=:$1 xftaskbar4 &

DISPLAY=:$1 xfdesktop &

DISPLAY=:$1 exec xfce4-panel

Again, xfce4-panel will be transparent as if you had the X.org composite extension turned on (but you don't) or if you use xfce4-svn, and the pager will be distorted. Everything else should be fine.

With startxfce4

To do it the old fashioned, or 'normal' way via startx/startxfce4 I did the following. First, startxfce4 shouldn't be called I don't think. just use an .xinitrc in your homedir and startx. Файл: ~/.xinitrc

#!/bin/sh

/usr/bin/startxfce4

Now as root, we create compizrc, like above. Note however that for me, it worked best/only without the DISPLAY variable. Файл: /usr/bin/compizrc

#!/bin/bash

LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf > ~/compiz.log 2>&1 &

sleep 1;

gnome-window-decorator > ~/gnome-window.log 2>&1 &

Obviously the output redirections are optional (but handy for debugging). The sleep 1; might also be removed to speed things up. If things go TO fast however, you might get in trouble though. Don't forget to chmod 755 /usr/bin/compizrc

Lastly we need to use this new compizrc instead of the default xfce4 window manager.

Again, as root edit /etc/xdg/xfce4-session/xfce4-session.rc and replace xfwm4 with compizrc Файл: /etc/xdg/xfce4-session/xfce4-session.rc (old)

Client0_Command=xfwm4

Файл: /etc/xdg/xfce4-session/xfce4-session.rc (new)

Client0_Command=compizrc

Now only one thing is left, start Xgl. As above you can copy startx in /usr/bin/startx to /usr/bin/startxgl and make the following change: Файл: /usr/bin/startxgl (old)

xinit $clientargs -- $serverargs -deferglyphs 16 &

Файл: /usr/bin/startxgl (new)

xinit $clientargs -- /usr/bin/Xgl -ac -accel xv -accel glx:pbuffer $serverargs -deferglyphs 16 &

Примечание: Todo: Make Client0_Command depend on wether startx or startxgl is beeing used as 3D apps don't appear to work as they should and switching back to the 'old way' is required.

Edit: it seams that when using the startxfce4 script, the /etc/xdg/xfce4-session/xfce4-session.rc file (and the .xinitrc) get ignored thus starting a non Xgl desktop. Making 'switchin' not needed. startxfce4 for oldschool, startxgl for new style

Entrance

Emerge latest entrance:

echo "=x11-misc/entrance-0.9.0.007 ~x86" >> /etc/portage/package.keywords

emerge -av entrance

Use the ecore_config utility to change the xserver string (choose according to your video card):

# ATI

ecore_config -k "/entranced/xserver" -s "/usr/bin/Xgl -ac -accel xv:pbuffer -accel glx:pbuffer -nolisten tcp"  -c /etc/entrance_config.cfg

# NVIDIA

ecore_config -k "/entranced/xserver" -s "/usr/bin/Xgl -ac -accel xv:fbo -accel glx:pbuffer -nolisten tcp"  -c /etc/entrance_config.cfg

Restart entrance.

Qingy

It is quite easy to change Qingy to start Xgl instead of a regular X server. All you need to do to make it start Xgl is change 2 lines in /etc/qingy/settings Файл: /etc/qingy/settings

...

# x_server = "/usr/X11R6/bin/XFree86"

x_server = "/usr/bin/Xgl"

# x_args = "-nolisten tcp"

x_args = "-ac -accel xv -accel glx:pbuffer -nolisten tcp"

...

Now Qingy should start Xgl instead of regular X. To make KDE and GNOME load Compiz you need to export a variable. KDEWM for KDE and WINDOW_MANAGER for GNOME. It is easiest to do this in /etc/X11/Sessions.

You need to have followed the instructions for adding plugins to gconf-editor. Then make a /usr/bin/compizrc as shown and chmod +x it. Файл: /usr/bin/compizrc

#!/bin/bash

LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace gconf &

sleep 2

gnome-window-decorator &

setxkbmap -model itouch -layout gb & ## Change/Remove as appropriate

Then edit the appropriate file (or both) in /etc/X11/Sessions

For KDE: Файл: /etc/X11/Sessions/kde-3.5

#!/bin/sh

export KDEWM="/usr/bin/compizrc"

exec /usr/kde/3.5/bin/startkde

Or for GNOME add this to the top of the file : Файл: /etc/X11/Sessions/Gnome

#!/bin/sh

export WINDOW_MANAGER="/usr/bin/compizrc"

...

For Xfce4 edit /etc/xdg/xfce4-session/xfce4-session.rc as shown in a previous section.

Hopefully Qingy should now start Xgl and Compiz instead of X and some other WM.

Generic startxgl script

There is a generic startup script in the overlay. For usage instructions start it without arguments.

Currently it support Xfce, Xfce-svn, GNOME and KDE.

cd /usr/local/overlays/xgl-coffee

./startxgl

Пред.: Установка XglВ началоУровень выше: Настройка XСлед.: Автоматическое переключение раскладок
В началоНастройка X → XGL