Des polices des thèmes GTK

Quelque peu après la rédaction de mon article De l’esprit des thèmes GTK,
je me suis aperçu qu’un élément important d’une interface graphique était
aussi la police d’écriture, contrôlée par la propriété
font_name. Quand on voit GNOME à partir duquel on peut
paramétrer une seule police pour les contrôles GTK, on se dit que
c’est normal que tout paraisse si gros ! Changer la police selon le widget
permettrait un peu plus de souplesse et donnerait un peu de gueule à
n’importe quel thème.

Les descriptions de police Pango

GTK utilise Pango pour afficher du texte. On utilise donc dans l’attribut
font_name une description Pango (incomplète, cependant). Pango
comprend ici seulement les familles de police (c’est-à-dire le nom de la
police; différents noms peuvent être mis, séparés par une virgule), les
styles (bold, italic, condensed,
extended…), la gravité (sens d’écriture : north,
south, east, west) et la taille (en
points, ou la taille en pixels si elle est suffixée de px). Tout
ça séparé par des espaces et dans cet ordre :

famille1,famille2 style1 style2 taille

Aucun des attributs n’est obligatoire, ce qui fait qu’on peut garder la
famille de police mais changer la taille, garder le style et changer la
famille de police… Ainsi, pour garder la police de l’utilisateur mais
changer sa taille, on mettra :

font_name = "8"

Pas mal, hein ?

Une super aubaine !

Ceci nous permet, en plus d’avoir des thèmes génériques par rapport aux
familles de polices, d’appliquer des contraintes de polices indépendamment du
thème appliqué ou de la police choisie. C’est ce que j’ai expérimenté sous
GNOME (mais ça marche partout) où j’ai rempli mon fichier
~/.gtkrc-2.0 avec le code ci-dessous. La particularité de ce
fichier est qu’il est prioritaire par rapport à tous les autres
rc de thèmes :

############################
#   Polices                #
############################

style "label_fnt" {
font_name = "8"
}
widget_class "*<GtkLabel>*" style "label_fnt"
widget "gtk-tooltip*" style "label_fnt"
widget_class "*GtkExpander*" style "label_fnt"

style "menu_fnt" {
font_name = "9"
}
widget_class "*GtkMenu*" style "menu_fnt"

style "statusbar_fnt" {
font_name = "8"
}
widget_class "*Statusbar*" style "statusbar_fnt"

style "notebook_fnt" {
font_name = "Bold 8"
}
widget_class "*.GtkNotebook.GtkLabel*" style "notebook_fnt"

style "frame_fnt" {
font_name = "Bold 8"
}
widget_class "*.GtkFrame.GtkLabel*" style "frame_fnt"

style "button_fnt" {
font_name = "9"
}
widget_class "*.Gtk*Button.*Label" style "button_fnt"

style "checkradio_fnt" {
font_name = "9"
}
widget_class "*.GtkCheckButton.*Label" style "checkradio_fnt"
widget_class "*.GtkRadioButton.*Label" style "checkradio_fnt"
widget_class "*.GtkComboBox*.*Label" style "checkradio_fnt"

style "toolbar_fnt" {
  font_name = "7"
}
widget_class "*.<GtkToolbar>.*Label" style "toolbar_fnt"
widget_class "*.<GtkToolbar>.*GtkComboBox*" style "toolbar_fnt"
widget_class "*.<GtkToolbar>.*GtkEntry*" style "toolbar_fnt"
widget_class "*.<GtkToolbar>.*Gtk*Button*" style "toolbar_fnt"

# Panel items
style "panel_fnt" {
font_name = "8"
}
widget_class "*Panel*" style "panel_fnt"

Génial ! Maintenant, prenez un thème, une police, et c’est parti.

Un exemple

Voici la différence entre un thème avec et sans ces modifications :

C'est moche !

C'est moche !

C'est mieux !

C'est mieux !

Bien sûr, j’avais ici une police de taille 9 par défaut, et j’ai mis du 9 sur les boutons, les checkboxes… Ce qui ne change pas beaucoup de choses ! Mais libre à vous de changer les tailles et de mettre tout sans dessus dessous (indice : north).

1 Response to “Des polices des thèmes GTK”


  1. 1 oelmekki octobre 21, 2008 à 12:11

    Un approfondissement intéressant, tu m’as l’air bien motivé par GTK🙂

    Si ça t’intéresse, j’ai été pas mal surpris à une époque par l’ampleur de la personnalisation des thèmes GTK par ardour. Ses sources pourraient t’intéresser…


Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s





%d blogueurs aiment cette page :