Cimi’s Official Blog

Italians do it Better…

Just a Blog on Gtk+ Theming, Bleeding-Edge, Good Software...

Get a dramatic 2D graphics boost on your netbook 28 June, 2009

After having tried thousands of different drivers, kernel versions, patches etc etc… I’ve finally found a combination that made me excited (wohoo!).

I own a Samsung NC10 with an Intel Atom N270 and an Intel GMA 950 (i945). I’m running both Arch Linux (i686) and Ubuntu jaunty (lpia).

Few notes:

  • This how to should work with any netbook, since they share almost the same hardware.
  • I haven’t used a benchmark, but applications (Firefox, Gnome Do’s Docky, KDE 4 and more), and the difference is so visible that it doesn’t require a benchmark.
  • I don’t know if it depends on the lpia architecture (I’m running Ubuntu lpia) or some patches applied to the drivers, but Ubuntu’s 2D graphics are a little bit faster than my Arch Linux installation with kernel 2.6.30 and drivers 2.7.1 (same versions).
  • I had the boost in both Arch Linux and Ubuntu, though Ubuntu is faster.
  • I’ve compared the 2D graphics with Moblin too, but its newer drivers using UXA are noticeably slower (Firefox/Gecko is incredibly slow when scrolling heavy webpages like facebook or my custom gmail).
  • Newer Intel drivers (2.7.99.x and similar) support only UXA acceleration, and they perform a little bit slower than 2.7.1 without greedy migration heuristic (unfortunately that means a big difference). Greedy migration heuristic does not work with UXA.
  • With this new combination, 2D graphics are really close to my Windows XP installation (Firefox scrolling).

Instructions (Ubuntu lpia combination, adjust the steps to your distro):

  1. Install kernel 2.6.30 from this ppa (even if it has the “nc10″ tag, it doesn’t have custom patches and should work with any netbook).
  2. Upgrade your Xorg Intel drivers with the 2.7.1 version on the same ppa.
  3. Enable greedy migration heuristic creating an empty /etx/X11/xorg.conf with those lines:

    Section "Device"
    Identifier "Intel"
    Driver "intel"
    Option "AccelMethod" "exa"
    Option "MigrationHeuristic" "greedy"
    EndSection

  4. Optional: install client-side-windows Gtk+ branch (helps Gtk+ scrolling and resize).

I really hope you will get the same boost I had, and I’m looking forward to newer Intel drivers: it is just question of time… the team rewrote both xorg driver and the DRM code to ensure a great future to these video cards, and the performance drop is physiological to the transition… I suspect UXA will achieve those performance in less than a year…


Posted in ArchLinux, English, GNOME Do, GTK, Howto | 6 Comments »

Samsung NC10, Linux and working Hotkeys 27 January, 2009

As promised, a small guide for linux on the samsung nc10.

Updated software seems to contain enough compatibility for this netbook, in fact everything worked fine except the “Fn+keys”.

You have to follow this step to make “Fn+keys” work:

To enable the Fn+F5 hotkey (disable monitor brightness) do:

  1. Install xbacklight
  2. copy this script into /usr/bin and make it executable: http://dl.getdropbox.com/u/175266/nc10/xbacklight.sh
  3. Run these:
    gconftool-2 -s --type string /apps/metacity/keybinding_commands/command_1 xbacklight.sh
    gconftool-2 -s --type string /apps/metacity/global_keybindings/run_command_1 XF86Launch1

Some notes:

  • Check out the upstream kernel bug: http://bugzilla.kernel.org/show_bug.cgi?id=12021
  • Feel free to write a better xbacklight.sh script :)
  • The brightness keybinding should work with gnome 2.24. I’m not sure about the “XF86Launch1″ command, which could change (?) on some distributions. “XF86Launch1″ is the command recognized by fedora after patching the kernel.
  • Change the id of the keybinding_command if you have already bound other commands.

Posted in English, GNOME, Howto, Metacity | 16 Comments »

Da GoogleTalk a Jabber trasferendo i Contatti 2 February, 2008

Decisomi più che mai ad abbandonare temporeaneamente GoogleTalk verso cimi _at_ jabber.org, essenzialmente per via dell’utile file transfer mancante in GTalk e delle limitazioni in altri ambiti (il nickname non è funzionante con tutte le applicazioni a causa dell’implementazione googleiana non-standard di XMPP), l’unico problemone era proprio il trasferimento dei contatti… che pizza solo l’idea :|

La Salvezza

Installo gajim-svn e aggiungo i due account, mi accorgo di un opzione “sincronizza contatti“… Comincio a leccarmi i baffi
Ci clicco sopra e come d’incanto mi compare una nuova finestra con l’elenco di tutti i contatti che avevo in GTalk, seleziono quelli interessanti… —> et voilà :) aggiunti a jabber.org!

Ecco effettuato un passaggio indolore, finalmente avrò un file transfer decente, potrò accedere alle conferenze, (il VOIP?) e soprattutto cimi _at_ jabber.org mi sembra decisamente più figo! :D


Posted in Howto, Italian | 8 Comments »

Freevo: Un mediacenter mooolto definitivo :) 23 July, 2007

Eccoci qua, tornato da un viaggetto per Milano a trovare il mio papà che lavora lì :)

Oggi vi parlo di Freevo, potentissimo software per mediacenter.

Freevo

Già in un paio di occasioni vi ho raccontato del progetto Oxine, che ricordo essere un frontend per l’ottimo xine, lettore audio/video.
Qui vi parlo di Freevo, il quale non usa solo xine, bensì quasi la totalità dei software come vlc, xine stesso, mplayer ed i programmi per la tv.
Eccovi un video preso a caso :)

Installazione

Installate la versione specifica per la vostra distro preferita, io su archlinux ho utilizzato AUR, mi ha installato un mare di dipendenze ma tutto è andato perfettamente ok! ;)

Configurazione e primo avvio

Al primo avvio bisogna lanciare il setup che troverà gli eseguibili di tutti i sopracitati programmi che avrete installato, e genererà un piccolo file di configurazione che verrà copiato come usualmente nella home.
Il passo successivo consiste nel configurare freevo: questo è allo stesso tempo il suo più grande pregio ed il più grande difetto.
Ovvero finalmente potrete personalizzarlo minuziosamente… abilitare quello che vorrete… gli potrete far fare quello che volete (scegliere quali player usare per determinati tipi di files, personalizzare i tasti, spostare gli elementi della GUI, appplicare skins, di tutto di più), solo che (nota dolente) ci vuole pazienza perchè si fa da file di testo modificando il file local_conf.py che da /etc copierete nella home.
Ma il risultato finale sarà fantastico.

Espandibilità

Sul sito di freevo troverete molti plugins in python che aggiungeranno funzionalità al vostro programma, dai plugins per il clima, alle skins, a plugins per gli iPod…

Futuro

Mi ricorda fin troppo il mediacenter di Microsoft per i colori, ma i pulsanti animati sono carucci!


Posted in Howto, Italian, Multimedia | 5 Comments »

Guida al Corretto Funzionamento di Compiz 27 June, 2007

Premessa

Dopo la fusione bisognava chiarire un po’ le idee…
Armatevi di pazienza e leggetevi con calma ed attentamente ciò che segue… Alla fine vi sembrerà tutto più chiaro :)
Cercherò di essere il più possibile schematico così da rendere più semplice la comprensione…
compiz-logo-fusion1.png

Come è strutturato “Compiz”

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

Ma una volta le cose non stavano così, ai tempi di XGL, un annetto fa :) per chi c’era…
Ma cosa significa???
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.
Che figata, ed il bello è che sembra funzionare veramente bene :)

La Configurazione tramite CompizConfig

Il plugin ccp “legge” i settaggi che avete impostato in CompizConfig e lancia tutti i plugin richiesti. Se abilitate un nuovo plugin tramite il configuratore lui provvederà a lanciarlo, senza alcuna modifica manuale a gconf (che non è nemmeno più richiesto).
Il configuratore può poi utilizzare diversi backend (dove salvare i files):

  • Flat file configuration
  • Gconf backend

Di base viene fornito con la configurazione testuale (i settings si trovano nella home nella directory ~/.compizconfig), ma volendo si possono riutilizzare i settings di gconf e salvarli direttamente lì: basta installare il pacchetto con pacman (compizconfig-backend-gconf) e selezionare il backend voluto (premete il pulsante in basso a sinistra per accedere alla schermata per la selezione del backend).

CompizConfig è il corrispettivo (svolge una funzione analoga) di Beryl Settings Manager del vecchio Beryl. In più però, questo CompizConfig è indipendente dai plugin installati, ovvero installando nuovi plugins lui aggiungerà automaticamente le nuove voci, senza dover installare una versione aggiornata di CompizConfig!

Decoratori

Potete installare 3 configuratori diversi:

  • Gtk-window-decorator, conosciuto brevemente come gwd, può utilizzare i temi di metacity
  • Kde-window-decorator, conosciuto brevemente come kwd, può utilizzare i temi di kwin
  • Emerald, il vecchio decoratore di beryl, con i suoi orrendi temi che possono essere scaricati da gnomelook

I primi due sono sviluppati in compiz-core e vengono forniti praticamente di default, il terzo è installabile a parte (pacchetto emerald-git).

Per funzionare, richiedono che il plugin decoration sia abilitato.

Programmi Esterni

Giusto per ricordare… è in sviluppo una trayicon (compiz-icon), che funziona e non funziona (io ho trovato già 3 grossi bug nonostante non capisca niente di python). Va fatta funzionare con dei workaround finchè non fixeranno i bug :D
Ricordo pure uno stralcio di manager per l’avvio di compiz, chiamato compiz-manager.

Conclusioni

Spero di aggiornare questo articolo perchè l’ho scritto molto di fretta, essendo veramente impegnato ultimamente… però mi sembrava giusto scriverlo per fare un sunto della situazione…
Spero abbiate gradito lo sforzo :)

Ciao, Cimi ;)


Posted in Compiz, Howto, Italian | 41 Comments »

Aggiornamenti alla Repository con Compiz-git! 14 June, 2007

Sto aggiornando la mia repository per ArchLinux…

Per prima cosa ho cambiato il nome di quella contenente gtk-engines-svn e gnome-themes-svn:

[gnome]
Server = http://cimi.netsons.org/arch/i686/

E per i più pazzi…

Compiz
…ho messo in piedi una repository per compiz-git!

Contiene anche ccsm-git che serve per configurare compiz, e compiz-icon-git che (non va) ma che contiene un compiz-manager che sembra voler funzionare :D (ed ovviamente le dipendenze richieste)

[compiz]
Server = http://cimi.netsons.org/arch/i686/

Read the rest »


Posted in ArchLinux, Compiz, GNOME, GTK, Howto, Italian, Themes | 21 Comments »

[HOWTO] Colorare le icone in Nautilus :) 26 May, 2007

Forse non tutti sanno che… (in realtà non lo sa nessuno, ed io stesso l’ho scoperto soltanto qualche settimana fa :) ) …che in GNOME 2.18 è stata inserita una patch per colorare le icone in Nautilus! ;)

–> You are now talking on #gnome-art
— SuaveBot gives channel operator status to Cimi

<Cimi> thos: why don’t add a voice to colorize nautilus icons in the gnome cc?
<JackTheDipper> nautilus icons can already be colorized via gtkrc, you really like the KDE-ish way of GUIficing available options, don’t ya?
<Cimi> JackTheDipper: which code?
JackTheDipper: it could be fun to add this ability to few symbolic colored’s themes
do you remember the things that need to be written in the gtkrc?
<JackTheDipper> of course, I’m the author ^
<Cimi> JackTheDipper: so answer, silly! :)
<JackTheDipper> NautilusIconContainer::normal_icon_render_mode = 0, 1, 2, 3
NautilusIconContainer::normal_icon_color = color
<JackTheDipper> NautilusIconContainer::normal_icon_saturation
NautilusIconContainer::normal_icon_brightness
the same for prelight instead of normal
render modes are: 0: nothing, 1: lighten, 2: colorize, 3: monochromely colorize
<Cimi> of course, as gnome-color-chooser already does :)
<JackTheDipper> right
<benzea> huh? you cannot colorize and lighten at the same time?
<JackTheDipper> benzea, of course you can
render mode 1 is the original prelight render mode
<benzea> oh, I just thought because of the mode
<JackTheDipper> i’s just because downwards compatibility ;-)
<JackTheDipper> Cimi: although gnome-color-chooser supports these options only for desktop icons
<JackTheDipper> but you can use them wherever you want
<Cimi> Great!
<benzea> hm, wouldn’t you just need to have defaults accordingly?
<JackTheDipper> that’s it
render mode 0 is default mode for normal
and render mode 1 is default mode for prelighting
<benzea> isn’t mode 1 the same as 0 with normal_icon_brightness set to like 1.3?
<JackTheDipper> lighting support got implemented way later
<benzea> that is all I am wondering about :-)
<JackTheDipper> no
but with lighten amount of 25
<benzea> huh? weird numbers :-)
<JackTheDipper> nautilus default *g*

Riassunto

Il bello sembra quindi che il tutto è integrabile nel gtkrc, fantastico! E’ possibile quindi fare in modo che ogni tema abbia i colori desiderati per le icone di Nautilus.

Le righe da aggiungere sono le seguenti, nella sezione theme-default (la principale dove ci sono altre righe simili.. all’inizio sopra i colori).

  • NautilusIconContainer::normal_icon_render_mode = 0, 1, 2, 3
  • NautilusIconContainer::normal_icon_color = #colore
  • NautilusIconContainer::normal_icon_saturation = numero
  • NautilusIconContainer::normal_icon_brightness = numero

Le “Render modes” sono: 0: nothing, 1: spotlight, 2: colorize, 3: colorize-monochromely.

Aggiornamenti

Questo articolo verrà aggiornato nei giorni futuri quando avremo capito meglio come funziona, per il momento non ho ancora provato… :|

Coraggio impavidi, provate e commentate! :D


Posted in GNOME, GTK, Howto, Icons, Italian, Themes | 6 Comments »

This blog is "Powered by Cimi"

Theme from: Kaushal Sheth | Modified by: Andrea Cimitan