Seite 1 von 1

gtk fonts/look anpassen

Verfasst: Donnerstag 26. April 2007, 16:24
von Rebecca
Bisher hatte ich noch die das Beduerfnis, das Aussehen von GTK-Applikationen anzupassen. Aber jetzt habe ich gerade das Problem, dass die Schriftart, die GTK fuer Monospace waehlt, einfach furchtbar ist. Das kann man doch sicher zentral irgendwo einstellen oder? Weiss jemand, wo?

Verfasst: Donnerstag 26. April 2007, 16:31
von encbladexp
Wenn du z.B. GNOME wählst kannst du es einfach unter System->Einstellungen->Schrift machen.

Gibt aber auch ne möglichkeit das GTK-Only zu machen (und somit auch unter Windows) weis aber net wie :-(

mfg Betz Stefan

Verfasst: Donnerstag 26. April 2007, 16:48
von Rebecca
Hm, gnome habe ich bisher gar nicht installiert...

Verfasst: Montag 7. Mai 2007, 08:56
von joost
"zentral" ?

Für jede widget-Klasse für sich ist auf jeden Fall die rc-Datei das Beste, ginge aber auch mit modify_font(pango.FontDescription(..)). Mit rc liegt die Sache außerhalb des Codes - fürs Herumprobieren am bequemsten. Leider ist der Umgang mit diesen Dateien unangenehm und wieder einmal sehr dünn dokumentiert. Ich schaffe irgendwie immer nur, circa drei Viertel der Zeilen darin zur Wirkung zu bringen.

Verfasst: Montag 7. Mai 2007, 09:16
von joost
OOOOOps - das war schon wieder zu flüchtig. modify_font() ist Methode jedes einzelnen widgets.

Ohne rc müsste man also gtk.Style einsetzen. Manipulationen am style wirken sich meist auf alle widgets einer Klasse aus. 'Meist' spiegelt meine Unsicherheit in diesem Bereich - jedenfalls hat gtk.Style.copy() darin seine Existenzberechtigung.

Verfasst: Montag 7. Mai 2007, 11:25
von joost
Außerdem gibt es, so wie gtk bei mir installiert ist, die Datei C:\Programme\GTK\etc\gtk-2.0\gtkrc, außerdem enthält das Verzeichnis C:\Programme\GTK\etc\fonts 3 xml-Dateien, die man editieren könnte (wovor man in Kommentaren allerdings gewarnt wird).

Mit themes habe ich mich bisher noch gar nicht beschäftigt außer der globalen Auswahl von 'Raleigh'. Geht aber wohl immer um Sammlungen von rc-Dateien.

Verfasst: Montag 7. Mai 2007, 13:25
von Rebecca
Mmh... habe mir mal eine gtkrc in meinem Home-Verzeichns erstellt und damit rumgespielt.

Code: Alles auswählen

gtk-key-theme-name = "Emacs"
gtk-can-change-accels = 1
gtk-font-name = "Sans 10"

style "etl_font"
{
  font = "-etl-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*"
 #font_name = "Courier 16"
}

widget_class "*" style "etl_font"
Das Emacs-Key-Theme funktioniert, coole Sache. Das can-change-accels geht nicht. :( Das gtk-font-name funktioniert auch, ist aber nicht das, was ich will.

Dann habe ich mal mit dem Style rumprobiert, aber egal was ich tue, ich sehe keine Auswirkungen davon. Ich wuesste auch gar nicht, was fuer Widgets/Widget-Klassen etc. diejenigen sind, die ich aendern muesste und ob das ueberhaupt der richtige Weg ist.

Mich stoert halt an vielen Stellen die monspace-Schrift, die gewaehlt wird.

EDIT: Das change-accels geht unter Firfox nicht, aber unter Sylpheed. Das Problem mit den Schriften habe ich aber auch dort.

Verfasst: Montag 7. Mai 2007, 16:38
von joost
Drei Viertel der Zeilen wirksam, wie oben geschrieben, heißt: Ergebnis langen Herumprobierens. Die besten Erfolge hatte ich meist mit benannten Toplevels ( also toplevelo.set_name('WainTable') z.B.). Mit einem solchen Namen läuft bei mir folgendes:

Code: Alles auswählen

style "fat"
	{
		font_name = 'Verdana bold 14'
	}

widget "WainTable.*GtkEntry" style "fat"
Das trifft jetzt alle Entries, habe nicht die leistete Ahnung, warum es nicht 'widget_class' heißen muss - das funktioniert nämlich NICHT (vielleicht ist die Verwendung eines Namens auch nur als Teil des Suchmusters dann schon einschlägig für 'widget' allein). Auch für "WainTable.*.GtkEntry" funktioniert es wieder nicht - alles undokumentiert.

Auch 'class' funktionierte wohl etwas öfter als 'widget_class', womit ich die schlechteste Quote erreichte.