Einführung

Mit screen kann man mehrere Fenster innerhalb eines Terminals verwalten. In der Standardkonfiguration ist screen jedoch nicht optimal für das tägliche Arbeiten konfiguriert. Ich habe screen so eingerichtet, dass z. B. die Willkommensnachricht nicht erscheint und dass am unteren Bildschirmrand eine Leiste mit allen offenen Fenster angezeigt wird.

Konfiguration

Mit der Datei .screenrc, welche im Homeverzeichnis liegt, kann screen konfiguriert werden. Die meisten Optionen sind selbsterklärend, deshalb werde ich nicht auf alle eingehen. Die Optionen sind in der Manpage von screen zu sehen, welche man mit man screen aufrufen kann.

Statuszeile

Die wichtigste und nützlichste Option ist für mich die Statuszeile, welche alle offenen Fenster und zusätzliche Informationen auflisten kann. Meine Statusleiste sieht so aus:

Die Konfiguration der Statuszeile finde ich sehr komplex und nicht sehr logisch. Ich musste viele Beispiele anschauen, bis ich das richtig verstanden habe. Erst danach erschien mir die Manpage logisch. Schlussendlich habe ich die Statuszeile (Option caption) so eingerichtet:

caption always "%{= wk} %-w%{= KW} [%n %t] %{-}%+w %= | @%H | %l | %Y-%m-%d %c "

Die Beschreibung zu diesen Optionen findet man in der Manpage von screen im Kapitel STRING ESCAPES. Hier die Erklärung dazu:

  • %{=wk} Attribute: Hintergrundfarbe: Weiss ( w); Vordergrundfarbe: Schwarz ( k)

  • -w Alle Fenster bis zum aktiven ausgeben

  • g%{=wk} Attribute: Hintergrundfarbe: Weiss ( W); Vordergrundfarbe: Schwarz ( K). Farbcodes in Grossbuchstaben = kräftige Farbe.

  • [%n %t] Aktives Fenster in eckigen Klammern ausgeben

  • %{-} Vorherige Attribute wiederherstellen ( %{=wk})

  • -w Restliche Fenster ausgeben

  • %= Leerraum einfügen, damit folgender Text rechtsbündig wird

  • | @%H | %l | %Y-%m-%d %c Hostname, Load und Datum/Uhrzeit ausgeben

Meine Konfigurationsdatei

Meine gesamte Konfigurationsdatei sieht so aus:

########################################################################
#
# ~/.screenrc
# Konfigurationsdatei fuer screen
#
########################################################################

########################################################################
# Variabeln
setenv FOO bar

########################################################################
# Allgemein
startup_message  off   # Keine Willkommensnachricht
vbell            off   # Kein visuelles Blinken
msgwait 1              # Nachrichten für 1 Sekunden anzeigen
defutf8          on    # utf8 bei neuen fenstern
autodetach       on    # on = default
shelltitle   'bash'    # Fenstertitel
hardcopydir $HOME      # Screenshots ins Homeverzeichnis
defscrollback 10000    # Buffer
defmonitor off         # Aktivitäten nicht in Fenstertitel schreiben

########################################################################
# Meine Fenster
screen -t bash
screen -t bash
screen -t bash
# screen -t irssi irssi
# screen -t syslog sudo tail -f /var/log/everything.log
# screen -t ncmpcpp ncmpcpp
select 1
select 0

########################################################################
# Statuszeile
caption always "%{= wk} %-w%{= KW} [%n %t] %{-}%+w %= | @%H | %l | %Y-%m-%d %c "

# EOF

Die aktuellste Version davon gibt es auf GitHub in meinem Configs Repository: .screenrc.