В начало → Настройка X → XGL |
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.
en:HOWTO Modular Xorg
Модульный 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
Существуют два метода для создания требуемого оверлея; оверлей можно загрузить используя 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/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"
Много пакетов маркированы как нестабильные и должны быть размаскированы чтобы их можно было установить из дерева портажей Добавте следующие строки к файлу /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
Новые бета драйверы с закрытым исходным кодом от 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 для более детальной информации.
Из-за быстрой разработки Xgl и Compiz, оверлей обновляется как минимум один раз в неделю. Используйте один из приведённых методов для обновления оверлея.
Обновление с помощью Layman утилиты
Обновление оверлея с помощью Layman утилиты очень просто:
layman -s xeffects
Обновление вручную
Для обновления оверлея вручную, перейдите в директорию оверлея и введите ./svnup.sh. этот скрипт также выведет список изменений.
cd /usr/local/overlays/xgl-coffee/
./svnup.sh
Конфигурация 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
В начало → Настройка X → XGL |