ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÔÚ Fedora Core 5 ÉÏÌåÑé Aiglx ºÍ Xgl & Compiz

·¢²¼Ê±¼ä:2006-12-01 01:27:25À´Ô´:ºìÁª×÷Õß:tongxiaokun
ͻ񻣼
AiglxÊÇÒ»¸öÖ¼ÔÚΪ±ê×¼×ÀÃæÆôÓÃGL¼ÓËÙ¹¦ÄܵÄÏîÄ¿£¬Ä¿µÄÔÚÓÚͨ¹ýС·ù¶ÈÐÞ¸ÄX server¡¢Ê¹ÓÃÌí¼ÓÐÂЭÒéÖ§³ÖµÄMesaÉý¼¶°æºÍ´øÓлìºÏ¹ÜÀíÆ÷°æ±¾µÄmetacity£¬ÈÃÓû§ÉÔ×÷¸Ä¶¯¼´¿ÉÔÚ×ÀÃæÉÏʹÓÃGLЧ¹û£¬ËæÒ⿪Æô¡¢¹Ø±Õ¸Ã¹¦ÄܶøÎÞÐèÌæ´úʹÓÃÖеÄX server¡£

XglÊÇ»ùÓÚOpenGLÉϵÄX·þÎñ¼Ü¹¹£¬ÏÖÔÚ´¦ÓÚ¿ª·¢½×¶Î£¬ºÜ¶àÖØÒªµÄ²¿·Ö»¹Î´Íê³É¡£XglxÊÇĿǰΨһʹÓÃÕâÖֽṹµÄX·þÎñÆ÷£¬ËüÐèÒªÔÚÒ»¸öÒÑÓеÄX·þÎñÆ÷£¬Ö»ÓÃÓÚ²âÊԺͿª·¢Ä¿µÄ¡£XeglÊÇ»ùÓÚXgl¼Ü¹¹µÄÐÂÒ»´úX·þÎñÆ÷£¬Ëü½«Ê¹ÓÃEGLÀ©Õ¹¶ÀÁ¢µØÔËÐÐÔÚOpenGLÉÏ

±¾ÎļòÒª½éÉÜÁËAiglxºÍXglµÄÌØµãºÍ¹¦ÄÜ£¬ÒÔ¼°ÔÚFedora Core 5ÉÏ´ÓÔ´Âë±àÒë¡¢°²×°¡¢ÅäÖÃAiglxºÍXglµÄÒ»ÖÖ·½·¨¡£Ï£ÍûΪ¶Ô´ËÓÐÐËȤµÄFC5Óû§ÌṩһÖÖ³¢ÊÔµÄ;¾¶¡£

Ò» дÔÚÇ°Ãæ£º

¢±Ê²Ã´ÊÇXgl£¿
http://www.freedesktop.org/wiki/Software_2fXgl
XglÊÇ»ùÓÚOpenGLÉϵÄX·þÎñ¼Ü¹¹£¬ÏÖÔÚ´¦ÓÚ¿ª·¢½×¶Î£¬ºÜ¶àÖØÒªµÄ²¿·Ö»¹Î´Íê³É¡£XglxÊÇĿǰΨһʹÓÃÕâÖֽṹµÄX·þÎñÆ÷£¬ËüÐèÒªÔÚÒ»¸öÒÑÓеÄX ·þÎñÆ÷£¬Ö»ÓÃÓÚ²âÊԺͿª·¢Ä¿µÄ¡£XeglÊÇ»ùÓÚXgl¼Ü¹¹µÄÐÂÒ»´úX·þÎñÆ÷£¬Ëü½«Ê¹ÓÃEGLÀ©Õ¹¶ÀÁ¢µØÔËÐÐÔÚOpenGLÉÏ¡£

ËüÓÐÄÄЩеÄÌØÐÔÄØ£¿

»ùÓÚOpenGLµÄX²ã£¬Ê¹ÓûìºÏ×ÀÃæ£¬¿ªÆôͨÍùй¦ÄÜ¡¢Ð»ú»áµÄ´óÃÅ¡£ÒÔÏÂÊÇһЩ¿ÉÄܳöÏֵŦÄÜ£¬ÆäÖÐһЩÏÖÔÚÒѾ­ÊµÏÖ¡£ÎÒÃÇ񻮮³ý»ùÓÚOpenGLµÄXÖп´²»ÖÐÓõÄÃÔÐÅ¡£

¢Ù¼Ó±¶´°¿ÚÏÔʾ·Ö±æÂÊ£¬Ó¦ÓóÌÐò¿ÉÒÔÓÃÌØ¶¨µÄ·Ö±æÂÊäÖȾ´°¿Ú£¬¶øÓë×ÀÃæµÄ·Ö±æÂʲ»Í¬¡£ÏëÏñÒ»ÏÂÌݶȱ³¾°£¬ÕâÑùµÄÒ»¸ö´°¿Ú»ò²ÄÖÊÖ»Óм¸¸öÉ«ËØ£¬È´ÒÔ1600x1200»ò¸ü´óµÄ³ß´çÏÔʾ¡£

¢Ú¿ìËÙ¡¢¼òµ¥µÄÆÁÄ»Ðýת¡¢·­×ª¡¢Ò¡¶¯¡¢·Å´ó¡£

¢Û¸ß¼¶×ÖÌåäÖȾ£¬°üÀ¨Ê¹ÓòÄÖʺͷֶγÌÐòµÄ¼°Ê±ÂÖÀª×ÖÌåäÖȾ¡£

¢ÜÄ£ÄâÓ²¼þ²ãÃæ£¬ÀúÊ·ÓÆ¾ÃµÄ¹¤×÷վͼÐι¦ÄÜ¿ÉÒÔÓòÄÖÊ»ìºÏʵÏÖ

¢ÝÈ«ÆÁÑÕÉ«´¦Àí£¬°üÀ¨Ù¤Âê¾ÀÕý¡¢¶Ô±ÈÔöÇ¿¡¢Ä£ºý¡¢¼ÓÁÁµÈµÈ¡£

¢ÞͬһÆÁÄ»ÉÏ»ìºÏÏñËØÉî¶È£¬¾­Öض¨Ïò£¬Éϲ㴰¿Ú¿ÉÒÔ¾ßÓв»Í¬µÄÉ«É8¡¢16¡¢24¡¢32bpp£©¡£ÀýÈ磺XTerms¿ÉÒÔ8bpp£¨Ö»Ðè32bppͼÏñËùÓÃtexmemµÄ1/4£©´´½¨£¬ÓÃÑÕÉ«²éÕÒ±íÏÔʾ£¨texel ²éÕҷֶγÌÐò£©£»

¢ßÿ´°¿ÚÈÎÒâɫͼ£¨texel²éÕҷֶγÌÐò£©£»

¢àÌæ´ú´°¿ÚÉ«²Ê¿Õ¼ä£¬¡°ÊÓÆµ¡±´°¿Ú¿ÉÒԴ洢ΪYCbCr£¨±ÈRGBС£©£¬Ê¹ÓòÄÖÊÓ²¼þÏÔʾʱʵʱת»¯ÎªRGB£»

¢á´°¿ÚͼÏñѹËõ£¬Ê¹ÓÃS3TC²ÄÖÊѹËõ£¬½«ÄÚÈݺÜÉٸ͝µÄ´°¿ÚѹËõ£¬´æ´¢ÓÚ¸ù´°¿ÚµÄ×ÀÃæ±³¾°¾ÍÊÇÒ»¸ö×îºÃµÄÓ¦ÓᣴËÏî¼¼ÊõÓпÉÄܽÚÊ¡´óÁ¿Äڴ棻

¢âʹÓÃOpenGL¶àʵÀý±íÃæÎª·´¾â³ÝXäÖȾÌṩÐÂÓ¦Óá£

¢²Ê²Ã´ÊÇCompiz£¿

Compiz´øÀ´¶àÖÖÊÓ¾õЧ¹û£¬Ê¹µÃLinux×ÀÃæ±äµÃ¸ü·½±ã¡¢¹¦ÄܸüÇ¿´ó¡¢¸üÐÂÓ±¡¢¸üÈÝÒ×Âú×ãÓû§µÄÌØÊâÐèÇó¡£CompizʹÓÃOpenGL½øÐÐäÖȾ£¬¼¯´°¿Ú¹ÜÀíÆ÷Óë»ìºÏ¹ÜÀíÆ÷ÓÚÒ»Éí£»´°¿Ú¹ÜÀíÆ÷´¦ÀíÆÁÄ»ÉϵÄÓ¦ÓóÌÐòºÍ¶Ô»°¿ò£¬¶ø»ìºÏ¹ÜÀíÆ÷Ôòʹ´°¿ÚºÍͼÐλìºÏ£¬²úÉú»ìºÏͼÏñ£»Compizͬʱ¾ßÓÐÁ½ÕߵŦÄÜ£¬²úÉú¾ªÈ˵ÄЧ¹û¡£

CompizĿǰֻÄÜÓëXgl¡°¹²Ê¡±£¬CompizµÄ²å¼þ¼°´°¿Ú×°ÊÎÆ÷ÔÚGnomeºÍKDE϶¼Äܹ¤×÷¡£

¢³Ê²Ã´ÊÇaiglx£¿
http://fedoraproject.org/wiki/RenderingProject/aiglx?highlight=%28aiglx%29
Aiglx£¨Accelerated Indirect GL X£©ÊÇÒ»¸öÖ¼ÔÚΪ±ê×¼×ÀÃæÆôÓÃGL¼ÓËÙ¹¦ÄܵÄÏîÄ¿£¬Ä¿µÄÔÚÓÚͨ¹ýС·ù¶ÈÐÞ¸ÄX server¡¢Ê¹ÓÃÌí¼ÓÐÂЭÒéÖ§³ÖµÄMesaÉý¼¶°æºÍ´øÓлìºÏ¹ÜÀíÆ÷°æ±¾µÄmetacity£¬ÈÃÓû§ÉÔ×÷¸Ä¶¯¼´¿ÉÔÚ×ÀÃæÉÏʹÓÃGLЧ¹û£¬ËæÒ⿪Æô¡¢¹Ø±Õ¸Ã¹¦ÄܶøÎÞÐèÌæ´úʹÓÃÖеÄX server¡£
´úÂëÊÇÓëX ÉçÇøÏà¹ØµÄÉÏÓÎÍê³É£¬Fedora Core 5ÊǵÚÒ»¸ö°üÀ¨ÁËÄ£¿éX°üºÍÔÚÊʺÏλÖÃÌí¼ÓÊʺÏЭÒéµÄ·¢²¼°æ¡£AiglxÔÚX»ù´¡·½ÃæÒѾ­½øÐÐÁË´óÁ¿¹¤×÷£¬µ«¶Ôʵ¼ÊµÄäÖȾЧ¹û²¢Ã»ÏÂÌ«´óÁ¦Æø£¬Ï£Íû¹ã´óÉçÇø°ïÖú´´ÔìÓÐȤ¡¢Êʵ±µÄЧ¹û¡£ÖØÒªµÄ²»ÊÇ´Ëʱ¾ÍÍÆ³ö³ÉÆ·£¬¶øÊǹÄÀøÉçÇøÎ§ÈÆÆä½øÐпª·¢ºÍʵÑé¡£

¶þ ÌåÑé Aiglx
²Î¿¼ http://fedoraproject.org/wiki/RenderingProject/aiglx

¢±ÏÂÔØ¡¢°²×°

¢Ù½¨Á¢CVSĿ¼


mkdir /opt/CVS/
cd /opt/CVS/
¢ÚÏÂÔØ°²×°×îÐ嵀 GL protocol Í·Îļþ


cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg login
CVS password:<»Ø³µ>
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co proto/GL
cd /opt/CVS/proto/GL
./autogen.sh
make
make install
¢ÛÏÂÔØ°²×°×îÐ嵀 Xorg ·þÎñÆ÷Ô´Âë


cvs -d:pserver:anoncvs@cvs.freedesktop:/cvs/xorg co xserver/xorg
cd /opt/CVS/xserver/xorg
./autogen.sh --with-mesa-source=/opt/CVS/Mesa --sysconfdir=/etc
make
make install
ln -s /etc/X11/fs /usr/local/lib/X11/fs
¢ÜÏÂÔØ°²×° Mesa Ô´Âë


cvs -d:pserver:anoncvs@cvs.freedesktop:/cvs/mesa co Mesa
cd /opt/CVS/Mesa
make linux-dri-x86
make install DESTDIR=/usr/local
¢ÝÏÂÔØ°²×° libcom


cvs -d:pserver:anoncvs@anoncvs.gnome.org:/cvs/gnome login
CVS password: <»Ø³µ>
cvs -d:pserver:anoncvs@anoncvs.gnome.org:/cvs/gnome co libcm
cd /opt/CVS/libcm
./autogen.sh
make
make install
¢ÞÏÂÔØ°²×° metacity


cvs -d:pserver:anoncvs@anoncvs.gnome.org:/cvs/gnome co metacity
cd /opt/CVS/metacity
./autogen.sh --enable-compositor
make
make install
¢²ÅäÖÃ

¢ÙÆôÓûìºÏ¹ÜÀíÆ÷


gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true

»òʹÓÃÅäÖùÜÀíÆ÷ÉèÖÃ/apps/metacity/general/compositing_manager¼üÖµ
¢ÚÐÞ¸Ä/etc/X11/xorg.conf£¬Ìí¼Ó


Section "extensions"
Option "Composite"
EndSection
Section "Device"
...
Option "XAANoOffscreenPixmaps"
EndSection
¢Û½ûÓûìºÏ¹ÜÀíÆ÷£¬ÔËÐÐÃüÁî


gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool false

»òʹÓÃÅäÖùÜÀíÆ÷ÐÞ¸Ä/apps/metacity/general/compositing_manager¼üÖµ
¢ÜʹÓÃÊó±êÓÒ¼üÀ´ÆôÓᢽûÓ÷þÎñ
±à¼­Îļþ£º


gedit ~/.gnome2/nautilus-scripts/aiglx
Ìí¼ÓÄÚÈÝ£º


#!/bin/bash
title="Aiglx Service"
#Date: 3-19-2006
# Wriiten By: fedorajim@gmail.com
zenity --question --text "Do you want to turn On or Off the AIGLX Service? Yes=On / Cancel=Off" --title="$title"
if [ "$(echo $?)" == "1" ] #They clicked "no"
then # Turn off the AIGLX Service
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool false
else
# turn on the AIGLX Service
gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true
fi

±£´æÎļþ£¬Ê¹Æä¿ÉÖ´ÐÐ

chmod u+x ~/.gnome2/nautilus-scripts/aiglx
¢³ ÑÝʾºÍÒÑÖªÎÊÌâ

¢ÙÑÝʾ
×îС»¯Ö®Ò» http://www.gnome.org/~jrb/aiglx/shot01.ogg
×îС»¯Ö®¶þ http://www.gnome.org/~jrb/aiglx/shot02.ogg
²Ëµ¥µ­»¯ http://www.gnome.org/~jrb/aiglx/shot03.ogg

¢ÚÖ§³ÖµÄÏÔ¿¨ºÍһЩÎÊÌâ
http://fedoraproject.org/wiki/RenderingProject/aiglx#head-43a98eb9adc0264c802bf5918f1cc57bddbbc129

Èý ÌåÑé Xgl & Compiz

±¾ÎĵÄÖØµãÊÇÔÚ²»ÆÆ»µÔ­ÓÐϵͳµÄ»ù´¡ÉÏ£¬Ê¹ÆÕͨÓû§ÌåÑé Xgl & CompizµÄÐÂЧÄÜ¡£
ĬÈÏÇé¿öÊǰ²×°Â·¾¶Îª/opt/Xgl£¬Ã»ÓнøÐУ¨¶þ£©²¿·ÖËù×öÏÂÔØ

¢±ÏÂÔØ°²×°

¢Ù½¨Á¢CVSÔ´ÂëĿ¼£¬ÏÂÔØÔ´Âë°ü£º


mkdir /opt/CVS

ÏÂÔØcvsÔ´ÂëµÄ libsvg, libsvg-cairo, mesa, xorg/glitz, xkbfile, glxproto, drm, compiz, FixesProto, ScrnSaverProto, CompositeProto, ÏÂÔØcontrol-center-2.14.0Ô´Âë; ×îеÄcairoÔ´ÂëÒѾ­²»ÔÙʹÓÃCVS£¬ÏÂÔØÊ¹ÓÃgit¡£
ʹÓÃyum°²×°git


yum install git


git clone git://git.cairographics.org/git/cairo
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/mesa login
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/mesa co Mesa
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/cairo co glitz cairo libsvg libsvg-cairo
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co -r xgl-0-0-1 xserver/xorg
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co lib/xkbfile proto/GL
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/dri co drm
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co app/compiz
cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg co proto/Composite proto/Fixes proto/ScrnSaver
wget http://ftp.gnome.org/mirror/gnome.org/sources/control-center/2.14/control-center-2.14.0.tar.bz2
¢Ú±àÒë°²×°

±àÒë°²×°glitz


cd /opt/CVS/glitz
./autogen.sh --prefix=/opt/Xgl
make
make install
Ìí¼ÓPKG_CONFIG_PATH, LD_LIBRARY_PATHµ½£º ~/.bashrc


cat >> ~/.bashrc << EOF
PKG_CONFIG_PATH=/opt/Xgl/lib/pkgconfig
LD_LIBRARY_PATH=/opt/Xgl/lib
export PKG_CONFIG_PATH LD_LIBRARY_PATH
EOF


source ~/.bashrc
±àÒë°²×° control-center


cd /opt/CVS/
tar xjvf control-center-2.14.0.tar.bz2
cd control-center-2.14.0/
./configure --prefix=/opt/Xgl --sysconfdir=/etc
make
make install
±àÒë°²×° libsvg


cd /opt/CVS/libsvg
./autogen.sh --prefix=/opt/Xgl
make
make instal
±àÒë°²×° cairo


cd /opt/CVS/cairo
./autogen.sh --prefix=/opt/Xgl
make
make install
±àÒë°²×° libsvg-cairo£¨×¢Òⰲװ˳Ðò£¬libsvg-cairoÒÀÀµcairo£¬Òªºó×°£©


cd /opt/CVS/libsvg-cairo
./autogen.sh --prefix=/opt/Xgl/
make
make install
±àÒë°²×° GL proto£¨proto/GL£©


cd /opt/CVS/proto/GL
./autogen.sh --prefix=/opt/Xgl
make install
±àÒë°²×°drm

cd /opt/CVS/drm
./autogen.sh --prefix=/opt/Xgl
make
make install
±àÒë°²×°Composite£¬Fixes£¬ScrnSaver


cd /opt/CVS/proto/Composite
./autogen.sh --prefix=/opt/Xgl
make install
cd /opt/CVS/proto/Fixes
./autogen.sh --prefix=/opt/Xgl
make install
cd /opt/CVS/proto/ScrnSaver
./autogen.sh --prefix=/opt/Xgl
make install
±àÒë°²×° xorg


cd /opt/CVS/xserver/xorg
./autogen.sh --prefix=/opt/Xgl --disable-xorg --disable-dmx --disable-xvfb --disable-xnest --disable-xwin --enable-xgl --enable-xglx --with-mesa-source=/opt/CVS/Mesa/ --sysconfdir=/etc --enable-glx-dri --disable-xprint
make
make install
±àÒë°²×° compiz


cd /opt/CVS/app/compiz
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/opt/Xgl/lib/pkgconfig/ ./autogen.sh --prefix=/opt/Xgl/ --enable-libsvg-cairo
make
make install

ÓÐЩÈ˱àÒëÓöµ½gnome¡¢svgÑ¡Ïî×ÜÊÇno£¬Ô­Òò¼´ÔÚÓÚȱÉÙ²ÎÊýÉèÖÃ
±àÒë°²×°Mesa


cd /opt/CVS/Mesa
make linux-dri-x86
make install DESTDIR=/opt/Xgl

ÓÉÓÚCVSÔ´Âë±ä»¯ºÜ¿ì£¬ÓÐʱºÜ³öÏÖ³¤Ê±¼ä±àÒë²»³É¹¦µÄÏÖÏó£¬Õâʱ¾ÍÐèÒªÒ»µãÄÍÐÄÁË£¬µ½ÓʼþÁÐ±í£¨http: //www.mesa3d.org/lists.html£© ÖÐÈ¥²éÕÒ°ì·¨¡£µ±È»Ò²ÓÐÌæ´úµÄ·½·¨£¬¾ÍÊÇÏÂÔØ·¢²¼°æ£¬Èçmesa cvs±àÒë²»³É¹¦¾Í¿ÉÒÔÓÃMesa-6.5£¬ÏÂÔØµØÖ· ×Ô¼ºÑ¡Ò»¸ö±È½Ï¿ìµÄÁ´½Ó¡£ÏàÓ¦µØ²Ù×÷Òª±äΪ£º

tar xjvf MesaLib-6.5.tar.bz2
cd MesaLib-6.5
make linux-dri-x86
make install DESTDIR=/opt/Xgl
¢ÛÅäÖÃ
Ìí¼Ó¹¤×÷·¾¶


cat > /etc/profile.d/Xgl.sh << "EOF"
PATH="/opt/Xgl/bin:$PATH"
export PATH
EOF
ÐÞ¸Ä/etc/sudoers£¬Ê¹Óû§¿ÉÒÔÔËÐÐldconfigÃüÁî


visudo /etc/sudoers

Ìí¼Ó

username ALL=NOPASSWD:/sbin/ldconfig
È¡Ïû¶Ô~/.bashrcµÄÐ޸ģ¬É¾³ýÌí¼ÓµÄÄÚÈÝ£º


PKG_CONFIG_PATH=/opt/Xgl/lib/pkgconfig
LD_LIBRARY_PATH=/opt/Xgl/lib
export PKG_CONFIG_PATH LD_LIBRARY_PATH
ÐÞ¸Ä~/.bash_profile£¬Ð޸Ť×÷·¾¶£º


PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
±£´æÈçϽű¾µ½/usr/local/bin/Xstarter£º


#!/bin/bash
# a clumsy script to switch between default X server and Xgl
# Licensed to copy, modify freely
# written by aaccdd < waxyxgn@hotmail.com>
# scriptname=Xstarter
# before running this script, add following to /etc/sudoers:
# username ALL=NOPASSWD:/sbin/ldconfig
# to allow user run sudo ldconfig
[ -e $HOME/.Xgl-Status-0 -o -e $HOME/.Xgl-Status-1 ] || touch $HOME/.Xgl-Status-0
NotFound() {
echo "ERROR: $1 is not installed on your machine! to install $1, please type"
echo "yum $2 \"$3\""
exit 1
}
currentWM(){
if [ -e $HOME/.Xclients-default ]
then
wmnow=$(sed -n 's/^WM=\"\(.*\)\"$/\1/p' $HOME/.Xclients-default )
fi
case "$wmnow" in
enlightment) WMnow=Enlightment;;
fluxbox) WMnow=Fluxbox;;
fvwm2) WMnow=Fvwm;;
icewm) WMnow=Icewm;;
twm) WMnow=Twm;;
wmake) WMnow=WMmake;;
startxfce4) WMnow=Xfce4;;
startkde) WMnow=KDE;;
gnome-session) WMnow=GNOME;;
esac
}
preXgl(){
if [ -e $HOME/.Xgl-Status-0 ]
then
perl -e 'print "="x80;print "\n"'
echo -e "\t\tCreating necessary links and cache to share libraries\n"
echo -e "\t\tPlease stand by ...\n"
perl -e 'print "="x80;print "\n"'
sleep 2
sudo ldconfig /opt/Xgl/lib /opt/Xgl/lib/window-manager-settings \
/opt/Xgl/lib/xorg/modules/xgl /opt/Xgl/lib/compiz
[ "$?" -eq 0 ] && mv $HOME/.Xgl-Status-0 $HOME/.Xgl-Status-1
sed -i 's/vo=xv,x11/vo=x11,xv/' $HOME/.mplayer/config
fi
}
postXgl(){
if [ -e $HOME/.Xgl-Status-1 ]
then
perl -e 'print "="x80;print "\n"'
echo -e "\t\tCreating necessary links and cache to share libraries\n"
echo -e "\t\tPlease stand by ...\n"
perl -e 'print "="x80;print "\n"'
sleep 2
sudo ldconfig
[ "$?" -eq 0 ] && mv $HOME/.Xgl-Status-1 $HOME/.Xgl-Status-0
sed -i 's/vo=x11,xv/vo=xv,x11/' $HOME/.mplayer/config
fi
}
startX(){
currentWM
case "$wmnow" in
gnome-session) startx -- :1 &
DISPLAY=:1 metacity &
;;
startxfce4) startx -- :1 &
DISPLAY=:1 xfwm4 --daemon &
;;
*) startx -- :1 &
;;
esac
}
startXgl(){
export LANG="en_US.UTF-8" # ´Ë´¦ÉèÖýçÃæÎªÓ¢ÎÄ£¬²»ÊDZØÐ裬Èç¹û²»Ï°¹ß×¢Ïú¼´¿É
LD_PRELOAD=/usr/lib/libGL.so /opt/Xgl/bin/Xgl :1 -ac -accel glx:pbuffer -accel xv:fbo -audit 0 &
# change xv:fbo to xv:pbuffer for ATI video card
if [ "$wmnow" = "gnome-session" -o "$wmnow" = "startkde" -o "$wmnow" = "startxfce4" ]
then
DISPLAY=:1 LD_LIBRARY_PATH="/opt/Xgl/lib:/opt/Xgl/lib/window-manager-settings: \
/opt/Xgl/lib/xorg/modules/xgl:/opt/Xgl/lib/compiz" \
compiz --replace gconf &
[ "$wmnow" = "gnome-session" ] && DISPLAY=:1 eval $(dbus-launch --auto-syntax)
DISPLAY=:1 gnome-window-decorator &
DISPLAY=:1 $wmnow &
DISPLAY=:1 /etc/X11/xinit/xinitrc.d/xinput.sh &
else
DISPLAY=:1 $wmnow &
DISPLAY=:1 /etc/X11/xinit/xinitrc.d/xinput.sh &
fi
}
switchDesktop(){
echo -e "\tWhich Desktop you want to use? Type in the name: \n"
read TargetDesktop
[ ! -x /usr/bin/switchdesk ] && NotFOUND switchdesk install "The Desktop Switcher"
switchdesk $TargetDesktop
}
prog="$0"
wmnow="xterm"
currentWM
perl -w -e 'print "=" x80 ;print "\n"'
echo -e "\tXstarter helps you to choose the window manager you want to run"
echo -e "\tUse it to do:"
echo -e "\t\t<1>\tstart your default window manager normally"
echo -e "\t\t<2>\tswitch to other window manager then start X"
echo -e "\t\t<3>\tstart Xgl & compiz on your default window manager"
echo -e "\t\t<4>\tswitch window manager before starting Xgl & compiz"
perl -w -e 'print "=" x80 ;print "\n"'
echo -e "\tbefore running this, make sure /etc/sudoers modified accordingly"
perl -w -e 'print "="x80;print "\n"'
echo -e "\t\tyour current window manager is $WMnow\n"
echo -e "\t\twhat to do next? please type in 1, 2, 3, or 4\n"
echo -e "\t\tpress any other key to quit\n"
read TODO
case "$TODO" in
1) echo -e"\tStarting current default window manager\n"
postXgl
startX
;;
2) echo -e "\tRunning the Desktop Switcher to change window manager\n"
switchDesktop || exit 1
postXgl
startX
;;
3) echo -e "\tStarting Xgl & Compiz on default window manager\n"
preXgl
startXgl
;;
4) echo -e "\tStarting Xgl & Compiz after switch window manager\n"
switchDesktop || exit 1
preXgl
currentWM
startXgl
;;
*) echo -e "\tQuit now, legitimate inputs are ordinal number 1 to 4\n"
exit 1
;;
esac

ʹÆä¾ßÓÐÖ´ÐÐȨÏÞ

chmod +x /usr/local/bin/Xstarter

½Å±¾Ê¹Ó÷½·¨£º
ÐÞ¸Ä/etc/inittab£¬½«initdefaultÉ趨Ϊ3£¬Èƹýgdm£¬Æô¶¯½øÈë¿ØÖÆÌ¨£»
ÔËÐÐXstarter£¬×ª»»×ÀÃæ¹ÜÀíÆ÷£¬Æô¶¯X¡¢Xgl£»×ª»»Ê±£¬Ö»ÐèÖØÆôX£¬ÎÞÐëÖØÆôϵͳ£»
ÔËÐÐXstarterÓÐËĸöÑ¡Ï
¢ÅÒÔĬÈÏ×ÀÃæÆô¶¯X£»
¢Æ×ª»»×ÀÃæ£¬È»ºóÆô¶¯X£»
¢ÇÒÔĬÈÏ×ÀÃæÆô¶¯Xgl£»
¢Èת»»×ÀÃæ£¬È»ºóÆô¶¯Xgl;

°´Shift + BackspaceÍ˳ö

Çë²Î¿¼Ìáʾ¢â×¢ÒâÊÂÏî
¢²¼¸¸öСÌáʾ

¢ÙÈçºÎÉèÖã¬Ôö¼ÓcubeµÄÃæ£¨¶àÓÚËĸöÃæµÄ»¹½ÐcubeÂ𣿣©


gconftool-2 -t int -s /apps/compiz/general/screen0/options/size "5"

»òÓÃÅäÖñ༭Æ÷ÊÖ¶¯ÐÞ¸Ä/apps/compiz/general/screen0/options/size¼üÖµ£¬ÕâÑù¾ÍÊÇ5¸ö²àÃæÁË¡£
¢ÚÈçºÎÔÚcube¶¥ÉÏÌí¼ÓÑÝʾÎļþ


yum install inkscape

ÔËÐÐOpenOffice£¬ÖÆ×÷ÑÝʾÎļþ£¬Ã¿Ò»·ù»ÃµÆ±£´æÎªÒ»ÕÅjpgͼƬ
ÔËÐÐInkscape£¬½«Í¼Æ¬Êä³öΪsvgÎļþ£¨Scalable Vector Graphics£©
½«ËùÓеÄsvgÎļþ·ÅÈëij¸öÎļþ¼Ð
±£´æÏÂÃæ½Å±¾µ½/usr/local/bin/svg2top

#!/bin/bash
echo "Give full path of the folder containing SVGs to use as Cube TOP:"
read path
svglist=$(find $path -type f \( -name "*.svg" -o -name "*.png" \) -printf "%p,")
gconftool-2 -s /apps/compiz/plugins/cube/screen0/options/images -t list --list-type=string "[${svglist%%,}]"
echo "SVGs added"

ÔËÐÐsvg2top

svg2top Ŀ¼¾ø¶Ô·¾¶


gconftool-2 -t bool -s /apps/compiz/plugins/rotate/screen0/options/snap_top true

Ïòcube¶¥ÉÏÌí¼ÓÑÝʾÎļþ£¬Èç²úÆ·ÍÆ½é¡¢¿Î³Ì»ÃµÆ£¬
Ctrl + Alt + Êó±êµã»÷×ÀÃæ¿Õ°×´¦£¬×ª¶¯cubeÏÔʾ¶¥²¿£¬
Space¼ü²¥·ÅÏÂÒ»ÕÅ£¬Esc·µ»Ø×ÀÃæ¡£
¢ÛÈçºÎÌí¼ÓÌìñ·Í¼Æ¬
ÔËÐÐGIMP£¬ÖÆ×÷Ììñ·Í¼Æ¬£¬Ñ¡Ôñ×Ô¼ºÏ²»¶µÄͼƬ£¬°´ºÏÊʵıÈÀý±£´æÎªpng¸ñʽ£»Í¼Æ¬µÄ±ÈÀýΪ
1024x1024
1024x2048
1024x4096
2048x1024
2048x2048
2048x4096
4096x1024
4096x2048
4096x4096
...
×îºÃÊÇ2/1¡¢1/2µÄ±ÈÀý£¬×¢ÒâͼƬԽ´ó£¬×ÊÔ´Õ¼ÓÃÔ½¶à¡£


gconftool-2 -t bool -s /apps/compiz/plugins/cube/screen0/options/skydome true
gconftool-2 -t bool -s /apps/compiz/plugins/cube/screen0/options/skydome_animated true
gconftool-2 -t bool -s /apps/compiz/plugins/cube/screen0/options/skydome_image " "pngͼƬµÄ¾ø¶Ô·¾¶"
¢ÜÈçºÎÏÔʾcubeµÄÄÚ²¿


gconftool-2 -t bool -s /apps/compiz/plugins/cube/screen0/options/in true
¢ÝһЩ¿ì½Ý¼üµÄĬÈÏÉèÖÃ
Çл»´°¿Ú Alt + Tab
ÅÅÁйۿ´ËùÓд°¿Ú F12
Çл»Õý·½Ì壨¶à±ßµÄÒ²ÐУ©×ÀÃæ Ctrl + Alt + ×ó·½Ïò¼ü/ÓÒ·½Ïò¼ü
Çл»Õý·½Ìå×ÀÃæ£¬µ±Ç°´°¿Ú¸úËæ Ctrl + Alt + Shift + ×ó·½Ïò¼ü/ÓÒ·½Ïò¼ü
ÊÖ¶¯×ªµ½×ÀÃæ Ctrl + Alt + Êó±ê×ó¼üµ¥»÷×ÀÃæ¿Õ°×´¦
´°¿Ú±ä͸Ã÷¡¢²»Í¸Ã÷ Ctrl + Alt + Êó±ê¹öÂÖ
×Ô¶¯ËõС ³¬¼¶¼ü + Êó±êÓÒ¼ü
ÊÖ¶¯ËõС ³¬¼¶¼ü + Êó±ê¹öÂÖÏòÉÏ
ÊÖ¶¯·Å´ó ³¬¼¶¼ü + Êó±ê¹öÂÖÏòÏÂ
ÒÆ¶¯´°¿Ú Alt + Êó±ê×ó¼ü
»Ó¶¯´°¿Ú Ctrl + Alt + Êó±ê×ó¼ü£¨´°¿ÚÕ³¸½±ß¿ò£©
¸Ä±ä´°¿Ú´óС Alt + Êó±êÓÒ¼ü
×îС»¯´°¿Ú Alt + F9
×î´ó»¯´°¿Ú Alt + F10
ÏÔʾϲ㴰¿Ú Alt + Êó±êÖмü
¼õÂý¶¯×÷ Shift + F10

*Ëùν³¬¼¶¼ü¾ÍÊÇWin¼ü¡£
*ÕâÀïÁгöµÄÊÇһЩĬÈϵĿì½Ý¼üÉèÖ㬵«¸ù¾Ý°æ±¾²»Í¬¿ÉÄÜ»áÓб仯£»ÄãÒ²¿ÉÒÔʹÓÃgconf-editorÀ´½øÐÐÉ趨¡£

¢ÞATIÏÔ¿¨x300¡¢x700¿ÉÄÜÓöµ½¼üÅÌÎÞ·´Ó¦¡¢Ëø¶¨µÄÇé¿ö£¬²Î¿¼£º
ubuntu xglhowo
ÐÞ¸Äxorg.confµÄDevice²¿·Ö£º


Section "Device"
Identifier "card0"
Driver "fglrx"
Option "no_accel" "no"
Option "no_dri" "no"
Option "DynamicClocks" "on"
Option "mtrr" "on"
Option "DesktopSetup" "Single"
Option "ScreenOverlap" "0"
Option "Capabilities" "0x00000000"
Option "CapabilitiesEx" "0x00000000"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
Option "CenterMode" "off"
Option "PseudoColorVisuals" "off"
Option "Stereo" "off"
Option "StereoSyncEnable" "1"
Option "FSAAEnable" "no"
Option "FSAAScale" "1"
Option "FSAADisableGamma" "no"
Option "FSAACustomizeMSPos" "no"
Option "FSAAMSPosX0" "0.000000"
Option "FSAAMSPosY0" "0.000000"
Option "FSAAMSPosX1" "0.000000"
Option "FSAAMSPosY1" "0.000000"
Option "FSAAMSPosX2" "0.000000"
Option "FSAAMSPosY2" "0.000000"
Option "FSAAMSPosX3" "0.000000"
Option "FSAAMSPosY3" "0.000000"
Option "FSAAMSPosX4" "0.000000"
Option "FSAAMSPosY4" "0.000000"
Option "FSAAMSPosX5" "0.000000"
Option "FSAAMSPosY5" "0.000000"
Option "UseFastTLS" "0"
Option "BlockSignalsOnLock" "on"
Option "UseInternalAGPGART" "no"
Option "ForceGenericCPU" "no"
Option "KernelModuleParm" "agplock=0"
Option "PowerState" "1"
BusID "PCI:1:0:0"
EndSection
¢ßÈç¹ûSELinuxÆôÓã¬ÐèÒªÐÞ¸ÄÒÔÏÂÎļþµÄ°²È«ÉÏÏÂÎÄ


chcon -t textrel_shlib_t /opt/Xgl/lib/libGL.so
chcon -t textrel_shlib_t /opt/Xgl/lib/libGLU.so
¢à×¢ÒâÊÂÏ
±àÒë°²×°µÄ²Ù×÷²½Ö裬¾ùĬÈÏΪÔÚͬһÖÕ¶ËÄÚÍê³É£»Èç¹ûʹÓöà¸öÖÕ¶Ë£¬ÐèÒªÉèÖÃÏàÓ¦µÄ»·¾³±äÁ¿£»
ʹÓÃXglʱ£¬½¨Òé²»Òª½øÐÐrpm°ü°²×°¡¢yumÉý¼¶µÄ²Ù×÷£»Ô­ÒòÔÚÓÚ£¬ÕâÖÖ°²×°·½·¨ÊǾ¡Á¿Ê¹ÏµÍ³²»ÊÜXgl°²×°µÄÓ°Ï죬Èç¹ûÔÚʹÓÃXglʱ½øÐÐÁËϵͳÉý¼¶£¬»áÒòXgl¹²Ïí¿â·¾¶Î´ÔÚϵͳÎļþÖÐÅäÖã¬Æô¶¯Ä¬ÈÏXʱ²úÉú´íÎóµÄÒÀÀµ¹ØÏµ£»¶øÇÒÔËÐÐÖÐXglÒ²»áÒò¹²Ïí¿â·¾¶±ä»¯³ö´í¡£Èç¹ûÒª½«Xgl¡¢ Compiz×÷ΪÈÕ³£Ó¦Óã¬Çë²Î¿¼µÚËIJ¿·ÖµÄ·½·¨£»
ÓÉÓÚ±àÒëʱָ¶¨Á˰²×°Î»Öã¬Ð¶ÔØÊ±Ö»Ðèɾ³ý/etc/profile.d/Xgl.sh¡¢/usr/local/bin/XstarterºÍ/opt/XglĿ¼¼´¿É¡£

¢ácompizµÄgconf¼üÖµ²Î¿¼£º
https://wiki.ubuntu.com/compiz

¢âÅÅ´í²Î¿¼£º
http://gentoo-wiki.com/HOWTO_XGL/Troubleshooting

¢³Ïà¹Ø×ÊÔ´Á´½Ó£º
http://www.freedesktop.org/wiki/Software_2fXgll
http://en.opensuse.org/Xgl
http://en.opensuse.org/Compiz
http://gentoo-wiki.com/HOWTO_XGL
https://wiki.ubuntu.com/XglHowto?highlight=%28xgl%29
http://compiz.ed3n.com/
http://gentoo-wiki.com/HOWTO_XGL/Troubleshooting

ËÄ ´ò°ü°²×°XglºÍCompiz
ǰÎĽ²ÊöÁË´ÓÔ´Âë±àÒë¡¢°²×°¡¢ÅäÖÃAiglxºÍXgl¡¢CompizµÄ¹ý³Ì£¬ÏÂÃæ½²Ò»Ï£¬ÈçºÎ¶ÔÔ´Âë½øÐдò°ü£¬ÖÆ×÷³ÉFC5רÓõÄrpm°ü¡£
ÔÚfedora rawhideÖÐÌṩÁËAiglxµÄrpm°ü£¬´Ë´¦²»Óè׸Êö¡£

¢±°²×°fedora-rpmdevtools£¬Éú³ÉrpmbuildĿ¼£º


yum install fedora-rpmdevtools
fedora-buildrpmtree

ÐÞ¸Ä~/.rpmmacros

%_topdir %(echo $HOME)/rpmbuild
%_prefix /usr/local
%_mandir /usr/local/man
%_defaultdocdir /usr/local/share/doc
%_sysconfdir /usr/local/etc
%_smp_mflags -j3
#%__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
¢²ÏÂÔØÔ´Âë°ü£º
ÏÂÔØÎÒÖÆ×÷µÄÔ´Âë°ü£¬ÏÂÔØµØÖ·ÈçÏ£º
ÏÂÔØÒ³Ãæ
ÌáÈ¡Â룺
compiz-cvs 0009972112435392
xgl-cvs 7117086849938431

¢³Ê¹ÓÃrpmbuildÃüÁîÖØÐ±àÒë´ò°ü£º


rpmbuild --rebuild xgl-cvs_060430.src.rpm
rpmbuild --rebuild compiz-cvs_060430.src.rpm
¢´ÎÒ±àÒëºÃµÄxglºÍcompiz binary°üÏÂÔØ£¬½öÌṩÁËx86°ü£¬Ê¹ÓÃx86_64°æ±¾µÄÐÖµÜÇëÏÂÔØÔ´Âë°üÖØÐ´ò°ü¡£

ÏÂÔØÒ³Ãæ

Îå ÈçºÎÅäÖÃϵͳÎļþ£¬Ê¹Xgl & Compiz×Ô¶¯ÔËÐУº

´Ë·½·¨ÊÊÓÃÓÚµÚËIJ¿·ÖÖ®rpm°ü°²×°£¬¼°Ô´Âë±àÒë°²×°£¨ÐèÒªÐ޸ĵÄ·¾¶£¬ÓÉ/usr/local/±äΪ/opt/Xgl£©
ËùνÅäÖÃÎÞ·ÇÊÇÁ½µã£º

----ÅäÖÃÏÔʾ¹ÜÀíÆ÷£¨displaymanager£©£¬Ê¹ÏµÍ³Æô¶¯ºóÆôÓÃXgl server£»
ÓÉÓÚXglÆô¶¯Ê±¼äÉÔ³¤£¬ËùÒÔÒªÑÓ³¤ÏÔʾ¹ÜÀíÆ÷µÄµÈ´ýʱ¼ä£¬È»ºóÌí¼ÓÃüÁî

----ÅäÖÃ×ÀÃæ»·¾³¡¢¹ÜÀíÆ÷£¬Ê¹×ÀÃæÆô¶¯ºóÆôÓÃCompiz´°¿Ú¹ÜÀíÆ÷£»

ÏÂÃæ¼òµ¥½éÉÜһϣº

¢ÙFC5µÄÏÔʾ¹ÜÀíÆ÷£¨DISPLAYMANGAGER£©ÔÚ/etc/sysconfig/desktopÖÐÅäÖã¬È磺


cat /etc/sysconfig/desktop
DESKTOP=GNOME
DISPLAYMANAGER=GNOME

ÔÚÕâÀ×ÀÃæ»·¾³ÊÇGNOME£¬ÏÔʾ¹ÜÀíÆ÷ÊÇGNOME£¨gdm£©£»Èç¹ûÊÇKDE£¬ÔòÏàÓ¦µØ¾ùΪKDE£¨kdm£©¡£
¢ÚÏÔʾ¹ÜÀíÆ÷Ëù¶ÔÓ¦µÄÅäÖÃÎļþ·Ö±ðÊÇ£º
GNOME£º /etc/gdm/custom.conf
KDE£º /etc/kde/kdm/kdmrc

ÐÞ¸ÄΪ£º
Èç¹ûʹÓÃgdm£¬ÐÞ¸ÄÍêÅäÖÃÎļþʹÓÃgdmflexiserverÃüÁî¸üУ¬»òÖØÆôϵͳ


[daemon]
GdmXserverTimeout=30 #ÐÞ¸ÄÕâÀïÑÓ³¤µÈ´ýʱ¼ä
[security]
[xdmcp]
[gui]
[greeter]
[chooser]
[debug]
[servers]
0=Standard # ÐÞ¸ÄÕâÀï¡°¸²¸Ç¡±Ä¬ÈÏStandard server
[server-Standard] # ÐÞ¸ÄÕâÀïÌí¼ÓÃüÁî
name=Standard server
# nvidia ÏÔ¿¨
command=/usr/local/bin/Xgl :0 -ac -accel glx:pbuffer -accel xv:fbo -audit 0 -fullscreen
# ati ÏÔ¿¨
# command=/usr/local/bin/Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer -audit 0 -fullscreen
# i810 ʹÓÃi810Çý¶¯µÄintel ÏÔ¿¨
# command=/usr/bin/Xgl :0 -accel xv -accel glx:pbuffer -accel xv:pbuffer -ac -audit 0 -br -dpms -dpi 72
flexible=true # ʹÓÃgdmflexiserverÃüÁî¸üÐÂ
chooser=false

Èç¹ûʹÓÃkdm

[General]
ConfigVersion=2.3
StaticServers=:0
ReserveServers=:1,:2,:3
ServerVTs=-7
ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
PidFile=/var/run/kdm.pid
[Xdmcp]
Enable=false
Xaccess=/etc/X11/xdm/Xaccess
Willing=/etc/X11/xdm/Xwilling
[Shutdown]
HaltCmd=/sbin/poweroff
[X-*-Core]
Resources=/etc/X11/xdm/Xresources
Setup=/etc/X11/xdm/Xsetup_0
Session=/etc/kde/kdm/Xsession
AutoReLogin=false
AllowShutdown=Root
SessionsDirs=/usr/share/xsessions,/usr/share/apps/kdm/sessions,/etc/X11/dm/sessions
ClientLogFile=.xsession-errors-%s
[X-*-Greeter]
GUIStyle=Bluecurve
ColorScheme=BlueCurve.kcsrc
LogoArea=Clock
LogoPixmap=/usr/share/apps/kdm/pics/kdelogo.png
GreetFont=Sans,16,-1,5,75,0,0,0,0,0
StdFont=Sans,10,-1,5,50,0,0,0,0,0
FailFont=Sans,12,-1,5,75,0,0,0,0,0
AntiAliasing=true
UserList=false
ShowUsers=NotHidden
MinShowUID=500
SortUsers=true
FocusPasswd=true
EchoMode=OneStar
UseBackground=false
BackgroundCfg=/etc/kde/kdm/backgroundrc
ForgingSeed=1108476160
Preloader=/usr/bin/preloadkde
UseTheme=true
Theme=/usr/share/apps/kdm/themes/Bluecurve
# ¿´ÕâÒ»¶Î£¬Ð޸ĵÄÊÇServerCmd£¬Ëù×öµÄÐÞ¸ÄÒÀÏÔ¿¨¶ø¶¨ NVidiaÏÔ¿¨xv:fbo ATIÏÔ¿¨xv:pbuffer IntelÏÔ¿¨
#£¨Ö§³ÖµÄÐͺţ©Í¬NVidia xv:fbo
[X-:*-Core]
ServerAttempts=5 # ÐÞ¸ÄÕâÀïÔö¼Ó³¢ÊÔ´ÎÊý
ServerTimeout=60 # ÐÞ¸ÄÕâÀïÑÓ³¤³¬Ê±µÈ´ý
ServerCmd=/usr/local/bin/Xgl :0 -ac -accel glx:pbuffer -accel xv:fbo -fullscreen -audit 0 # ÐÞ¸ÄÕâÀïÌí¼ÓÃüÁî
ServerArgsLocal=-nolisten tcp
AllowShutdown=All
[X-:*-Greeter]
PreselectUser=Previous
FocusPasswd=true
LoginMode=DefaultLocal
[X-:0-Core]
[X-:0-Greeter]
¢ÛÏÖÔÚϵͳÆô¶¯ºóXgl¾Í»á×Ô¶¯Æô¶¯ÁË£¬µ«ÊÇ»¹²»¹»£¬Èç¹û²»Ê¹ÓÃCompiz´°¿Ú¹ÜÀíÆ÷£¬ÔòʹÓÿª·¢°æµÄXgl Server¾ÍûÓÐÒâÒåÁË£¬
±Ï¾¹´ÓÐÔÄÜÍ걸¡¢Îȶ¨ÐÔºÍËÙ¶ÈÉÏ£¬Xgl»¹Óв»×ã¡£ÒªÆôÓÃCompiz´°¿Ú¹ÜÀíÆ÷£¬¶Ô²»Í¬µÄ×ÀÃæ»·¾³ÐèÒª×ö²»Í¬µÄÅäÖÃ

Ê×ÏÈ£¬ÖÆ×÷Ò»¸ö½Å±¾£º/usr/local/bin/compizrc


#!/bin/sh
#
# compiz plugins load order: decoration wobbly fade minimize cube rotate zoom scale move resize place switcher
#
LD_LIBRARY_PATH="/usr/local/lib:/usr/local/lib/window-manager-settings:/usr/local/lib/xorg/modules/xgl:/usr/local/lib/compiz" compiz --replace gconf > /tmp/compiz-`id -un`-`date +%s`.log 2>&1 &
/usr/local/bin/gnome-window-decorator > /tmp/gnome-window-decorator-`id -un`-`date +%s`.log 2>&1 &

ʹÆä¿ÉÖ´ÐÐ

chmod 755 /usr/local/bin/compizrc
Èç¹ûʹÓÃGNOME£¬Ôò£º
´ò¿ª ×ÀÃæ ¡ú Ê×Ñ¡Ïî ¡ú ¸ü¶àÊ×Ñ¡Ïî ¡ú »á»°
Ñ¡Ôñ¡°Æô¶¯³ÌÐò¡±±êÇ©£¬Ìí¼ÓÆô¶¯³ÌÐò/usr/local/bin/compizrc
±£´æ»á»°

Èç¹ûʹÓÃKDE£¬Ôò£º
ÖÆ×÷×Ô¶¯Æô¶¯³ÌÐò×ÀÃæÎļþ ~/.kde/Autostart/Compiz.desktop


[Desktop Entry]
Name[en]=Compiz Window Manager
Name[zh_CN]=Compiz ´°¿Ú¹ÜÀíÆ÷
Comment[en]=Compiz - Composite Window Manager
Comment[zh_CN]=Compiz - »ìºÏ´°¿Ú¹ÜÀíÆ÷
Exec=/usr/local/bin/compizrc
Type=Application
Categories=Application;Utility
Encoding=UTF-8
Èç¹ûʹÓÃXfce£¬Ôò£º


[General]
SessionName=Default
SessionName[de]=Standard
DisableTcp=True
[Failsafe Session]
Count=4
Client0_Command=/usr/local/bin/compizrc # ÐÞ¸ÄÕâÀïÌí¼ÓÃüÁî£¬Ìæ´úxfwm4
Client0_PerScreen=False
Client1_Command=xfce4-panel
Client1_PerScreen=True
Client2_Command=xftaskbar4
Client2_PerScreen=True
Client3_Command=xfdesktop
Client3_PerScreen=False
[Splash Screen]
Engine=mice

¾­¹ýÉÏÊöÅäÖ㬼´¿ÉÒÔͼÐη½Ê½½øÐÐÖØÆôϵͳ£¬XglºÍCompiz×Ô¶¯ÔËÐУ»¾­¹ý²âÊÔgdm»òkdm¾ù¿ÉÕý³£ÔËÐС£
¢ÜÒÔÎı¾½çÃæÆô¶¯£¬ÈçºÎ×Ô¶¯ÔËÐÐXgl & Compiz
ºÜ¶àÈËÏñÎÒÒ»Ñù£¬ÊÇϲ»¶Æô¶¯½øÈë¿ØÖÆÌ¨£¨Console£©µÄ£¬£¨Ô­À´ÔÚÕâ˵Á˾ä·Ï»°:^P)ÆäʵLinux¿ØÖÆÌ¨ÏµĹ¦ÄܾͺÜÇ¿º·ÁË£¬Ö»ÒªÄãϰ¹ß£»
Õâʱ¾ÍÐèÒªÒ»¸öÆô¶¯½Å±¾£¬ÏÂÃæÊÇÎÒдµÄÒ»¸ö¼òµ¥½Å±¾£¬¹©²Î¿¼£º


#!/bin/bash
# written by aaccdd(thomas.zhuzhy@gmail.com)
# progname: startXgl
# save as /usr/local/bin, or wherever you'd like to
# What will startXgl do:
# 1st, check out which desktop you're going to run
# if that is one of GNOME, KDE, XFCE, proceed
# otherwise, start default X
# 2nd, check out whether NV/ATI Driver installed"
# with a possitive result, proceed to start
# Xgl and Compiz
#
# start Xgl
#
startXgl(){
VCARD=; VCDRNV=0; VCDRATI=0; VCDRINTEL=0
[ -n "$(/sbin/lspci|sed -n '/VGA.*nVidia/p')" ] && VCARD=nv
[ -n "$(/sbin/lspci|sed -n '/VGA.*ATI/p')" ] && VCARD=ati
[ -n "$(/sbin/lspci|sed -n '/VGA.*Intel/p')" ] && VCARD=intel
case "$VCARD" in
nv) [ -n "$(sed -n '/nvidia/p' /etc/X11/xorg.conf)" ] && VCDRNV=1
[ "$VCDRNV" -eq 0 ] && echo -e "\tDriver not installed" && exit 1
Xgl :1 -ac -accel glx:pbuffer -accel xv:fbo -audit 0 &
;;
ati) [ -n "$(sed -n '/fglrx/p' /etc/X11/xorg.conf)" ] && VCDRATI=1
[ "$VCDRATI" -eq 0 ] && echo -e "\tDriver not installed" && exit 1
Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer -audit 0 &
;;
intel) [ -n "$(sed -n '/i810/p' /etc/X11/xorg.conf)" ] && VCDRINTEL=1
[ "$VCDRINTEL" -eq 0 ] && echo -e "\tDriver may not be supported" && exit 1
Xgl :1 -ac -accel glx:pbuffer -accel xv:fbo -audit 0 &
;;
*) startx ;;
esac
/usr/local/bin/compizrc
DISPLAY=:1 eval $(dbus-launch --auto-syntax)
DISPLAY=:1 $wmnow &
DISPLAY=:1 exec /etc/X11/xinit/xinitrc.d/xinput.sh
}
wmnow=
which xterm 2>/dev/null && wmnow="xterm"
if [ -e $HOME/.Xclients-default ]
then
wmnow=$(sed -n 's/^WM=\"\(.*\)\"$/\1/p' $HOME/.Xclients-default )
elif [ $(which gnome-session 2>/dev/null) ]
then wmnow="gnome-session"
elif [ $(which startkde 2>/dev/null) ]
then wmnow="startkde"
fi
case "$wmnow" in
gnome-session|startkde|startxfce4) startXgl;;
*) startx;;
esac

ÓÐÈË˵ΪʲôÊÇdisplay :1¶ø²»ÊÇ0ÄØ£¿ÕâÒª¿´ÄãµÄ»úÆ÷ÅäÖúÍÔËÐз½Ê½£¬0²»ÄÜÐоͳ¢ÊÔ1¡£¶øÕâ¸ö½Å±¾Ô¶²»ÍêÉÆ£¬
²»ÊÇ˵ÔËÐо͸ö½Å±¾²»³É¹¦£¬¾Í²»ÄÜÔËÐÐXgl & Compiz£¬Çë¸ù¾Ý×Ô¼ºµÄʵ¼ÊÇé¿öÐ޸ġ¢Ê¹Óá£
Èç¹ûÒ²ÏëµÇ¼×Ô¶¯Æô¶¯£¬ÔòÐÞ¸Ä ~/.bash_profile


echo "[ x"DISPLAY" = x"" ] && startXgl " >> ~/.bash_profile
¢Ý²âÊÔÊÇ·ñ°²×°³É¹¦£º
µ½ÕâÀï»ù±¾Íê³ÉÁËÅäÖã¬Ê£ÏµľÍÊÇÔËÐÐÁË¡£½¨Òéн¨Ò»¸öÓû§£¬Èçcompiz²âÊÔһϡ£Êµ¼ÊÉÏ£¬°²×°Íêrpm°üºó£¬
²»ÐèÒªÖØÆôϵͳ¾Í¿ÉÒÔʹÓÃÁË¡£µ±È»Ç°ÌáÊDzâÊԳɹ¦¡£

Ctrl + Alt + F1£¨1-6£©Çл»µ½¿ØÖÆÌ¨Ï£¬Èç¹ûÄãÊÇͼÐη½Ê½Æô¶¯µÄ¡£ÔËÐÐÃüÁ


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

Èç¹ûÊÇatiÏÔ¿¨Ê¹ÓÃxv:pbuffer£»Èç¹û±¨´í£¬Badlength...£¬XglǰʹÓòÎÊýLD_PRELOAD=/usr/lib/libGL.so ¡£
Èç¹û³É¹¦£¬Äã»á¿´µ½XÆô¶¯£¬ÓÐÒ»¸ö²æÐεÄÊó±ê±ê¼Ç¡£Õâ˵Ã÷XglÔËÐгɹ¦¡£
ÓÐÈËÓÖÎÊÁË£¬ÎªÊ²Ã´ÊÇ:1£¬ÄØ£¿×¢Òâһϣ¬Èç¹ûÄãÊÇͼÐÎÆô¶¯£¬´Ëʱ:0ÒѾ­Õ¼ÓÃÁË¡£

DISPLAY=:1 compiz --replace gconf &
DISPLAY=:1 gnome-window-decorator &

Èç¹û´°¿Ú±ä³ÉÀ¶É«£¬³öÏÖÊó±ê¼üÍ·£¬CompizÒѾ­ÔËÐС£

DISPLAY=:1 xterm &

ÕâʱÄã¾Í¿´µ½Ò»¸öÔÚXgl & Compiz»·¾³ÏÂxtermÖն˵ÄÑù×ÓÁË¡£
¢ÞΪʲôÎÒÔËÐв»ÁË£¿
Ê×ÏÈ¿´µÄÓ²¼þÅäÖ㬲ο¼£ºhttp://gentoo-wiki.com/HOWTO_XGL#Hardware_Prerequisites
Æä´Î£¬²é¿´ÊÇ·ñÅäÖÃÎļþÓÐÎó
ÔٴΣ¬²é¿´gconf¼üÖµÊÇ·ñÓÐÎó
²¹³ä£º
ÓÐÐֵܷ´Ó³ÔËÐÐʱ´ò²»¿ªDISPLAY, ±äͨµÄ·½·¨£º
ÐÞ¸ÄstartXgl½Å±¾£¬Ô缸ÌìµÄ½Å±¾ÀïʹÓõÄÊÇDISPLAY=:1£¬¸Ä³ÉDISPLAY=:0£»
»òÐÞ¸Ä/etc/X11/xdm/Xservers£¬Ìí¼ÓÒ»ÐУº


:0 local /usr/bin/X
:1 local /usr/bin/X

ÉÏÃæËµµÄÊÇͼÐÎÆô¶¯×´Ì¬£»
fc5µÄÉ豸ÓÉudev¹ÜÀí£¬ÔÚ¿ØÖÆÌ¨ÏÂÉú³ÉµÄÉ豸ȨÏÞ£¬ÓÉpam°´ÕÕϵͳȨÏÞ¿ØÖÆÎļþµÄÉèÖþö¶¨£¬
±ÈÈçÏÔ¿¨É豸£¬Ä¬ÈϵÄȨÏÞÊÇ600£¨Óû§¶Áд£©Òò¶øµ±Çл»Óû§£¨root³ýÍ⣩ºó£¬ÊÇÎÞ·¨Ê¹ÓøÃÉ豸µÄ¡£
½â¾öµÄ°ì·¨ÊÇÐÞ¸ÄȨÏÞÉèÖá£
¾Ù¸öÀý×Ó£ºÔÚĬÈϵĿØÖÆÌ¨È¨ÏÞ¿ØÖÆÎļþÖУ¨/etc/security/console.perms.d/50-default.perms£©ÉùÒôºÍÏÔ¿¨É豸ȨÏÞ¶¼ÊÇ0600£¬¼´½öÊôÖ÷¶Áд£¬ÒªÈõǼµÄÓû§¶¼¿ÉÒÔ¶Áд£¨Ê¹Óã©£¬Ôò¿ÉÉú³ÉÎļþ60-custom.perms£º

cat > /etc/security/console.perms.d/60-custom.perms << EOF
=/dev/dsp* /dev/audio* /dev/midi* \
/dev/mixer* /dev/sequencer \
/dev/sound/* /dev/beep \
/dev/snd/*
=/dev/nvidia* /dev/3dfx* /dev/dri/card*
# device permission definition
0666 0666 root
0666 0666 root
EOF

ÕâÑù£¬ÏµÍ³Æô¶¯Ê±»á×Ô¶¯ÉèÖÃÉùÒôºÍÏÔ¿¨É豸ΪÓû§¾ù¿É¶Áд¡£
Áù дÔÚºóÃæ£º
±¾ÎÄÊÇ×÷ÕßÔ­´´£¬ÈçÓдíÎóÒÅ©£¬¾´ÇëÖ¸³ö¡£¾­×÷ÕßÑéÖ¤£¬AiglxÆô¶¯Ïà¶Ô¼ò±ã£¬Xgl & CompizÔÚgnome¡¢kde¡¢xfceÉ϶¼ÄÜ
ÔËÐУ¬±È½ÏÎȶ¨£¬ÔËÐÐÒ»Öܶàʱ¼äÀïÖ»ÓÐÒ»´ÎÊÇÊÖÎó°´ÁËShift + BackspaceɱËÀÁËXgl£¬Ã»ÓгöÏÖ¹ý±ÀÀ£ÏÖÏ󣬶àÊýÓ¦ÓóÌÐòÔË
ÐÐÕý³£¡£µ«¸÷ÈË»úÆ÷ÅäÖöàÓв»Í¬£¬ÈçÓв»ÊʺÏÖ®´¦£¬ÇëÖ¸ÕýÅúÆÀ¡£±¾ÎÄ×ñÑ­GPL·¢²¼£¬±£Áôԭʼ·¢²¼ÐÅÏ¢»ù´¡ÉÏ£¬¿ÉÒÔ×ÔÓÉÐ޸ģ¬
´«²¥¡£Òò°´ÎÄÖÐËùÊö·½·¨£¬Ôì³ÉËðʧµÄ£¬×÷Õß²»³Ðµ£ÈκÎÔðÈΡ£

ÓÉÓÚXglºÍCompizÈÔÈ»´¦ÓÚ¿ìËÙ¿ª·¢×´Ì¬£¬ËäÈ»ÎһᾡÁ¿¸üУ¬µ«ÊÇÎĵµÖÐËùÊöÄÚÈݲ»Äܱ£Ö¤ÓÚ×îеİ汾ͬ ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. chippendale ÓÚ 2006-12-01 14:26:50·¢±í:

    ºÃ³¤£¬ºÃÉî°¡¡£