UNIXwork

Gnome Dark-Theme-Fenster ohne GTK

17. December 2016

Gnome 3 hat das nette Feature, dass ein GTK-Theme eine light und eine dark Variante 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