Suggerimento per le GTK+

Aggiornamento: adesso il rimpicciolimento è effettuato solo sui pulsanti!

Aggiornamento: migliorato il codice per ottenere l’effetto, vedere più in basso

Aggiornamento: qui c’è il bug, e più in basso trovate le istruzioni su come abilitarlo già adesso. Thank you Eugenia! :)

Che ne dite di un piccolo dettaglio come questo? È una delle cose che ho sempre pensato di porre all’attenzione, e scopro che c’è già chi ci ha pensato, e pure per bene:

baobab.png
Notare le differenti dimensioni dei caratteri

Lo so, a prima vista non si nota troppo… ma fate caso alla grandezza dei caratteri della barra degli strumenti e della barra di stato. Notate che sono più piccoli rispetto al resto? Letteralmente acquolinoso… e rende realmente proponibile l’opzione “testo sotto le icone” anche per una lingua tipicamente lunga come l’italiano :)


Il suggerimento viene da Eugenia, e le faccio volentieri eco qui, dal momento che mi piace parecchio (il suggerimento, non lei!). Altra schermata esplicativa:

test.png

Se volete fare sentire la vostra voce, sempre nei limiti della civiltà, sappiate che Eugenia ci dice che esiste un bug aperto da un anno, solo che non riesco a trovarlo :D Chissà cosa ne pensano i dev, e se hanno avuto il tempo o l’occasione di vagliarlo.

Per abilitarlo già adesso sul vostro GNOME, modificate il vostro gtkrc, così:

$: gedit ~/.gtkrc-2.0

E impostate questi valori:

style "smaller-text" {
  font_name = "8"
}
widget_class "*ToolButton*" style "smaller-text"
widget_class "*Statusbar*" style "smaller-text"

Fate attenzione alle fottutissime virgolette… wordpress ha sto vizio di trasformarle, a volte -.- I crediti per queste righe vanno a:

Adesso mi manca solo il nome per le intestazioni delle schede (tab). Grazie a voi!

30 pensieri su “Suggerimento per le GTK+

  1. Molto interessante, una piccola caratteristica, che però ancora un volta svela l’attenzione per l’usabilità della GUI da parte del team di sviluppo di Gnome.

  2. è una cosa da gtkrc, non è una “implementazione” da fare alle gtk.
    Volendo posso metterla per il 2.18.1, ma mi sembra una decisione un po’ troppo “critica”.
    CHiederò altri pareri

  3. Sinceramente non mi e’ mai piaciuto avere font di dimensioni diverse sul desktop…

    E’ la ragione principale che mi aveva fatto allontanare da KDE anni ed anni fa (c’erano 800 font di dimensioni diverse sparsi su tutto il desktop)

  4. Personalmente la trovo un idea ottima! Si risparmia spazio e su gnome lo spazio è prezioso

    Name

  5. Se la buona Eugenia (o il buon Felipe?) perdesse più tempo a spulciare tra gli internal delle GTK+, saprebbe che nel modo suggerito si forza la barra di stato e degli strumenti a usare sempre il tipo di carattere Sans, anche se nel resto dell’ambiente se ne usa un’altro (magari uno tipo calligrafico).

    Il modo “corretto” di applicare il suggerimento è usare:

    style “smaller-text” {
    font_name = “8”
    }
    widget_class “*Toolbar*” style “smaller-text”
    widget_class “*Statusbar*” style “smaller-text”

    In questo modo, perfettamente lecito, si forza solo la dimensione :-)
    Notare inoltre come non serve definire due stili identici.

  6. @Luca Ferretti:
    Non ho nessunissima intenzione di spulciare tra gli internal delle GTK+ :)

    Grazie mille per la segnalazione, avevo notato anche io le incongruenze ma non mi so raccapezzare tra queste cose, e poi “sans” è un alias

    In ogni caso grazie, adesso correggo. Peccato per il tono che hai usato però :/

  7. @luca: certamente anche io avevo fatto così.
    Cerca invece se hai tempo di beccare solo il widget della toolbar con i bottoni.
    Al momento è brutto che ridimensioni un sacco di caratteri che andrebbero grandi.
    Allo stato attuale fa solo danni!

  8. I ” del post di Luca son risultati tutti sballati.

    Cambiateli a mano.

    Grazie WordPress.

    @ Luca : esiste un file in cui ci son tutte le opzioni per il gtkrc ( o gli internal per GTK+) ?

    Potresti linkarlo?

    Grazie Mille.

  9. Andrea “Cimi” Cimitan, non c’e’ da “beccare” niente, basta usare la classe corretta, la ToolButton, in questo caso solo i bottoni avranno il font piu’ piccolo, gli altri widget invece la solita dimensione.

  10. @loopback:
    Quello che mi piacerebbe è ottenere i font piccoli su:

    – pulsanti toolbar (solo quelli) – e questo adesso funziona con “*ToolButton*” (grazie!)
    – statusbar – e questo funziona con il consiglio di Eugenia
    – schede (tab) – …qualche consiglio?

    Sto facendo qualche prova ma, come ho detto, non sono molto versato in questo genere di cose :)

    Ho aggiornato il post in base alla tua segnalazione :*

  11. Felipe, le etichette dei tab non sono widget dedicati, quindi che io sappia non c’e’ un modo per distinguere se una label e’ usata in un tab o meno. In questo caso non so come aiutarti.

  12. @loopback:
    Oh, peccato :/

    Altra cosa interessante sarebbe quella di poter definire un numero “relativo” al posto di “8”, qualcosa come “-2” tipo in html. Tu sais quelque chose?

  13. ehm, scusate, vedo che qualcuno se ne intende.

    Estendo la mia richiesta a Felipe, Loopback e Cimi.

    Grazie.

  14. @Xander:
    Su gtk.org trovi qualcosa.

    @loopback:
    @Luca Ferretti:
    @Andrea “Cimi” Cimitan:
    @guru-vari-ed-eventuali:
    Ecco cosa ho ottenuto finora, niente tab e mi mancano molte altre cose, ma ho aggiunto qualche altro controllo usando “ToolItem”.

    In rosso sono segnati i controlli che mi restano da “rimpicciolire”, anche solo per vedere che effetto farebbe: sono cosciente che non si può rimpicciolire *tutto*. Ogni input è graditissimo!

  15. il mio parco macchine è composto unicamente da un paio di portatile, entrambi con lcd 15” e risoluzione di 1024×768@60Hz e i caratteri sono già settati a 8punti. provando con dimensioni minori, su schermi di queste dimensioni, equivale a giocarsi la vista, specialmente se si sta davanti al monitor per molte ore al giorno (minimo 10). comunque lo spunto è interessantissimo!

  16. Da ignorante : quelli che hai segnato non si rimpiccioliscono tutti modificando i valori di xthickness e ythickness ?

    Grazie per il link.

    Saluti.

  17. la soluzione più semplice felipe è prendere il sorgente di clearlooks e dirgli di stampare con printf il widget che gestisce l’engine.
    da qualche parte qualche printf già fatto lo trovi.
    Così ci clicchi sopra e sulla console ti appare il widget a cui devi aggiungere la “regola” nel gtkrc

  18. – Al momento GTK+ (o meglio Pango) non supporta la definizione “non assoluta” delle dimensioni dei font (a meno di non usare il markup o/e , ma non ha nulla a che vedere con i file Resource)

    – GtkToolButton è widget figlio di GtkToolItem, quindi impostando la dimensione su GtkToolItem, la si fa ereditare anche a GtkToolButton. L’uso del metacarattere * è dovuto al fatto che (ancora) esistono libgnomeui e libbonoboui i quali forse forniscono degli GnomeToolItem (non ho controllato, però) e al fatto che anche altri widget possono essere resi *ToolItem, come ad esempio, se non erro la casella combinata icone/elenco in Nautilus –browser, per cui un po’ dipende caso per caso.

    – Per le linguette delle schede (GtkNotebook) la vedo ardua, perché non ci dovrebbe essere alcun widget particolare a contraddistinguerle. Controllerò, ma non ci spero.

    – x|ythickness modificano, se non ricordo male, il padding (diciamo spaziatura) tra gli elementi (mi pare all’interno del widget in questione, che so, un xthickness=8 applicato a un GtkMenu pone 8 pixel tra un menù e l’altro nella barra dei menù, ma potrebbero anche avere effetto all’esterno). Mi ricordo bene, però, che a causa di strambi valori dati a questi in Gilouche (il tema di Novell Desktop Linux), non si riusciva a usare le icone a 24 pix per launcher nel pannello, che finivano per essere sempre sgranate.

    – per modificare lo stile (e quindi usare un font più piccolo) di altri widget “casuali” come quelli evidenziati da Felipe nell’immagine, credo si debba indicare l’intero “percorso” al widget, sperando che il widget in questione abbia un nome, scrivendo quindi nel gtkrc qualcosa tipo «widget “mywindow.*.GtkEntry” style “smaller”» (notare l’uso di widget all’inizio, al posto di widget_class)

    – per trovare il nome e/o il tipo di widget di un particolare elemento nella UI, forse, ripeto forse, potrebbe venire in aiuto “at-poke”: è uno strumento per il debug dell’accessibilità che dovrebbe permettere di interrogare le varie caratterstiche di ogni widget a schermo. È anche possibile che ricordi male, ma qualcosa di simile dovrebbe esistere.

    – tutte le informazioni sui gtkrc le si trovano nella sezione opportuna (“Resoure Files”) del manuale di riferimento delle GTK+ disponibile sia sul web (assieme a tutti gli altri di GNOME presso http://developer.gnome.org/doc/API/ ) sia installabili sul computer (pacchetti -doc in ubuntu, come libgtk2.0-doc) e visualizzabili con devhelp. Cmq vi preannuncio che non è cosa facile. Date un’occhiata al gtkrc di Clearlooks per capire quanto possa essere complicato scrivere un tema che non sia solo una variazione di colore (credo che Cimi lo sappia bene).

    – infine, il tono “velatamente” polemico era più per Eugenia che per Felipe: se la memoria non mi inganna (non conservo gli archivi delle mailing list così a lungo), Eugenia propone questa idea delle diverse dimensioni dei font, chiramente ispirata al Mac OS, da parecchio tempo, diciamo dall’epoca di GNOME 2.4 (fu durante l’era Neolitica, vero?). Ora, come ampiamente dimostrato da questo post e dai successivi commenti, la cosa è perfettamente possibile con le funzioni attuali delle GTK+ salvo il problema della dimensione “non assoluta” dei font. Una volta risolto questo, non vedo alcun motivo di rendere il tutto “hardcoded” nelle GTK+ forzando ogni tema a usare un carattere più piccolo per la barra degli strumenti. GNOME è GNOME, non è KDE3 (che di certo ha da qualche parte un’opzione per specificarlo), né MacOS (che fa decidere a priori al buon Steve): in GNOME ci sono i temi dei controlli che regolano queste cose, se piace si scrive un tema che regola questo e altri aspetti (colori, spaziature, engine), punto. La richiesta di modificare le GTK+ è veramente eccessiva.

    PS notare che le HIG di GNOME dicono di no usare più di 4 diversi stili di font (dimensione e/o tipo e/o grassetto e/o corsivo), se si rimpicciolisce per default il testo di alcuni widget, ecco che rimangono solo due possibilità di mettere in evidenza altre porzioni di testo.

    PPS perché nel bug non è riportato che il modo per farlo esiste?

  19. @Luca Ferretti:
    @loopback:
    @tutti:
    Questo, suggerito da Eugenia:

    widget_class "*Notebook.GtkLabel" style "smaller-text"

    Rende il testo delle etichette dei tab piccoli, ma solo sulle configlet. I tab di Gedit ed Epiphany purtroppo non ne sono influenzati. Questo altro:

    widget_class "*Notebook.*Label" style "smaller-text"

    suggerito da qualcun altro, rende ovviamente molti più controlli con testo piccolo, compresi i tab di Gedit ed Epiphany, ma anche altri… sembrerebbe quasi a casaccio. Ovviamente non fa al caso nostro.

    Sono cosciente di sfruculiare cose non pensate per questo uso, ma viene da pensare che ci sono un po’ troppi stili mescolati nelle varie app :/

  20. “ci sono un po’ troppi stili mescolati nelle varie app”

    Ed infatti è così, da quel poco che ci capisco.

    Ogni applicazione fa un uso tutto suo di toolbar ed affini.

    Tralasciando la polemica, ma le HIG non indicano esattamente come dovrebbe comportarsi ogni interfaccia?

  21. Cacchio si vede che sei troppo bloccato con icone, scritte ed estetica in generale di un programma!

  22. Scusate se continuo a postare qui, ma non saprei dove altrimenti..

    Ho modificato il mio gtkrc (uso Murrina come engine) in modo da assegnar a diverse “istanze” dimensione e comportamenti differenti (ad esempio i button con roundness=8, mentre il resto tra 0 e 3..), il che immagino rallenti il tutto (Cimi ?), ma non riesco ad assegnar diversi comportamenti alla categoria widget..

    Luca suggeriva at-poke.. Ma come funziona?! =)

  23. @felipe: ci sono delle icone nuove sia per rythmbox che per file roller su tango friday!
    (piuttosto… quand’è che relleranno le nuove icone per i controlli gtk… Le voglio)

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...