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