No he editado / creado un archivo .screenrc en mucho tiempo, pero esto es lo que estoy usando actualmente:
# Turn off the screen startup message
startup_message off
# Define format of bottom navigation/status/date/etc. line
hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]"
# Increase scrollback buffer to 30000 lines
defscrollback 30000
Sinceramente, no recuerdo qué significa todo en mi línea hardstatus, pero quiero descubrir cómo podría cambiar el color del nombre de host en función del usuario que inició sesión. ¿Es esto posible? En este momento, el nombre de host es amarillo cuando estoy conectado con cualquier usuario; pero quiero que sea rojo si soy root. ¿Es esto algo que se puede cambiar en mi archivo .bashrc? Tengo esto en mi .bashrc para cambiar los nuevos nombres de ventana de pantalla al nombre de host del servidor al que estoy conectado:
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
¡Gracias por cualquier ayuda!
EDITAR
Intenté agregar esto a mi archivo .bashrc, pero solo pone el código ANSI delante del nombre de host en el estado duro de mi pantalla:
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "\033k$FRED$HOSTNAME$RS\033\\"'
else
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
fi
;;
esac
EDITAR 2
También he agregado los códigos de color ANSI reales (ej . \[\033[31m\]
:) y los códigos de escape de pantalla (ej . %kr
:) a la declaración anterior en mi .bashrc
, pero ninguno funcionó.
EDITAR 3
Si uso esto como línea de comando, el nombre de host aparece en rojo delante de mi PS1:
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
Si uso el siguiente mensaje, el nombre de la ventana cambia al nombre de host (¡SÍ!); pero el color sigue siendo el predeterminado (¡NO!):
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
También intenté reemplazar \033[31m
(y solo [31m
) con el escape de color de pantalla (% kr), pero tampoco funcionó.
fuente
Respuestas:
Echa un vistazo a estas preguntas y respuestas de U&L.
Específicamente esta respuesta, https://unix.stackexchange.com/a/16433/7453 .
La idea general es que mantenga 2
screenrc
archivos diferentes con los colores y, basándose$USER
en subashrc
archivo, apunte la variable de entornoSCREENRC
a la de un usuario determinado.fuente
.screenrc
archivos al mismo tiempo? Por ejemplo, si abro la pantalla como yo mismo, luegosudo -s
rootear en otra máquina dentro de esa sesión de pantalla, ¿mis otras ventanas de pantalla permanecerán amarillas y el nombre (nombre de host) de la ventana que acabo de convertir en raíz se volverá rojo?.screenrc
. Con dos instancias de pantalla separadas, sería simplemente simple hacerlo, solo dos configuraciones separadas.