Vor kurzem habe ich xset b off
meine .bashrc. Jetzt ärgere ich mich über den Fehler, der auftaucht, wenn ich mich über tty oder über ssh anmelde, also außerhalb der X-Sitzung.
Das erste, was mir in den Sinn kam, war [[ -z "$SOME_VAR" ]] && xset b off
(nun, es stellt sich heraus, dass das Setzen einer Testvariablen im Vergleich zum Leeren eine andere Frage ist). Aber welche SOME_VAR ist die richtige?
Also habe ich die Ausgabe von tty set
und urxvt differenziert, um set
zu sehen, welche Variablen in X gesetzt sind und in tty fehlen. Wie erwartet gab es ziemlich viele Unterschiede (nur die auflisten, die mir relevant erschienen):
DESKTOP_SESSION
DISPLAY
GDMSESSION
SESSION_MANAGER
WINDOWID
WINDOWPATH
XAUTHORITY
XDG_SESSION_COOKIE
XDG_CONFIG_DIRS
XDG_DATA_DIRS
XDG_MENU_PREFIX
Welches ist das Richtigste und Universellste, um festzustellen, ob ich in einer X-Sitzung bin oder nicht? Etwas, das in möglichst vielen Distributionen, Plattformen und Desktop-Umgebungen funktioniert?
Oder gibt es einen besseren Weg als Umgebungsvariablen zu testen?
ssh -X
; funktioniert gut!