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