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