Appendice 10: il futuro: Xgl e Compiz su (K)Ubuntu.


Come è ovvio Linux si evolve di giorno in giorno.
Uno dei cambiamenti più divertenti riguarda l'aspetto grafico del desktop. Mi riferisco a xgl e compiz che indubbiamente rendono possibili effetti grafici sino a poco tempo fa impensabili.
Questa vuole essere una piccola guida per l'installazione di xgl e compiz su KUbuntu (con KDE). Non dovrebbe essere troppo difficile adattarla per Gnome o per altri sistemi operativi.

Il progetto Compiz-Quinn (quello di cui si parla qui) ha cambiato nome ed è diventato Beryl.
Non solo: ora con il nuovo server X (vers. > 7.1) è possibile installarlo senza ricorrere a xgl, anche se è possibile ancora la soluzione xgl + compiz (o beryl).

La descrizione seguente vale per (K)Ubuntu, nel senso che le repositories indicate hanno pacchetti per questa distribuzione.
I file per avviare Compiz, invece, sono indipendenti dalle distribuzioni (al massimo può essere diversa la directory di xsessions).

Repositories [per (K)Ubuntu]
Aggiungete alle vostre repositories, le seguenti (ne basta una visto che sono mirrors una dell'altra, ma abbondare è meglio...):

 deb http://www.beerorkid.com/compiz dapper main
 deb http://media.blutkind.org/xgl/ dapper main
 deb http://compiz-mirror.lupine.me.uk/ dapper main
 deb http://ubuntu.compiz.net/ dapper main
 deb http://xgl.compiz.info/ dapper main aiglx
 deb http://ubuntu.systemadministrator.org dapper all

per amd64:
 deb http://www.beerorkid.com/compiz dapper main-amd64
 deb http://media.blutkind.org/xgl/ dapper main.amd64
 deb http://compiz-mirror.lupine.me.uk/ dapper main-amd64
 deb http://ubuntu.compiz.net/ dapper main-amd64
 deb http://xgl.compiz.info/ dapper main-amd64 aiglx
 deb http://ubuntu.systemadministrator.org dapper all
deb http://raof.dyndns.org/falcon/ dapper eyecandy 

aggiungete le chiavi png:
da console digitate:

 wget http://www.beerorkid.com/compiz/quinn.key.asc -O - | sudo apt-key add -
 wget http://media.blutkind.org/xgl/quinn.key.asc -O - | sudo apt-key add -
 wget http://compiz-mirror.lupine.me.uk/quinn.key.asc -O - | sudo apt-key add -
 wget http://ubuntu.compiz.net/quinn.key.asc -O - | sudo apt-key add


Pacchetti da installare

xserver-xgl
compiz
compiz-core
compiz-plugins
csm
compiz-gnome (lasciate perdere compiz-kde che non è aggiornato e non funziona!)
cgwd
cgwd-themes
backstep (lo si trova qui: AMD64.deb o i386.deb [per(K)Ubuntu]
xwinwrap (per avere gli sfondi animati)

Creazione scripts

Con un editor di testo create i seguenti due script:

[Desktop Entry]
Comment=Lancia compiz con KDE
Comment[it]=Lancia compiz con KDE
Encoding=UTF-8
Exec=/usr/bin/start_compiz-kde
GenericName=
GenericName[it]=
Icon=
MimeType=
Name=Compiz-KDE
Name[it]=Compiz-KDE
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

e salvatelo in /usr/share/xsessions col nome compiz-KDE.desktop
Servirà a far comparire nella schermata di login anche l'opzione compiz-kde (oltre alle normali KDE, Gnome, ecc.) in modo da avviare il sistema con compiz.
Il secondo script è:

#!/bin/sh
#window manager for :0
kwin&
#start backstep to avoid difficulties minimizing on :0
backstep&
sleep 3

 # Start up Xgl, compiz
 # Run Xgl server on :1, on top of normal X
 /usr/bin/Xgl :1 -fullscreen -ac -accel xv:fbo -accel glx:pbuffer & 
 #sleep for 3 seconds to make sure Xgl started
 sleep 3

 # Tell subsequent X programs to access the Xgl server at :1
 DISPLAY=:1
 ##white and transparent windows in some games
 #XLIB_SKIP_ARGB_VISUALS=1
 # Start cgwdr and log result
 cgwd && > ~/cgwd-window.log 2>&1 &
 #start compiz and log results
 compiz --replace dbus csm && > ~/compiz.log 2>&1 &
 #Fix Shift+BackSpace
 xmodmap -e "keycode 22 = BackSpace BackSpace Terminate_Server"
 # Start KDE
 exec startkde

(Per ATI: sotituire  /usr/bin/Xgl :1 -fullscreen -ac -accel xv:fbo -accel glx:pbuffer &  con  /usr/bin/Xgl :1 -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer &)
(Per schede Intel, -ac -accel xv:fbo va sostituito con -ac -accel xv:pbuffer).

Salvatelo in /usr/bin col nome start_compiz-kde e rendetelo eseguibile.

Le prime 5 righe (seguenti #!/bin/sh) possono essere omesse: servono per lanciare determinati programmi sul sottostante server X. Per fare un esempio Kaffeine funziona anche su xgl, ma richiede un maggior consumo della CPU, con conseguente riscaldamento e rumore delle ventole. Per evitarlo è possibile lanciarlo sul sottostante server X. Ciò vale anche per i giochi che utilizzano opengl. Vediamo come sistemare questo aspetto.
I
Primo metodo:
Si fa partire il programma desiderato anteponendogli DISPLAY=:0
Ad esempio per lanciare Kaffeine sul server X si dà il comando:
DISPLAY=:0 /usr/bin/kaffeine
(ovviamente lo si può inserire nel menu).

Secondo metodo:
Si creano delle 'diversion' per nvidia-setting e per i programmi che si vuol lanciare sul server X. In questo modo è sempre possibile aggiornarli con i mezzi consueti (Adept).
Cominciamo con Nvidia-setting. Lanciare il comando:

sudo dpkg-divert --divert /usr/bin/nvidia-settings.real --rename /u
(per schede ATI: sudo dpkg-divert --divert /usr/bin/fireglcontrolpanel.real --rename /usr/bin/fireglcontrolpanel e sudo dpkg-divert --divert /usr/bin/aticonfig.real --rename /usr/bin/aticonfig)

Per le applicazioni che ci interessano (ad esempio Kaffeine):

sudo dpkg-divert --divert /usr/bin/kaffeine.real --rename /usr/bin/kaffeine

e creiamo i files (che renderemo eseguibili):

#!/bin/sh
DISPLAY=:0 /usr/bin/nvidia-settings.real "$@"
salvato in /usr/bin col nome nvidia-setting

(per schede ATI:
#!/bin/sh
DISPLAY=:0 /usr/bin/fireglcontrolpanel.real "$@"
salvato in  /usr/bin come fireglcontrolpanel
e
#!/bin/sh
DISPLAY=:0 /usr/bin/aticonfig.real "$@"
salvato in /usr/bin come aticonfig)

per kaffeine:

#!/bin/sh
DISPLAY=:0 /usr/bin/kaffeine.real "$@"
che salveremo in /usr/bin col nome kaffeine (rendendolo eseguibile)

xorg.conf

ATTENZIONE:
xorg.conf dovrebbe essere già configurato per la propria scheda grafica (con glxinfo si può vedere se l'accelerazione 3D è abilitata). Quello che segue NON è una guida per l'ottimizzazione di xorg.conf, ma semplicemente riporto alcune opzioni che ho abilitato (per il server X) per la mia scheda.

Nella sezione Modules togliete 'Load dri' mentre deve essere presente 'Load glx' (vale per qualsiasi scheda NVidia)

Nella sezione Device, oltre al driver nvidia (fglrx per ATI), mettete  Option        "RenderAccel"    "true" e Option          "AllowGLXWithComposite" "true" (accelera la grafica per il server X e va bene anche con Xgl, o almeno non fa male).

Se avete abilitato l'opzione 'composite=true' (serve per le ombre su X), potete disabilitarla: compiz ha già composite incorporato e gira più fluido senza questa opzione in xorg.conf. Il server X 7.1 ha già composite integrato, quindi anche in questo caso l'opzione non serve.

A questo punto riavviate il sistema, al login scegliete compiz-kde e ... buona fortuna.

KPager vede un unico desktop. Esiste però un kpager modificato che vede tutti e quattro le facce di compiz. Lo petete scaricare a questo link: kicker-compiz:
Con la versione di KDE 3.5.5 l'originario KPager è stato modificato in modo da vedere le facce del cubo.

Alcuni link utili:
Compiz.net (Forums)
Ubuntu - CompositeManager/Xgl
Ubuntu - CompositeManager/InstallingCompiz
Ubuntu - CompositeManager/ConfiguringCompiz

per vedere tre filmati flash con le novità di Linux, Apple e Windows Vista:
Linux XGL/Compiz Graphics to Apple Aqua & Vista Aero















Indice generale

Valid HTML 4.01 Transitional