GTK velocissime con Clearlooks + Cairo + Glitz!

di felipe

aggiornato al 22/03/2007 – istruzioni per svn
aggiornato al 20/05/2006
scritto il 20/09/2005

OK, mentre le app Qt e KDE sono sempre piu’ veloci, le app GTK sono *lente*, non ci piove, e infatti su questo si stanno muovendo in diverse direzioni gli hacker di GNOME e delle GTK: Xgl, EXA, Cairo, Glitz… sono alcune delle mille tecnologie che dovrebbero intrecciarsi per fornire dei desktop piu’ reattivi e magari anche piu’ belli esteticamente.

XORG/XCOMPOSITE + GLX + GLITZ + CAIRO + GTK

Sembra un messaggio in codice, ma l’insieme di queste paroline magiche, se ben assemblato, fornisce gia’ in ubuntu breezy o superiore l’idea di quello che avremo tra qualche mese sui nostri desktop se tutto procede come promesso.

Ricetta: “GTK all’Accelerata” -.-

Tempo di cottura: 15/20 minuti, a seconda della CPU

Facilita’: 7/10

Stabilita’: 8/10

Note: le modalita’ descritte si riferiscono a Ubuntu Breezy (5.10) o superiore, ma dovrebbero funzionare su qualsiasi distro degna di portare il nome “Linux” :)

Per questa ricetta sono essenziali alcuni requisiti base:

  • Dovete avere una GPU decente: meglio se nVidia
  • Dovete avere una distro decente e soprattutto recente, meglio se Ubuntu Breezy

Ingredienti:

  • Glitz e relative librerie di sviluppo (in ubuntu: sudo apt-get install libglitz-glx1-dev libglitz1-dev)
  • Cairo e relative librerie di sviluppo (gia’ installato se avete le GTK >= 2.8, in ubuntu: sudo apt-get install libcairo2-dev)
  • GTK e relative librerie di sviluppo (gia’ installate se avete GNOME, in ubuntu: sudo apt-get install libgtk2.0-dev)

Preparazione:

1) CAIRO

Per prima cosa andremo a preparare, in una shell gia’ riscaldata (-.-) una versione di Cairo che abbia il backend Glitz attivo, in ubuntu infatti e’ stato disattivato, perche’ sperimentale. Per fare questo diamo questi comandi:

$: sudo apt-get build-dep libcairo2
$: sudo apt-get source libcairo2

cosi’ avremo soddisfatto eventuali dipendenze irrisolte e scaricato i sorgenti “ubuntizzati o debianizzati” di cairo, chi ha una distro differente usi le utilita’ a disposizione.

Entriamo dentro la directory appena creata e modifichiamo il file debian/rules. in quel file dobbiamo cercare la stringa “–disable-glitz” e modificarla in “–enable-glitz”. Poi possiamo compilare e creare il pacchetto debian con un semplice:

$: sudo debian/rules binary

(oppure con il metodo che preferite voi, ce ne sono di diversi e sinceramente non so perche’ preferisco quello…). Comunque alla fine avrete dei pacchetti debian belli pronti per essere installati con un semplice:

$: sudo dpkg -i *.deb

(occhio a non avere altri pacchetti deb in giro, altrimenti installerete anche quelli). A questo punto abbiamo gia’ preparato gran parte di quello che ci serve, adesso le nostre GTK usano gia’ Cairo accelerato, ma dobbiamo installare qualcosa che ce lo dimostri =)

2) Clearlooks-cairo

Penso che conosciate tutti Clearlooks, il nuovo tema predefinito di GNOME e uno dei piu’ usati e belli e usabili ecc ecc finora mai visti per un desktop GNU. Attualmente stanno lavorando alla versione “cairo” di clearlooks, che dovrebbe cioe’ utilizzare tutte le grandiose caratteristiche di cairo: antialiasing per tutto, grafica vettoriale, animazioni fluidissime, *accelerazione hardware*…

Bene, lasciamo riposare da una parte la shell con cairo e prendiamone un’altra. Imburriamola un poco[1] perche’ questa operazione potrebbe essere delicata, in quanto scaricheremo e compileremo codice da SVN. I comandi sono:

$ svn co http://svn.gnome.org/svn/gtk-engines/trunk gtk2-engines-2.19
[INVIO]

Ok, entriamo dentro la directory e compiliamo:

$: cd gtk-engines-2.19
$: ./autogen.sh --prefix=/usr --enable-animation
$: make
$: sudo checkinstall

Rispondiamo a due o tre domande inutili che ci pone checkinstall e nel giro di pochi minuti abbiamo il nostro pacchetto debian pronto e automaticamente installato.

Riavviamo. Una volta rientrati in GNOME avrete le GTK accelerate e in tutto il loro splendore Cairesco e Clearlooks-esco.

Suggerimenti per la presentazione:

clearcairo.jpgQuesta ricetta per essere apprezzata a pieno dai piu’ smaliziati va accompagnata quasi obbligatoriamente con un leggero condimento di xcompmgr, qualcosa tipo: `xcompmgr -cf -r9 -l-13 -t9 -D4`, o meglio ancora, una bella dose di Compiz. Se si attiva xcompmgr e’ assolutamente imperdibile il mio tema senza bordi per Metacity: Compocity, che si installa semplicemente trascinandolo sulla finestra dei temi.

Consiglierei di presentare la ricetta in un ambiente ben illuminato e ordinato, con uno sfondo chiaro ad esempio. Qui di fianco potete vedere come appare questa ricetta cucinata da me per i lettori :D

[1] Operazione metaforica di buon auspicio che potrebbe essere resa nella vita reale con qualcosa come: cowsay “`uname -s` 4 ever”

36 pensieri su “GTK velocissime con Clearlooks + Cairo + Glitz!

  1. Ho un problema al momento di dare make mi restituisce questo errore:
    make: *** No targets specified and no makefile found. Stop.
    Come risolvo?

  2. ho dei problemi non si installa il pacchetto …
    il risultato è questo:
    Lettura del database … 89324 file e directory attualmente installati.)
    Spacchetto clearlooks-cairo-0.1 (da …/clearlooks-cairo-0.1_0.1-1_i386.deb) …
    dpkg: errore processando /home/luca/clearlooks-cairo-0.1/clearlooks-cairo-0.1_0.1-1_i386.deb (–install):
    tentata sovrascrittura di `/usr/share/automake-1.9/INSTALL’, che si trova anche nel pacchetto automake1.9
    Sono occorsi degli errori processando:
    /home/luca/clearlooks-cairo-0.1/clearlooks-cairo-0.1_0.1-1_i386.deb

  3. make: *** No targets specified and no makefile found. Stop.

    stesso problema di “anonimo” … poblema del codice scaricato da CVS ? … io ho seguito tutto alla lettera.

  4. ok, viste le segnalazioni ho provato a compilare clearlooks-caiso e.. a me funziona tutto o0

    Siete sicuri di aver dato tutti i comandi? in particolare per chi si lamenta dell’errore di make che non trova il Makefile: avete dato ./autogen.sh? In ogni caso il problema non è nel codice :-)

  5. Sembra che sia andato tutto bene..ma quando apro il gestore temi per installare clearlooks-cairo..non lo trova..Devo specificare un percorso??se si, quale? Grazie

  6. io mi sono bloccato al punto in cui devo “compilare e creare il pacchetto .deb” ….

    il comando sudo debian/rules binary non mi funziona. come devo fare???

  7. ciao felipe, grazie per la comunicazione ma ancora di più per l’ ottima documentazione che realizzi e diffondi. ho visto che nel wiki hai già pensato tu ad aggiornare il link
    ;-)

  8. ogni tanto il cvs di GNOME fa le bizze… anzi fa le “pizze”, tanto per restare in tema culinario -.-

    ritenta, come pass va bene dare INVIO come hai già fatto tu

  9. ciao,felipe, i consigli di questo post valgono anche per edgy, o sono diventati inutili perchè, si spera, gli sviluppatori hanno fatto progressi dalla breezy a edgy?
    :)

  10. Ciao…una domanda…

    Ho ricompilato le libcairo abilitando il supporto a Glitz.
    Pero’ ora synaptic mi segnala che ho degli aggiornamenti da fare, in particolare “libcairo-directfb2” e “libcairo2″… l’intuito mi suggerisce che se io faccio l’aggiornamento di questi due pacchetti, mi torna tutto al punto di partenza…
    In questo caso, c’e’ un modo per escludere dei pacchetti dagli aggiornamenti?

    @davide: Io ho installato il tutto su Edgy…ma devo dire che il punto numero 1 e’ stato sufficiente…almeno per usare cairo-dock che era il mio scopo.

  11. @ mess:
    Basta che in Synaptic selezioni il pacchetto e scegli il menu Pacchetto -> Blocca versione. Fatto!!! Ho usato questo “trucco” per evitare l’aggiornamento automatico del kernel, visto che ho una ati 9250, e gli ultimi driver fglrx non sono compatibili con la mia scheda.

  12. non capisco come fare per scaricare i CVS.
    metto i comandi nel terminale ma non mi succede nulla!

  13. @Alex:
    Magari nei nuovi sorgenti non c’è. Probabilmente usa l’autorilevamento, quindi puoi provare senza fare quella modifica

  14. piuttosto, scusa tanto, niubbo come sono mi chiedo se, visto che si parla di sfruttamento dell’accelerazione video, la cosa potrebbe creare problemi se unita a beryl o compiz….ripeto, sicuramente ho sparato una castroneria, ma ho imparato che giocare con xorg e company spesso e volentieri porta ad una orribile schermata rossa e blu con un inquietante messaggio di errore :-)

  15. Scusate ma io credo di aver installato tutto correttamente, ma non vedo alcuna differenza di velocità…
    le GTK sono ancora parecchio lente se non uso compiz, più veloci con compiz ma non più di prima.
    Come posso capire se ho installato tutto correttamente? ci sono dei benchmark per testare la cosa e capire se le GTK sono disegnate usando glitz?

  16. anche a me da quando ho seguito ‘sto howto (non ho usato pacchetti precompilati) i filmati mkv con totem vanno accelerati :\
    solo gli mkv però, gli altri formati vanno bene O_o

  17. Su Edgy funziona benissimo tutto, mentre Dapper non riesce a compilare cairo…

    mi restituisce [quote]cairo-glitz-surface.c: In function ‘_cairo_glitz_surface_get_image’:
    cairo-glitz-surface.c:152: error: ‘struct _glitz_format_t’ has no member named ‘type’
    cairo-glitz-surface.c:152: error: ‘GLITZ_FORMAT_TYPE_COLOR’ undeclared (f irst use in this function)
    [/quote]

    e non compila…

    Qualche idea? Ho cercato quegli errori su google, ma non ho trovato informazioni a riguardo

  18. Non riesco a scaricare il codice dal CVS.
    Dopo aver dato
    export CVSROOT=’:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome’
    provo a fare il login, lascio la password vuota visto che è un cvs anonimo, ma mi dice:
    CVS password:
    cvs [login aborted]: connect to anoncvs.gnome.org(208.69.32.130):2401 failed: Connection refused

    Qual’è il problema?

  19. Ok,ora funziona. Ho completato tutta la procedura, e a parte il fatto che non noto sostanziali miglioramenti, l’update manager mi dice che nei repo c’è la versione 2.8.1…ben + recente della 2.19.1 che ho appena installato…

  20. Ciao, non trovando l’articolo sul pollycoke.net ti scrivo qui.

    Io uso Gutsy e mi chiedevo se ci fossero già le libcairo con glitz abilitato. Tentando di installare il pacchetto generato dei gtk-engines dice che va in conflitto con libgtk che probabilmente è stata aggiornata in svn (correggimi se sbaglio). Cosa mi consigli? ricompilarmi tutte le GTK+?

    Bye…

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...