UNIXwork

Linkdump

7. December 2017
Autor: Olaf | 0 Kommentare | Tags: links, unix, x11, history

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

Standardausgabe in die Zwischenablage umleiten mit xclip

16. February 2016

Mit xclip kann man von der Kommandozeile aus mit der X11-Zwischenablage interagieren. Das Tool kann seine Eingabe von stdin in die Zwischenablage speichern oder die Zwischenablage auf stdout ausgeben.

Folgendes Beispiel speichert die Ausgabe von ls in der Zwischenablage

ls | xclip -selection clipboard

Die Zwischenablage auf stdout ausgeben kann man mit

xclip -selection clipboard -o
Autor: Olaf | 0 Kommentare | Tags: x11, linux, unix

Persistente Remote-X11-Anwendungen mit Xpra

25. January 2015

Dass man X11-Anwendungen auch remote per ssh ausführen kann dürfte allseits bekannt sein. Die Anwendung ist dann allerdings an die ssh-Sitzung gebunden. Wird diese terminiert, wird auch die Anwendung beendet. Mit dem Tool Xpra (X Persistent Remote Applications) kann man jedoch auch Anwendungen Remote starten und dann nahtlos auf andere Computer bzw Displays übertragen oder die lokale Sitzung unterbrechen und später wieder aufnehmen.

Die Bedienung ist denkbar einfach. Zuerst muss nur die Anwendung auf dem Server gestartet werden:

xpra start ssh:user@server:100 --start-child=gedit

Dieser Befehl baut eine Verbindung zum Server auf und startet die gewünschte Anwendung, die nach dem Login auch gleich auf dem Client angezeigt wird. Die Zahl 100 steht für das Display ist frei wählbar. Wichtig dabei ist, dass man jedes Display nur für eine Anwendung benutzen kann. Möchte man mehrere Anwendungen starten, wählt man einfach eine andere Displaynummer.

Der lokale xpra-Prozess kann einfach beendet werden und die Anwendung läuft auf dem Server weiter. Möchte man später die Verbindung wieder herstellen, egal ob vom gleichen Computer oder einem anderen, geht das auch sehr einfach:

xpra attach ssh:user@server:100

Auf dem Server kann man sich mit xpra list eine Liste aller Sitzungen anzeigen lassen und mit xpra stop :100 ein Display und damit auch die Anwendung wieder stoppen.

Autor: Olaf | 0 Kommentare | Tags: x11, linux, unix
Zurück