Ostatnio umieściłem xset b off
na swoim .bashrc. Teraz denerwuje mnie błąd, który pojawia się, gdy loguję się przez tty lub ssh, tj. Poza sesją X.
Pierwszą rzeczą, jaka przyszła mi do głowy, było [[ -z "$SOME_VAR" ]] && xset b off
(cóż, okazuje się, że ustawienie zmiennej testowej vs. bycie pustym to inne pytanie). Ale który SOME_VAR jest poprawny?
Więc różnicowałem set
dane wyjściowe tty i dane wyjściowe urxvt, set
aby zobaczyć, które zmienne są ustawione w X, a których brakuje w tty. Zgodnie z oczekiwaniami było całkiem sporo różnic (wymieniając tylko te, które wydawały mi się istotne):
DESKTOP_SESSION
DISPLAY
GDMSESSION
SESSION_MANAGER
WINDOWID
WINDOWPATH
XAUTHORITY
XDG_SESSION_COOKIE
XDG_CONFIG_DIRS
XDG_DATA_DIRS
XDG_MENU_PREFIX
Który z nich jest najbardziej poprawny i uniwersalny do przetestowania w celu wykrycia, czy jestem w sesji X, czy nie? Coś, co działałoby na wielu dystrybucjach, platformach i środowiskach desktopowych, jak to możliwe?
Czy jest jeszcze lepszy sposób niż testowanie zmiennych środowiskowych?
ssh -X
; działa w porządku!