Vor kurzem habe ich xset b offmeine .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 setund urxvt differenziert, um setzu 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_SESSIONDISPLAYGDMSESSIONSESSION_MANAGERWINDOWIDWINDOWPATHXAUTHORITYXDG_SESSION_COOKIEXDG_CONFIG_DIRSXDG_DATA_DIRSXDG_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!