Eu não editei / criei um arquivo .screenrc há algum tempo, mas é o que estou usando atualmente:
# 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
Eu honestamente não lembro o que tudo na minha linha de hardstatus representa, mas eu quero descobrir como eu poderia mudar a cor do nome do host com base no usuário que está logado. Isso é possível? Neste momento, o nome do host é amarelo quando estou logado sob qualquer usuário; mas eu quero que seja vermelho se eu for root. Isso é algo que pode ser alterado no meu arquivo .bashrc? Eu tenho isso no meu .bashrc para alterar novos nomes de janela de tela para o nome do host do servidor que eu estou conectado:
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "3k$HOSTNAME3\"'
;;
esac
Obrigado por qualquer ajuda!
EDITAR
Eu tentei adicionar isso ao meu arquivo .bashrc, mas ele coloca o código ANSI na frente do nome do host no hardstatus da minha tela:
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "3k$FRED$HOSTNAME$RS3\"'
else
PROMPT_COMMAND='echo -ne "3k$HOSTNAME3\"'
fi
;;
esac
EDIT 2
Eu também adicionei os códigos de cores ANSI atuais (ex: \[3[31m\]
) e os códigos de escape da tela (ex: %kr
) para a declaração acima no meu .bashrc
, mas nenhum funcionou.
EDIT 3
Se eu usar isso como a linha de comando do prompt, o nome do host aparece em vermelho na frente do meu PS1:
PROMPT_COMMAND='echo -ne "3[31m$HOSTNAME3\"'
Se eu usar o seguinte prompt, o nome da janela mudará para o nome do host (YES!); mas a cor continua sendo o padrão (NÃO!):
PROMPT_COMMAND='echo -ne "3[31m3k$HOSTNAME3\"'
Eu também tentei substituir 3[31m
(e apenas [31m
) pelo escape de cor da tela (% kr), mas isso também não funcionou.