HOWTO XGL

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Введение

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, будте готовы к установке необходимых библиотек и утилит.

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

[править] Системные требования

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

[править] Установка Xgl

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

[править] Требования к програмному обеспечению

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

emerge --sync

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

Модульный 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

[править] Загрузка 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

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

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

Примечание: Лучше всего не смешивать оверлеи и использовать их отдельно друг от друга.

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

cd /usr/portage/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/portage/local/overlays/xgl-coffee"

[править] Размаскирование необходимых пакетов

Много пакетов маркированы как нестабильные и должны быть размаскированы, чтобы их можно было установить из дерева портежей Добавьте следующие строки к файлу /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

[править] Установка 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 ветками:

  1. compiz — это оригинальное приложение, написанное Давидом Равеманом (David Reveman) из Новел (Novell). Это приложение уже включено в дерево портежей.
  2. beryl — это снимок Quinnstorm's Ubuntu кодовой базы с некоторыми экспериментальными плагинами. Формально эта ветка известна под названием compiz-quinnstorm. Использует emerald как window decorator. Это отдельный пакет, не включеный в дерево портежей.
Примечание: В современное дерево портежей уже включен beryl и многие из его плагинов, так что пользоваться оверлеями для его установки больше нет необходимости.

Проверьте, что флаги 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 для более детальной информации.

[править] Обновление Xgl

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

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

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

layman -s xeffects

[править] Обновление вручную

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

cd /usr/local/overlays/xgl-coffee/
./svnup.sh

[править] Запуск 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

В случае отсутствия файла /etc/gconf/schemas/compiz.schemas проверте что compiz собран USE флагом "gnome"

Если при пересборке compiz вываливаются ошибки компиляции libcm , то попробуйте выполнить

 # eselect opengl set nvidia --impl-headers

[править] Способ "По умолчанию" для 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 (для пользователей KDE)

Замените строку с 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 для автоматической загрузке при авторизации пользователя.

  1. Сконфигурируйте GDM для Xgl с отложенным запуском, чтобы при запуске нельзя было сказать, что она не работает
  2. Сконфигурируйте GDM для использования с Xgl-сервером
  3. Установите сессию 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
  • Добавьте/измените следующие команды секции файла /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
  1. 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
  • Теперь откройте /etc/X11/gdm/gdm.conf в текстовом редакторе и найдите секцию . Она должна быть где-то в конце файла.
  • Закомментируйте 0=Standard и добавьте две новых строки 0=inactive и 1=Xgl.
  • Добавьте информацию о сервере для Xgl сервера, не забудьте заменить команду Xgl сервера на корректную! Ниже приведен пример для ATI карт.

Измененный /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 
  • Перезапуск 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

Вы можете добавить другую сессию для Xgl на экран :1 (оставив стандартный сервер на :0). Это второй шаг установки и, ИМХО лучший вариант. Во-первых - создайте файл для запуска Xgl и, во-вторых - создайте новый файл xsession.

Создание нового файла startxgl.sh в /usr/bin который и будет запускать Xgl.

vim /usr/bin/startxgl.sh

И добавление одной из следующих опций:

NVIDIA (пользующиеся GNOME) 
#!/bin/bash
Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:fbo &
sleep 2 && DISPLAY=:1 gnome-session
NVIDIA (пользующиеся KDE) 
#!/bin/bash
Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:fbo &
sleep 2 && DISPLAY=:1 startkde
ATI and Intel (пользующиеся 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 (пользующиеся KDE) 
#!/bin/bash
Xgl -fullscreen :1 -audit 0 -ac -br -accel glx:pbuffer -accel xv:pbuffer &
sleep 2 && DISPLAY=:1 startkde

Создание нового файла xsession:

Файл: /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

Сейчас вы можете выбрать новую сессию в меню опций gdm. Options -> Select Session

Польза в том, что обычный XOrg сервер не заменится. Итак, когда вы "остановите" ваш Xgl вы можете вернуться к нормальный XOrg сервер.

[править] Установка Compiz в среде GNOME (вместо Metacity)

Ниже приведен небольшой скрипт, который можно поместить в /usr/bin/. Полезен в том случае, если Xgl используется не все время. Удалите строку с setxkbmap или измените ее в соответствие с вашей раскладкой клавиатуры.

Файл: /usr/bin/compizrc
#!/bin/bash
#
# Запуск compiz в 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 # Измените в соответствие со своими нуждами или оставьте строку закомментированной
#       Можно попробовать и так, если нужна возможность смены раскладки
#       setxkbmap -model pc105 -layout "us,ru(winkeys)" -variant winkeys -option "grp:alt_shift_toggle,grp_led:scroll"
else echo "${0}: Ошибка: Compiz и g-w-d не запущены. А Xgl запущен?"
fi
Файл: /usr/bin/compizrc.modified
#!/bin/bash
#
# Запуск compiz в gnome-session gnome-session
#
if [ `ps -A -o comm | grep -c '^Xgl$'` == "1" ]; then
# Для старых версий
#       DISPLAY=:0 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &
# Для Compiz-Quinnstorm с 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}: Ошибка: Compiz и cgwd не запущены. А Xgl запущен?"
fi
Code: Разрешаем запускать скрипт

chmod 755 /usr/bin/compizrc


  1. После входа в GNOME, запустите System->Settings->Sessions, идите на 3ю вкладку Startup Programs и нажмите на кнопку Add. Укажите пусть к только что созданному скрипту (к примеру, /usr/bin/compizrc).
  2. После выхода/входа, Compiz должен запуститься, но никаких эффектов и оформлений мы не увидим, потому что ветка Compiz в gconf только что была создана без плагинов.
  3. Запускаем редактор настроек, идем в ветку apps/compiz/general/allscreens/options и меняем значение ключа active_plugins на gconf decoration wobbly fade minimize cube rotate zoom scale move resize place menu switcher
  4. Если ключ не существует, то создаем его вручную
  5. После перезагрузки Xgl Server будет доступен в 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

  1. Emerge latest entrance:
    echo "=x11-misc/entrance-0.9.0.007 ~x86" >> /etc/portage/package.keywords
    emerge -av entrance
  2. 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
    
  3. 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 не совсем корректно работает с некоторыми приложениями, точнее с играми. Для примера возьмем Quake3 в полноэкранном режиме: На одном из форумов (к сожалению я потерял ссылку на него) я нашел любопытный ход (но он применим только к Quake's based играм, по моему)

quake3-bin +set r_GLdriver /usr/lib/opengl/xorg-x11/lib/libGL.so

Однако, этот способ не дает полноценного полного экрана :(. В результате долгих размышлений и поисков для себя я выбрал немного другой путь, надеюсь он поможет еще кому-то http://forums.gentoo.org и сам файлик xlaunch Я поместил его в /bin и для запуска того же Qake3 использую

xlaunch /opt/quake3/quake3.x86

В результате стартует отдельный X сервер на :1 (в смысле свободный номер) с Quake3, после выхода из которого (Quake3) он закрывается и опять переключается на :0 (с которого начинали)

[править] Weblinks

Эта часть была перемещена на en:HOWTO XGL/Weblinks.


В драйверах от NVIDIA 169 версии достаточно вписать в файл строку Option"AddARGBGLXVisuals" "True" как показано ниже.

Section "Device"

   Identifier     "Videocard0"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
   BoardName      "GeForce 8500 GT"
   Option	   "AddARGBGLXVisuals" "True"

EndSection


Проблемы с запуска Emerald через Compiz

COMPIZ & EMERALD AUTOSTART

Создайте /usr/bin/compizrc.sh и впишите внего

#compiz --replace ccp --sm-disable

фаил /usr/bin/compizrc.sh вставьте в автозагрузку.

Источник — «http://ru.gentoo-wiki.com/HOWTO_XGL»