Mauro Graziani
Compiz Tips & Tricks
Guida alla configurazione di Compiz

Nota: questa pagina è stata aggiornata a partire dalla precedente che era stata scritta ai tempi di Ubuntu Linux 7.10 (Gutsy Gibbon).

Benvenuti,

questa pagina è dedicata alla configurazione di Compiz su un sistema Unix. Come sistema di riferimento utilizzo Ubuntu Linux 10.04 (Lucid Linx), ma tutti i consigli funzionano anche su altre distribuzioni purché Compiz sia stato correttamente installato, compreso il suo programma di configurazione.

Cos'è Compiz

Si tratta di un desktop 3D, un compositing window manager per X Window System (su Unix e di conseguenza Linux (e Mac OSX)).È in sostanza un software che gestisce sia l'estetica e il piazzamento delle finestre, sia una serie di effetti che possono essere applicati a tali finestre (a partire da semplici trasparenze e ombreggiature fino ad arrivare a complessi effetti tridimensionali).
Nel suo utilizzo più semplice fornisce solo alcuni effetti applicati a finestre, dialog box e menu, in pratica un semplice abbellimento, ma in quello più spinto, di cui parleremo qui, è un nuovo tipo di desktop che aggiunge una terza dimensione permettendo di gestire meglio una notevole quantità  di finestre.
In effetti, Compiz non serve a quelli che lavorano con una o due finestre, magari a schermo intero. Serve a coloro che, per qualche ragione, sono abituati a gestire diverse applicazioni contemporaneamente, necessariamente disperse fra più desktop (Linux ha un desktop multiplo).
Per fare un esempio, in questo momento sto creando questa pagina ed ho aperto:
Se tutte queste applicazioni fossero sullo stesso desktop, un po' di confusione ci sarebbe. Fortunatamente in Linux disponiamo di vari desktop (io ne uso 4), per cui in ogni schermata ho al massimo un paio di applicazioni. Anche così, però, il desktop switcher mostra i suoi limiti e anch'io a volte non ricordo immediatamente in quale schermata si trova una applicazione.
Con Compiz, posso passare facilmente da un desktop all'altro vedendo le applicazioni contenute, ma anche da una applicazione all'altra indipendentemente dal desktop in cui si trova. Inoltre esiste un utile sistema per riorganizzare le varie finestre e ridistribuirle fra i desktop, così come una modalità che definisce dei gruppi di finestre a cui applicare modifiche di massa.

Tanto per dare una prima occhiata all'ormai famosissimo cubo, il mio desktop, adesso, è questo (cliccate l'immagine per ingrandirla, poi tornate qui con Back/Indietro). Oppure potete guardarvi altri screenshot direttamente da compiz.org.
3D desktop
Personalmente non ho mai amato queste cose perché le ho sempre considerate meri effetti che servono solo a sprecare CPU. Ho attivato Compiz un po’ per curiosità, un po’ per aggiornarmi ed ero piuttosto scettico.
Invece devo dire che lo trovo proprio divertente. Le trasparenze, tutti i modi in cui le finestre appaiono e scompaiono e il cubo rendono il computer un po’ meno prevedibile e più vario. Dopo averlo attivato, ho passato almeno 2 ore a configurarlo. È meglio di un gioco (in realtà per me è un gioco).
La cosa che mi sconvolge sempre un po’ è quello spazio virtuale in cui ruota il cubo. Finora avevo considerato il desktop come qualcosa di essenzialmente piatto. Le finestre passavano l’una sull’altra, ma senza nessuna profondità. Compiz, invece, crea (o rivela) uno spazio al di là del desktop e volte mi trovo a chiedermi cos’è, cosa contiene, oltre al mio desktop?
Infine, se fino a qualche anno fa usare Compiz sui portatili era un po' stressante per la CPU (la ventola andava continuamente), oggi, con i dual core, funziona tranquillamente.

Installare Compiz

Su Ubuntu Lucid, Compiz è già installato, anzi, se la scheda grafica è abbastanza potente e correttamente configurata, potrebbe essere attivato per default, almeno su alcuni effetti, quindi molti utenti  possono saltare questo capitolo.
In altre distribuzioni, forse deve essere installato. Ovviamente, se è già pacchettizzato secondo il sistema usato nella distribuzione (apt, deb, rpm), la cosa è facile, altrimenti vi rinvio alle istruzioni di installazione in compiz.org.
Per darvi qualche indicazione, i pacchetti relativi a compiz in Ubuntu Lucid, generalmente installati di default, sono

compiz 1:0.8.4-0ubuntu15
OpenGL window and compositing manager
compiz-core 1:0.8.4-0ubuntu15 OpenGL window and compositing manager
compiz-fusion-plugins-extra 0.8.4-0ubuntu2
Collection of extra plugins from OpenCompositing for Compiz
potrebbe non essere installato di default
compiz-fusion-plugins-main 0.8.4-0ubuntu3
Collection of plugins from OpenCompositing for Compiz
compiz-gnome o compiz-kde
1:0.8.4-0ubuntu15
OpenGL window and compositing manager - GNOME window decorator
se si usa KDE, ci sarà compiz-kde
compiz-plugins 1:0.8.4-0ubuntu15 OpenGL window and compositing manager - plugins
compizconfig-backend-gconf
0.8.4-0ubuntu2
Settings library for plugins - OpenCompositing Project
libcompizconfig0 0.8.4-0ubuntu2 Settings library for plugins - OpenCompositing Project
libdecoration0 1:0.8.4-0ubuntu15 Compiz window decoration library

Naturalmente si possono installare anche altri pacchetti. Questi sembrano essere quelli essenziali.

Attivare Compiz

Attivare Compiz è semplice, se tutto è a posto. Ora faremo una prova. Selezionate, da menu:
System -> Preferences -> Appearance
il mio sistema è in inglese e io uso Gnome un po' vecchio stile, con la taskbar in basso, ma non dovrebbe essere difficile trovarlo anche in italiano; sarà qualcosa come Sistema -> Preferenze -> Aspetto; l'immagine qui sotto aiuta
Selezione menu
e si aprirà un box con 4 o 5 tab (dipende dalla vostra versione di ubuntu: fino alla 9.04 erano 5). All'apertura è selezionato quello relativo ai temi. Selezionate, invece, Visual Effects (Effetti Visivi) e  dovreste vedere qualcosa come questo.
Desktop appearance
Per default dovrebbe essere selezionato Normal. Ora,
  • se da voi è selezionato Normal o Extra siete già a posto: avete Compiz funzionante e con Extra dovreste già vedere qualche effetto, p.es. le finestre che si ripiegano e sfumano  quando le chiudete
  • se da voi è selezionato None (nessuno), selezionate Normal e aspettate. Le finestre potrebbero scomparire dallo schermo per vari secondi. Se, quando riappaiono è selezionato Normal e non appare nessun messaggio, tutto ok: chiudendo la finestra dovreste già vedere degli effetti.
  • Se invece Normal non è selezionabile o vi appare un messaggio di errore, passate al capitolo seguente (Errori, qui sotto).
Cominciate a provare la vostra macchina per vedere quanto rallenta; dipende dalla cpu e soprattutto dalla scheda grafica. L'installazione di un misuratore del carico del sistema, tipo GKrellm o l'applet System Monitor aiuta a valutare. Al limite lanciate il monitor di sistema (System -> Administration -> System Monitor) e guardate il carico della cpu.
Il mio portatile è un sistema dual-core Intel T7500 (2.2 GHz) e Compiz e Xorg, insieme, rubano mediamente un 4/5% del carico delle CPU. Ecco le prime linee di un top:
top - 17:02:21 up  2:15,  3 users,  load average: 0.51, 0.57, 0.63
Tasks: 180 total,   3 running, 177 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.8%us,  3.8%sy,  0.0%ni, 92.3%id,  0.0%wa,  0.2%hi,  0.0%si,  0.0%st
Mem:   2060524k total,  1608920k used,   451604k free,   274308k buffers
Swap:  4096532k total,        0k used,  4096532k free,   812728k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1130 root      20   0 64684  49m  16m R    6  2.5  10:47.38 Xorg
 1745 mauro1    20   0 77160  62m  17m R    6  3.1   9:02.47 compiz
1759 mauro1    20   0 39444  14m  11m S    1  0.7   1:59.09 gkrellm
Comunque Compiz gira senza problemi anche su un desktop da 1.5 GHz, quindi siate fiduciosi.

Errori!

Gli errori che possono verificarsi sono diversi in base alla scheda che avete e dipendono dal supporto GLX. Compiz, infatti, usa OpenGL.
Personalmente, non ho mai avuto problemi con le Nvidia che hanno un supporto GLX molto buono con i driver del produttore (purtroppo proprietari, ma non si può avere tutto dalla vita). Al limite quello che può capitarvi è di non avere il driver proprietario attivato. Selezionate System -> Administration -> Restricted Drivers Manager e controllate. Con l'Nvidia dovete attivarlo.
Le schede ATI avevano qualche un problema ai tempi di Ubuntu Gutsy, ma ormai è stato superato e ho verificato sul mio vecchio portatile che funzionano senza problemi.
Per altre schede, francamente non so cosa dire. Tenete conto, comunque, che il lavoro di Compiz non ricade tanto sul processore, quanto sulla GPU della scheda grafica che deve fornire una buona accelerazione hardware e soprattutto essere ben supportata dal sistema. È inutile, infatti, avere una scheda ultimo modello se la vostra distribuzione non la supporta.
Per verificare, potere aprire un terminale e lanciare il comando
glxinfo | less
La seconda parte (less) serve a paginare il risultato che è molto lungo (NB: glxinfo fa parte del pacchetto mesa-utils; se vi serve installatelo: sudo apt-get install mesa-utils).
Se avete il supporto GLX, le prime righe dovrebbero contenere l'asserzione
direct rendering: Yes
come qui
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
Segue una lunga lista di estensioni supportate, in mezzo alla quale si trova anche la versione del driver
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 8600M GT/PCI/SSE2
OpenGL version string: 3.2.0 NVIDIA 195.36.24
OpenGL shading language version string: 1.50 NVIDIA via Cg compiler
Notate che potreste avere una scheda Nvidia per cui non viene installato di default il driver proprietario solo perché fuori produzione (è capitato a un mio allievo con un Asus in svendita). A questo punto si prova ad installare la versione più recente del driver proprietario e di solito funziona.

Configurare Compiz

A questo punto spero abbiate un compiz funzionante. Ora comincia il divertimento.
Sebbene in ubuntu Compiz sia già attivo, il cubo non è attivato in favore di un desktop switcher piatto, per cui dovete attivarlo voi. Per poter configurare a piacimento questo oggetto, dovete installare il suo gestore che è il package compizconfig-settings-manager. Quindi da terminale date un
sudo apt-get install compizconfig-settings-manager
oppure usate Synaptic.
Il programma installato è questo
Compiz config
che si lancia via menu con System → Preferences → CompizConfig Settings Manager.
Da qui potete attivare e modificare una miriade di opzioni fino a perdervi. Non temete di fare modifiche perché per ogni valore esiste un pulsante che ripristina il default.
Come vedete, le varie funzioni sono ordinate per categorie
Inoltre potete salvare la configurazione creando un nuovo profilo. Cliccate Preferences (Preferenze) che vedete a sin, sopra il pulsante close.
Nel riquadro Profile, premete il + e create un nuovo profilo che potete chiamare come volete (es. mycompiz). A questo punto premete Export e salvatelo come mycompiz.profile (dovete mettere voi l'estensione, il software non lo fa).
In questo modo avete un profilo salvato che potete sempre ricaricare con Import. Ricordare di aggiornarlo quando fate cambiamenti importanti.

Vedere il cubo

Per prima cosa dovete assicurarvi di avere la giusta dimensione di desktop. Cliccate su General Options (in alto in figura) e si aprirà un box con numerosi Tab in alto. Andate su Desktop Size e settatelo come segue:
Premete Back (in basso a sin.) per tornare alla pagina principale.
Andate nella categoria Desktop e attivate Desktop Cube (in mezzo in figura). Il sistema vi dirà che è necessario disattivare Desktop Plane o Desktop Wall (in base a quella che era attiva per default). Ditegli di disattivarla (queste modalità di visualizzazione sono alternative).
Ora, sempre nella categoria Desktop, attivate Rotate Cube.
Bene, adesso sulla tastiera premete insieme Control + Altern (Ctrl+Alt, entrambi a sinistra della barra spazio; att.ne: non Alt.Gr). Tenendoli premuti cliccate con il tasto sinistro del mouse e muovete il maledetto mouse verso sinistra o destra ed ecco il cubo!
Rilasciando il mouse selezionate il desktop. Divertitevi.

NB: è possibile che, invece di un cubo, vediate un cilindro. Dipende da alcune impostazioni che trovate qui sotto. Il default, in effetti, è cilindrico.

Abbellire il cubo

the cube Ok, abbiamo il cubo che ruota in uno spazio nero e indefinito.
Così com'è è il minimo. Ora possiamo abbellirlo con qualche effetto.
cube reflection

Deformazione: cilindro

deformazione: sfera

Riflessioni e Deformazioni

Sempre usando il Compiz Settings Manager, andate in Effects e attivate Cube Reflection and Deformation.
(att.ne: non Reflection e basta, ma Cube Reflection and Deformation)
Questo plugin attiva la riflessione sul pavimento, creando un ambiente intorno al cubo. Inoltre permette di cambiare la forma del cubo, rendendolo simile a un cilindo o a una sfera.

Se ora cliccate sull'icona di Cube Reflection and Deformation e andate sul tab Reflection, potete modificare i parametri della riflessione: colori, intensità e zoom e modalità.
Default buttonNon abbiate paura a provare perché, anche in caso di disastri, baste premere sul bottoncino con lo scopino che vedete qui a fianco. È posizionato accanto a ogni valore e permette di ripristinare il default.
In pratica:
  • Ground color near/far determinano i colori della sfumatura del pavimento vicino e lontano
  • Reflection ground size controlla l'estensione del pavimento rispetto al nero di sfondo
  • Intensity è l'intensità della riflessione (notate la differenza fra le fig. a sin. e quella nella riga sotto)
  • I due Zoom fanno sì che, mentre lo muovete, il cubo zoomi fino a riempire lo schermo
  • Reflection mode è la modalità di riflessione e influisce sul movimento del cubo
Il tab Deformation, invece, imposta la forma del cubo, che può diventare un cilindro o una sfera, come vedete nelle immagini a sinistra.
La sfera ha dei parametri di controllo che permettono di deformarla e di decidere se l'aspetto sferico debba essere applicato anche alle facce sup. e inf.

NB: sul vostro cubo, le finestre delle applicazioni potrebbero essere ancora incollate al cubo come nelle prime due immagini, non staccate come in queste ultime immagini. Vedremo più tardi come fare.

immagini sopra/sotto

Sopra/Sotto

Sempre in Cube Reflection and Deformation si può controllare l'aspetto della faccia inferiore e superiore del cubo. Cliccate il tab Cube Caps
Notate le righe Bindings, Behaviour, Appearance che si espandono cliccando sul triangolino a sinistra. Da qui potete scegliere il colore della faccia inferiore e superiore e anche inserire delle immagini (Appearance), controllando come l'immagine debba essere adattata alla faccia (Behaviour).
Per mettere una vostra immagine, cliccate Appearance, poi New e scegliete, sia per la faccia superiore (Top) che inferiore (Bottom). Eliminate l'immagine di default oppure portate la vostra sopra l'altra con le frecce.
In Behaviour dovete attivare Draw top e Draw bottom. Poi potete attivare Scale per fare in modo che l'immagine venga estesa all'intera faccia (è uno zoom, non un tile).
Adjust, invece, fa sì che, quando attivate il cubo, le immagini delle facce sup/inf siano correttamente orientate verso di voi. Non è del tutto necessario.
Otterrete un cubo simile a quello che vedete qui a fianco (ovviamente con le vostre immagini).

transparent cube

Cubo Trasparente

Io non lo uso perché, a mio avviso, rallenta il sistema e non è molto utile, però, almeno una volta è bello da vedere, soprattutto se dentro qualcosa si muove.
Cliccate su Desktop Cube (è nella categoria Desktop).
Cliccate sul tab Transparent Cube portate il primo valore (opacity during rotation) a circa 40. In tal modo il cubo diventa trasparente solo quando ruota, come nell'immagine a sin.
Il secondo valore (opacity when not rotating) attiva la trasparenza anche a cubo fermo. Vedete voi.
Il check transparency only on mouse rotate serve a limitare la trasparenza solo alla rotazione guidata dal mouse, non a quella attivata dai tasti.

cube gears

Il motore del cubo


Ora andate in Effects e attivate Cube Gears.
In questo modo, quando il cubo è trasparente, si vede al suo interno una animazione con tre ingranaggi che ruotano. È carina, ma non serve a niente se non a rendere invidiosi quelli di windoze e a far incazzare moltissimo il processore che ve ne dirà di tutti i colori.
Questo effetto non ha opzioni.

Fino alla versione 9.10 (Karmic Koala) esisteva anche il plugin Atlantis che mostrava un simpatico acquario all'interno del cubo. A partire dalla 10.04 sembra scomparso.

I Tasti, il mouse e le azioni

Facciamo un breve discorso sui comandi di Compiz.
In Compiz, le varie funzioni si possono attivare in più modi:

command icons Solo mouse (bottone e movimento)

Mouse + tastiera (combinazione di tasti)

Solo tastiera con combinazioni di tasti (quasi sempre uno o più tasti di controllo come Ctrl, Alt, Shift, Super + un tasto alfanumero o le frecce)

Posizione del mouse: il comando scatta quando il puntatore del mouse raggiunge una posizione predefinita sullo schermo.
Le aree interessate sono i 4 angoli e i 4 lati dello schermo.
Le icone (fig a sin) indicano il tipo di comando: rispettivamente mouse (con o senza tastiera), solo tastiera, posizione del mouse (NB: le vostre icone potrebbero essere leggermente diverse perché dipendono dal tema grafico di Gnome).
Le vedrete nel capitolo successivo quando paleremo dei Bindings (collegamenti).

Ora vedremo i diversi modi con cui attivare il cubo e anche altri sistemi per navigare fra i desktop.
Prima, però, dobbiamo definire una volta per tutte i nomi dei tasti e le azioni. Tornate sempre a questo capitolo quando non trovate un tasto.

Cambiare desktop usando il cubo

Ci sono vari sistemi per passare da un desktop a un altro usando il cubo molti dei quali sono già attivati per default.
Se andate su Rotate Cube (categoria Desktop) e lo attivate, li potrete vedere e cambiare.
Qui trovate 2 tab:
Vediamo appunto questi collegamenti:

In Rotate Cube, tab Bindings, cliccate su Rotate Cube. In questo modo si espandono i comandi per la rotazione normale
Esistono altri due comandi di rotazione legati al mouse e non elencati qui, ma attivi di default in Compiz
Ora chiudete la riga Rotate Cube ed espandete la successiva: Rotate to Cube Face.
Qui si possono attivare delle combinazioni di tasti che permettono di raggiungere, con una sola mossa, una determinata faccia. Con il cubo (4 facce) può essere utile andare di colpo a uno dei 4 desktop. Ancora di più se avete più di 4 facce.
Esiste, poi, la terza riga Rotate to Cube Face with Window.
Questi comandi agiscono come sopra, ma trascinano con sé la finestra attiva. Nessuno è attivato per default, ma, se volete, li potete attivare espandendo questa riga.

In tutte queste modalità, la velocità di rotazione è determinata dal parametro Speed del tab General. In Rotate Cube, tab General, trovate Speed (Velocità), terz'ultima riga. Il default è 2.0. Mettete 0.5 o meno e vedrete una lenta e soffice rotazione (bellissima a vedersi, ma troppo lenta per lavorarci).

C'è, infine, un altro comando assimilabile a questi perché permette di selezionare un desktop:

Ctrl+Alt+FrecciaGiù
= mostra tutti i desktop in fila come nella figura a destra (nell'immagine un po' di contorno è stato tagliato).
Si passa dall'uno all'altro con FrecciaSin/Des. Rilasciando Ctrl o Alt si va al desktop centrale.
Ctrl+Alt+FrecciaGiù
Sempre nella categoria Desktop c'è un altro elemento che, se attivato, offre un bel modo di selezionare il desktop. Si tratta di Expo.
Attivatelo e poi premete Super+e (proprio 'e', la 'e' minuscola) e vedrete una immagine simile a quella a destra (cliccatela per ingrandirla) che assomiglia a quella superiore, ma è diversa perché qui si vedono tutti i desktop.

Cliccando su Expo e andando nel tab Appearance si può anche deformare il muro di desktop rendendolo curvo, come nella seconda immagine (nello stesso tab si controlla il raggio di curvatura con il parametro Curve strenght).

In questa modalità è possibile muovere la finestra di una applicazione da un desktop all'altro draggandola con il mouse.

Infine, si seleziona il desktop di uscita in uno dei seguenti modi
  • la tastiera: le frecce sin/des per selezionare e poi Return oppure Super+e per uscire
  • il mouse: il tasto sinistro (Button1) per selezionare e il tasto destro (Button2) per uscire.
  • doppio click con il tasto sinistro del mouse (Button1), seleziona ed esce
Expo

Expo deformato

Effetti sulle finestre

Wobbly windows

wobbly configIl primo che vediamo è il wobbly che fa sì che le finestre, quando mosse, si deformino un po' come una bandiera. Dovrebbe essere già abilitato (altrimenti abilitatelo).
Cliccando su Wobbly Windows (categoria Effects) si può controllare l'entità dell'effetto (cliccate l'immagine per ingrandirla).
I parametri principali sono i due primi cursori che in inglese sono chiamati Friction (attrito) e Spring K (costante della molla). Questi nomi derivano dal fatto che l'algoritmo che genera il movimento è sostanzialmente quello di una serie di masse connesse da molle a formare una rete che viene mappata sull'estensione della finestra. La quantità di tali masse è controllata dal terzo cursore (Grid Resolution) e più sono, più il movimento è fluido, ma è più pesante per il processore (il default è 8 ed è già buono).
Friction e Spring K si usano come segue:
Notate infine le righe Map Windows, Focus Windows, Grab Windows, Move Windows. Servono a selezionare i tipi di finestre a cui applicare l'effetto. quando si verica l'evento selezionato.
In unix ogni finestra ha un nome (che di solito si vede sulla barra del titolo) e un tipo, oltre ad altre caratteristiche (aprite un terminale e lanciate xwininfo). I tipi più comuni sono: Splash, Menu, DropdownMenu, PopupMenu, Tooltip, Notification, Combo, Dnd, Toolbar, Utility, Dialog, Normal, Unknown. Nella maggior parte dei casi il significato è intuibile.
Le righe di cui sopra servono a selezionare i tipi di finestre a cui applicare l'effetto quando, per es. si aprono (Map) o quando vengono mosse (Move) o passano in primo piano (Focus). La linea verticale '|' è il carattere che significa 'or' (oppure).



email me: mg AT maurograziani DOT org

NB: questa pagina è ancora in costruzione.


Index
Back Next