Нещодавно я поклав xset b off
до свого .bashrc. Тепер мене дратує помилка, що з'являється, коли я входжу через tty чи через ssh, тобто поза сеансом X.
Перше, що мені прийшло в голову, було [[ -z "$SOME_VAR" ]] && xset b off
(ну, виявляється, тестування змінної, встановленої проти порожнього - це інше питання). Але який SOME_VAR є правильним?
Тож я set
розширив set
вихід tty та вихід urxvt, щоб побачити, які змінні встановлені в X, а які відсутні у tty. Як і очікувалося, розбіжностей було досить багато (перелічуючи лише ті, які здалися мені актуальними):
DESKTOP_SESSION
DISPLAY
GDMSESSION
SESSION_MANAGER
WINDOWID
WINDOWPATH
XAUTHORITY
XDG_SESSION_COOKIE
XDG_CONFIG_DIRS
XDG_DATA_DIRS
XDG_MENU_PREFIX
Який із них є найбільш правильним і універсальним для тестування, щоб виявити, я перебуваю на X сесії чи ні? Щось, що може працювати в якомога більше дистрибутивах, платформах та настільних середовищах?
Або існує навіть кращий спосіб, ніж тестування змінних середовища?
ssh -X
; працює чудово!