Je n'ai pas édité / créé de fichier .screenrc depuis un moment, mais voici ce que j'utilise actuellement:
# 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
Honnêtement, je ne me souviens pas de ce que tout dans ma ligne hardstatus représente, mais je veux comprendre comment je pourrais changer la couleur du nom d'hôte en fonction de l'utilisateur connecté. Est-ce même possible? À l'heure actuelle, le nom d'hôte est jaune lorsque je suis connecté sous n'importe quel utilisateur; mais je veux qu'il soit rouge si je suis root. Est-ce quelque chose qui peut être changé dans mon fichier .bashrc? J'ai ceci dans mon .bashrc pour changer les nouveaux noms de fenêtre d'écran en nom d'hôte du serveur auquel je suis connecté:
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
Merci pour toute aide!
ÉDITER
J'ai essayé d'ajouter cela à mon fichier .bashrc, mais cela met simplement le code ANSI devant le nom d'hôte dans mon statut d'écran:
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
EDIT 2
J'ai également ajouté les codes de couleur ANSI réels (ex:) \[\033[31m\]
et les codes d'échappement d'écran (ex:) %kr
à la déclaration ci-dessus dans mon .bashrc
, mais aucun n'a fonctionné.
EDIT 3
Si j'utilise ceci comme ligne de commande d'invite, le nom d'hôte apparaît en rouge devant ma PS1:
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
Si j'utilise l'invite suivante, le nom de la fenêtre devient le nom d'hôte (OUI!); mais la couleur reste la valeur par défaut (NON!):
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
J'ai également essayé de remplacer \033[31m
(et juste [31m
) par l'échappement de couleur d'écran (% kr), mais cela n'a pas fonctionné non plus.
Réponses:
Jetez un oeil à cette Q&R U&L.
Plus précisément cette réponse, https://unix.stackexchange.com/a/16433/7453 .
L'idée générale est que vous conservez 2
screenrc
fichiers différents avec les couleurs et en fonction$USER
de votrebashrc
fichier, vous pointez la variable d'environnementSCREENRC
vers celle d'un utilisateur donné.la source
.screenrc
fichiers fonctionneront-ils en même temps? Par exemple, si j'ouvre l'écran comme moi-même, puissudo -s
pour rooter sur une autre machine au cours de cette session d'écran, mes autres fenêtres d'écran resteront-elles jaunes et le nom (nom d'hôte) de la fenêtre que je viens de devenir root deviendra-t-il rouge?.screenrc
. Avec deux instances d'écran séparées, il serait tout simplement simple de le faire, juste deux configurations distinctes.