UNIXwork

Gnome Dark-Theme-Fenster ohne GTK

17. Dezember 2016

Gnome 3 hat das nette Feature, dass ein GTK-Theme eine light und eine darkVariante hat, und einzelne GTK-Anwendungen können sich aussuchen, welche Theme-Variante sie nutzen wollen. Nutzt eine Anwendung jedoch nicht GTK, so gibt es trotzdem eine Möglichkeit zumindestens einen dunklen Fenster-Rahmen zu erhalten.

Welche Farbe ein Fenster hat, hängt nur von einer X-Property ab. Starten wir einfach mal xprop und klicken auf ein dark-theme-Fenster, dann gibt das Programm alle Properties aus. Darunter findet sich dann auch diese Zeile:

_GTK_THEME_VARIANT(UTF8_STRING) = "dark"

Man kann mit xprop auch Properties setzen:

xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" 

Klickt man dann auf ein Fenster, müsste seine Titelleiste das dark theme nutzen.

Um das gleiche in C mit der xlib zu machen, reicht folgender Code:

void set_dark_theme(Display *dp, Window window) {
	Atom atom = XInternAtom(dp, "_GTK_THEME_VARIANT", False);
	Atom type = XInternAtom(dp, "UTF8_STRING", False);
	XChangeProperty(
	        dp, 
	        window, 
	        atom,
	        type,
	        8,
	        PropModeReplace,
	        (const unsigned char*)"dark",
	        4);
}
Autor: Olaf | 0 Kommentare | Tags: x11, gnome, c

Kommentare


Name
Webseite (optional)
Captcha: 3x=12   x=?
Kommentar