Eines der must have tools im *nix Umfeld ist ohne Zweifel „screen„. Allerdings haben mich einige Dinge immer etwas genervt:
Irgendwie lebte ich mit diesen Problemchen und war zu faul mal eine Lösung zu suchen. Aber dann habe ich mich durchgerungen!
Problem: Windows
Die Lösung hierzu kam von meinem Kollegen Hombertho:
Man füge in die .screenrc folgendes ein:
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"
Schon hat man eine schöne „Taskbar“ mit allen vorhanden Fenstern sowie farblicher Markierung des aktuell aktiven Fensters im unteren Bereich des Screens. 10014
HowTo dynamic Titles:
Alle Hosts die diesen Code in der .bashrc oder .bash_profile haben aktualisieren die screen titles beim einloggen auf $user@$host:
function rename_screen_tab () { echo -ne "x1bk$@x1b\"; return 0; }
if [[ "$TERM" = screen* ]]; then
echo
PROMPT_COMMAND="rename_screen_tab ${USER}@${HOSTNAME%%.*}; $PROMPT_COMMAND"
fi
Der Host auf dem screen läuft sollte natürlich ebenfalls den Code in der .bashrc haben. Sonst wird der Screen Title beim Ausloggen nicht wieder zurück geändert.
SSH Agent für screen:
Um dieses zu bewerkstelligen hilft ein Screen Window welches immer vorhanden sein muss und den ssh-agent Prozess vorhält.
.screenrc:
setenv SSH_AUTH_SOCK $HOME/.screen-ssh-agent
screen -t agent bash -c "ssh-agent -a $SSH_AUTH_SOCK $SHELL; ssh-add;"