Recientemente lo puse xset b offen mi .bashrc. Ahora estoy molesto por el error que aparece cuando inicio sesión a través de tty o ssh, es decir, fuera de la sesión X.
Lo primero que se me ocurrió fue [[ -z "$SOME_VAR" ]] && xset b off(bueno, resulta que la variable de prueba que se establece frente a estar vacía es una pregunta diferente). ¿Pero cuál SOME_VAR es el correcto?
Así que diferto la setsalida de tty y la salida de urxvt setpara ver qué variables están establecidas en X y las que faltan en tty. Como era de esperar, hubo muchas diferencias (enumerando solo las que me parecieron relevantes):
DESKTOP_SESSIONDISPLAYGDMSESSIONSESSION_MANAGERWINDOWIDWINDOWPATHXAUTHORITYXDG_SESSION_COOKIEXDG_CONFIG_DIRSXDG_DATA_DIRSXDG_MENU_PREFIX
¿Cuál es el más correcto y universal para probar para detectar si estoy en una sesión X o no? ¿Algo que funcione en tantas distribuciones, plataformas y entornos de escritorio como sea posible?
¿O hay una forma aún mejor que probar las variables de entorno?
ssh -X; ¡funciona bien!