sabato 18 giugno 2011

Compiz Fusion plugins: come è strutturato “Compiz”.

Maria Susana Diaz | 17:22 |

Compiz può prendere il posto di altri window manager come Metacity in GNOME, KWin in KDE e Xfwm4 in Xfce. 

In tal modo vengono implementati all'interno dei vari ambienti desktop una serie di effetti come un uso generalizzato delle trasparenze, un sistema per mostrare tutte le applicazioni aperte allo stesso tempo simile all'Exposé di OSX o un selettore di applicazione (ALT-TAB) con anteprime in tempo reale delle finestre. 

I due effetti più conosciuti sono la mappatura dei vari desktop sulle facce di un cubo in 3D e le finestre tremolanti come se fossero di gelatina quando vengono spostate.

La struttura è la seguente:
  • Core, il programma “compiz” che viene lanciato
  • Plugins Ufficiali, senza plugins “compiz” non è praticamente niente, come un kernel senza programmi, una shell senza binari installati… Questi sono quelli di base, con pochi effetti, ma sviluppati con maggior attenzione all’usabilità
  • Plugins della Community, sono i plugins sviluppati dalla community, rappresentano gran parte del progetto “Compiz Fusion” e comprendono tutti quei plugin più “esotici”, come il cubo riflettente, expo dei desktop, ring switcher, animazioni…
  • Decoratori di finestre, come Emerald, Gtk-window-decorator, Kde-window-decorator…
  • Utilità di configurazione, come CCSM, aka CompizConfig…
  • Programmi esterni, come le trayicons…

 

Cos’è il Core e cosa sono i Plugins.

Come precedentemente detto, compiz senza plugins non è niente.
 
E’ necessario quindi lanciare questi plugins, che svolgono funzioni di ogni tipo: c’è un plugin per il ridimensionameno (resize), uno per lo spostamento delle finestre (move), uno per le decorazioni (decoratation), uno per il cubo (cube), uno per le “finestre tremolanti” (wobbly) etc etc…

Ce ne sono quindi di tutti i gusti, e costituiscono le “funzionalità” di Compiz.
Immaginatevi quindi “compiz” (il programma che lanciate da terminale o da dove volete) come il “kernel” che gestisce l’accesso alla scheda video. I plugins a loro volta si interfacciano ad esso e producono gli effetti e le funzionalità che poi vediamo.

E’ indispensabile quindi che il Core sia stabile ed il più possibile “centralizzato” (da questo si capisce l’importanza della fusione in seguito ad un dispersivo fork come è stato per Beryl)

L’avvio dei Plugins.

Come saprete compiz viene lanciato generalmente con:
compiz --replace gconf

Al di là di quel “--replace” (che sarebbe essenzialmente la flag per dirgli di sostituire qualsiasi gestore di finestre attivo, metacity, kwin, xfwm etc etc…) la sintassi utilizzata è la seguente:

compiz --replace PLUGIN1 PLUGIN2 PLUGIN3…
Ad esempio per lanciare compiz con la possibilità di muoverlo, il ridimensionamento e le decorazioni basta lanciare:
compiz --replace move resize decoration
Se c’è qualcuno che si ricorda, infatti, agli inizi si lanciava compiz con lunghissime stringhe di plugin da lanciare, il che ovviamente era scomodo, perchè obbligava al riavvio di compiz tutte le volte che si voleva lanciare un plugin nuovo (oltre ad essere scomodo…).


Ma per ovviare a questo problema era nato il plugin gconf.
 

Il Plugin Gconf.

Il plugin gconf fu il primo tentativo di subordinare l’avvio dei plugins ad un plugin stesso.
Gconf infatti è un semplice plugin che gestisce le impostazioni e l’avvio selettivo ed in tempo reale di altri plugins.
Sotto la voce “active_plugins”, utilizzando gconf-editor, è possibile aggiungere e rimuovere i plugins attivi, guadagnando in ordine ed in velocità.
Così quando lanciate compiz --replace gconf accade che compiz lancia subito il plugins gconf, il quale a sua volta (è la funzionalità del plugin) lancia tutti i plugins richiesti… (ad esempio basta aggiungere move, resize, decoration dentro la voce active_plugins per lanciarli).
Allo stesso tempo controlla se vengono fatte modifiche alle impostazioni dei plugins… che vengono salvate/caricate sempre dal demone gconf (il plugin gconf scrive le sue modifiche sul demone omonimo di gnome).

Beryl ed il suo Plugin per le opzioni

Beryl non salvava su gconf… utilizzava file di testo che poteva essere editato mediante il “Beryl Settings Manager”.

Ma come faceva?

Evidentemente non lanciava beryl --replace gconf ma qualcos’altro, tipo beryl --replace BerylSettings (scusatemi ma non so come si chiamava).

BerylSettings era pertanto un plugin che aveva funzionalità simili al plugin gconf, ma che scriveva su semplici file di testo.

Il Plugin Ini.

Il plugin ini è stato aggiunto recentemente a Compiz e permette di fare esattamente quello che il plugin gconf fa attraverso gconf, ma scrivendo su file di testo.
Si tratta quindi di un porting migliorato dell’efficiente plugin di salvataggio di Beryl, utilizzato di default da Beryl stesso. (ricordate che beryl non usava gconf?)

Il Plugin Ccp.

Il plugin ccp è un nuovissimo plugin frutto della fusione, e permette di lanciare tutti i plugin settati dal configuratore.
In pratica, un avvio del tipo:
compiz --replace ccp
lancerà a sua volta tutti i plugin abilitati nel configuratore, risolvendo dipendenze e svolgendo il lavoro completamente in automatico.


Ecco l'elenco sompleto dei plugins: 

Accessibility.




attachment:attachment_ADDHelper.png

 

Desktop.

 

Switcherwindowshot.png

Effects.

fussy.png




 

Extras.

Image Loading.

 

Utility.

Window Management.

GOOGLE+

LINKEDIN

Xtreme Download Manager, XDMAN Ubuntu, audio, Linux opera mini, browser internet Chromium Linux, Chrome, browsers tux collection, mascote Linux LibreCAD, Grafica, Disegno vim, editor, linux, ubuntu Ardour, audio, Ubuntu Unity, deskyop, Gnome, Ubuntu grafica 3d, Linux, Blender