wiki:linux/X Anwendungen via Systemscript starten

Wenn man als root eine X-Anwendung starten möchte, funktioniert das auf Terminalebene nur manchmal, über ein Systemscript aber nie.

Der Grund ist eigentlich sehr einfach und einleuchtend: Wenn ich X starte, möchte ich nicht, dass jeder (Achtung: Wortspiel!!) x-Beliebige Zugriff auf X, also den Bildschirm, die Maus aber auch die Tastatur, hat.

Um trotzdem z. B. ein Hinweisfenster oder wie im folgenden Beispiel den Bildschirmsperrer i3lock zu starten, übergibt man die DISPLAY-Variable und startet das Programm als normaler User:

DISPLAY=:0 su username -c 'i3lock -i /irgendeine/grafik.png'

Wenn man den DISPLAY-Wert und den usernamen nicht statisch eintragen möchte, lassen sich diese Informationen mit last auslesen:

$ last -w -n 1
mutetella pts/0        :0               Tue Apr 30 10:06   still logged in   

wtmp begins Tue Apr  2 10:13:26 2013

Aus der ersten Ausgabezeile lassen sich nun der username (mutetella) und das Display (:0) auslesen.

Last modified 6 years ago Last modified on Apr 30, 2013, 10:26:17 AM