9 gennaio 2007

Temizzare o non temizzare, questo è il dilemma

Update: a quanto pare ho premuto Pubblica invece di Salva come bozza. Nel Capitolo 4 c'era solo il primo periodo e anche gli altri avrebbero avuto bisogno di qualche limatina. Per salvare capra e cavoli, aggiorno solo il Capitolo 4.

Visto che questo in parte sta diventando pian piano un blog di rumor, tanto vale prendere la cosa sul serio e parlare delle novità del futuro GNOME per quanto concerne i temi.

Capitolo 1 - In cui Gnomo mette insieme vari pezzi già esistenti per rendere la vita più facile a Utente.

Come preannunciato da Felipe e dai vari autori sui rispettivi blog, nell'attuale versione di sviluppo di GNOME (SVN/trunk) è finalmente disponibile un nuovo metodo per l'installazione dei temi di GNOME.

Il nuovo metodo prevede:
  • un nuovo tipo MIME application/x-gnome-theme-package (che è un sotto-tipo di application/x-compressed-tar e che ha come estensione .gtp)
  • un nuovo file .desktop per la gestione di questo tipo MIME
  • una nuova opzione a riga di comando (-i) per il programma gnome-theme-manager
Grazie a queste aggiunte è possibile creare un file tgz contenente il tema in questione, cambiare l'estensione da tar.gz in gtp e distribuirlo. Una volta che questo file giunge sotto al puntatore fremente dell'utente, è possibile per l'impaziente utente fare doppio-clic sul file: in virtù dell'associazione tipo MIME <-> file .desktop <-> applicazione di gestione, verrà avviato gnome-theme-manager con l'opzione -i di cui sopra e il nome del file come argomento. Il programma gnome-theme-manager provvederà così a scompattare il pacchetto e a copiare i file che compongono il tema nella directory $HOME/.themes o $HOME/.icons (a seconda se è un tema per GTK+, Metacity o per le icone) e a mostrare la simpatica domanda qui sotto ritratta:


È anche possibile trascinare i file sulla finestra di preferenze del tema per installarli, ma ciò era già possibile in passato. La novità sta nella associazione descritta sopra (e nei bugfix a codice malfunzionante).

Una nota: non ho provato né controllato, ma il pacchetto di tema deve contenere un tema e nel formato corretto, altrimenti tutto il lavoro va a meretrici. Contattate quindi il vostro pusher preferito di temi e ditegli che se in futuro un tema non si installa sarà tutta colpa sua. Ah, se il vostro pusher preferito di temi vi fornisce assieme tema per le icone e per i widget, ricordategli che gli spaghetti e la polvere da sparo sono stati entrambi importati dalla Cina, ma nessuno dei due ha avuto grande successo finché a qualcuno non è venuto in mente di SEPARARE I DUE PRODOTTI!!![1]

Capitolo 2 - In cui Gnomo si fa bello per un appuntamento al cinema con Utente.

Come ritratto nella precedente immagine, il motore di temi Clearlooks ha una nuova opzione di stile, GLOSSY.

Niente di rivoluzionario, ma solo una opzione che varia il tipo di gradiente applicato al widget in questione. Come esempio è disponibile il tema Glossy (che non è cmq il tema predefinito), che oltre all'opzione GLOSSY presenta un lieve cambio di colore:

Il bordino blu attorno al menù è presente anche nel Clearlooks semplice (come detto Glossy è solo un'opzione del motore di tema Clearlooks per cambiare il tipo di gradiente). Inoltre è possibile modificare il raggio degli spigoli di alcuni widget, come per esempio i pulsanti ed ottenere, al livello massimo, qualcosa come:


(sì. ci sono degli artefatti visivi, ma ho usato il valore di raggio massimo e lo scopo non credo fosse quello di avere pulsanti "tondi" a la Aqua, ma solo angoli non spigolosi).

Capitolo 3 - In cui Utente si accorge che Gnomo nasconde qualche segreto

Altra novità della serie "sono anni che tutti la aspettavano" è la possibilità di scegliere un tema e cambiare il colore.

L'annoso ritardo può forse essere giustificato dal fatto che ora tutto funziona come dovrebbe: implementare una funzionalità simile in prededenza avrebbe richiesto soluzioni arrangiate. Ora invece tutto lo stack funziona nel modo dovuto.

Per farla breve, GTK+ fornisce la possibilità di definire dei "colori nominali" e la possibilità di definire variazioni di colore, i temi fanno uso di queste caratteristiche e usano dei nomi standardizzati per i colori base e le funzioni offerte da GTK+ per variare colore (esempio, darker(@bg_color) per definire il colore dello sfondo delle linguette delle schede in secondo piano, dove bg_color è il colore nominale usato per lo sfondo), gnome-theme-manager fornisce un'interfaccia per far definire all'utente i valori di quei colori base, valoro che vanno ad applicarsi a tutti i temi che prevedono la personalizzazione del colore.

Certo non si possono fare cose complicate come con la modifica diretta del file del tema (tipo usare il giallo per i menù e rosso per le barre di avanzamento), ma se ad esempio Clearlooks vi sembra troppo blu e volete cangiarlo in verde, allora questa è la nuova feature che fa per voi.


Con due semplici clic ho cambiato i due colori principali del tema Glossy (sfondo della finestra e sfondo dell'elemento selezionato). Tutti i widget si sono adattati alla modifica. A questo punto sarebbe anche possibile cambiare tema dei controlli, usando quindi un diverso motore, mantenendo i colori scelti (a patto, l'ho già detto, che il tema usi i colori nominali).

Capitolo 4 - In cui Luca dichiara apertamente a Utente cosa pensa di Gnome

Non si tratta, è certo, di cambiamenti epocali o caratteristiche che non siano già state viste altrove. Lo stile Glossy per i pulsanti e per i radio e checkbutton, in particolare, altro non è che un port del tema Ubuntulooks. Le possibilità di cambiare colore è presente in altri ambienti da lunghissimo tempo - così come è del tutto assente in altri.

Però, se provo a cambiare punto di vista, smettendo i panni dal piccolo geek che settimanalmente aggiona la sua sandbox della versione di sviluppo, indossando quelli del semplice utente, magari appassionato, che passa in toto da una versione stabile a una successiva, mi accorgo che questi piccoli e insignificanti insiemi di pixel variamente colorati hanno un discreto impatto sul lato psicologico e emozionale/emotivo che riguarda le interfacce utente.

Quando aggiorno un programma, mi aspetto che accada qualcosa di figo. Un semplice "abbiamo corretto 120 bug" lascia nell'utente appassionato un senso di insoddisfazione (oltre a una sorta di pernacchione dentro che ti fa dire: ma allora cosa cacchio ho usato fino ad ora?). Se ci sono solo bug corretti, l'utente appassionato non ha niente da mostrare in giro con cui fare il gradasso. Niente con cui affermare la "superiorità delle propria diversità"

È solo il classico "anche l'occhio vuole la sua parte" condito da un po' di "scopa nuova, spazza bene". Oppure, per chi se la ricorda "Io ce l'ho profumato"[2].

Non a caso, nelle varie recensioni delle varie versioni di Mac OS X scritte da John Siracusa su arstechnica.com c'è quasi sempre una sezione dedicata ai piccoli cambiamenti nei componenti della UI. Come fare altrimenti a dichiarare a piene lettere che si sta usando una nuova versione?

Le piccole modifiche a Clearlooks vanno forse lette in questa prospettiva. Sarà una emerita cazzata, ma se non cambi un po' la tonalità del colore o la curvatura dei bordi dei pulsanti, allora non hai rilasciato veramente una nuova versione.

Certo, magari c'è chi si lascia andare un po' la mano e rivoluziona completamente l'interfaccia utente. La cosa accade, tipicamente, se rilasci il tuo sistema operativo ogni 5 anni. Per giustificare una grande attesa ci vuole un grande cambiamento[3]. E non importa se tagli via cosa come la barra dei menù (qualcuno ha detto Windows Vista?).

Allo stesso tempo il ciclo di rilasci di GNOME è forse troppo rapido (6 mesi): un piccolo cambiamento per ogni versione e ti ritrovi dopo 6 versioni a non avere più piccoli cambiamenti da applicare. Ma a quel punto sono passati 3 anni, lo stile grafico in voga è ormai cambiato e forse è il caso di cambiare tema; esattamente ciò che è successo quando si è scelto Clearlooks come tema predefinito ed esattamente ciò che pare succederà a MacOS con Illuminous.

Un ultimo commento sulla personalizzazione dei colori: a me pare che fornisca tutto quello che serve, un perfetto zen di minimalismo e funzionalità. A questo punto il passo successivo potrebbe essere permettere la definizione e installazione di soli schemi di colore. Non credo infatti che tutti i vari temi Clearlooks-based presenti su http://art.gnome.org presentino cambiamenti diversi dai colori usati rispetto al Clearlooks originale.

PS Felipe, il motore Clearlooks è sempre stato sviluppato attivamente, specie per quanto riguarda la pulizia del codice; semplicemente essendo incluso in gtk-engines non ha ricevuto la stessa enfasi sulle novità di un motore stand-alone.

[1] di Corrado "Vulvia" Guzzanti
[2] "... l'alito. Con Mental"
[3] noto anche come "Principio di Chinghiale-Pennello"

4 commenti:

Michele Cella ha detto...

Ciao Luca,

Mi piace molto l'opzione Glossy non vedo l'ora di poterla usare e finalmente anche il supporto ai nomi simbolici, sono curioso, sai se è stato fatto un lavoro di porting di tutti i colori hard coded a nomi simbolici? intendo sia negli engine di gtk-engines che altre cose tipo il colore usato da nautilus nella sezione di ricerca per esempio (quell'azzurrino per intenderci).

Riguardo allo screenshot glossy vedo due piccoli difetti, il menu selezionato (Copia) provoca la mancanza del bordo al suo fianco (lo vedi zoomandoci sopra) e la freccetta della GtkEntry mi sembra un po' troppo in alto mentre dovrebbe essere centrata verticalmente.

Infine, dato che seguo saltuariamente le liste di gnome, mi chiedevo se il problema/soluzione di cui hai parlato qualche tempo fa sulla mailing list gnome-themes riguardante le icone 22x22 e 24x24 dovrebbe correggere anche il fastidioso problema che si verifica su ubuntu edgy con le icone di gnome-power-manager nella notification, in pratica ho notato (con temi come Gnome o Tango) che vengono usate quelle svg e scalate a 22x22 (quindi risultato abbastanza brutte) invece di usare le png che sono presenti, la mia fix attuale è stata di rinominare la cartella scalable del tema tango (in modo che non venga usata :-D) ma ovviamente è uno schifo di soluzione.

Ciao e grazie ancora per il tuo lavoro sui dettagli dell'aspetto di Gnome, è molto importante IMHO.

Luca Ferretti ha detto...

@michele

nomi simbolici: scrivo un nuovo post chiarendo come funziona, anzi mi ci metto subito visto che per la mattinata non ho particolari impegni

artifatto nel menu: corretto poche ore dopo il mio post :-|

freccetta: magari segnalo la cosa come bug

icons: il problema è stato riconosciuto dall'autorevole Alexander "Capitano, o mio capitano" Larsson; l'algoritmo per il lookup delle icone è sbagliato, quindi va riscritto l'algoritmo, pubblicata una nuova versione delle specifiche e reimplementato l'algoritmo nelle GTK+ (aprire un bug era nei progetti di stamani). Come soluzione temporanea ti suggerisco piuttosto di editare il file index.theme di hicolor e di sostituire Type=Threshold con Type=Fixed nelle directory a 22 e 24 pixel. Per esempio da

[22x22/apps]
Size=22
Context=Applications
Type=Threshold


a

[22x22/apps]
Size=22
Context=Applications
Type=Fixed


In questo modo, nei primi passaggi dell'algoritmo, le icone a 22 sono prese solo se sono richieste a quella dimensione.

Michele Cella ha detto...

Ciao Luca,

inanzitutto grazi per la disponibilità! :-)

Ho letto il tuo articolo sui colori simbolici, molto bene mi sembra un'ottima soluzione ma come hai detto bisogna aspettare che si diffonda a dovere tra gli sviluppatori come "buona cosa"... :-)

Per finire, ho applicato la soluzione di cui mi hai parlato e mi sembra di avere notato cambiamenti nei menu di sistema dello gnomo, purtroppo quel maledetto bug di gnome-power-manager permane ancora e mi ritrovo le icone svg scalate al 22x22 (suppongo) invece che una bella e chiara icona png che è pur sempre presente. La cosa strana che ho notato è che tale problema sembra solo esserci su ubuntu edgy, vedendo alcuni screenshot di altre distro come FC6 sembra sia a posto l'icona... boh, aprirò un bug appena mi ricordo.

Ciao e grazie ancora!

Daniele Medri ha detto...

Ciao Luca,
penso che un checkbox nella finestra di configurazione del tema per configuare l'animazione della barra di progresso (animation=TRUE) sarebbe comoda.