From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Mi 4.Okt 2017: Screen - Uebersicht
Status: RO
Content-Length: 1070
Lines: 22

Titel:          "Screen"
Untertitel:     "Window Manager fuer das Terminal"

Datum:          2017-10-11 Mi 18-22h
Dauer:          Vortrag: 1h; PAUSE. Workshop: 2h
Veranstalter:   Berliner Linux User Group (BeLUG)
                https://www.facebook.com/Linux.Berlin/
Ankuendigungen: https://www.belug.de/aktivitaeten-kalender/WindowmanagerInDerConsole.html
                https://www.facebook.com/events/134116487332903/

Ort:            Lehrter Str. 53, 10557 Berlin
                http://www.openstreetmap.org/node/412766878
BVG:            Bus 123,M27 "Quitzowstrasse"; Bus 123 "Kruppstrasse"

Kontakt:        Sven Guckes vortrag-belug-screen-2017-10-04@guckes.net
Diese_Seite:    http://www.guckes.net/talks/screen/2017-10-04.screen_talk.belug.txt
                http://www.guckes.net/talks/screen/belug.txt
                530 Zeilen, 15900bytes
Latest change:  Thu Oct 05 08:23:42 CEST 2017

Hinweis:        man kann diesen text auch mit mutt anzeigen lassen:
                wget http://www.guckes.net/talks/screen/belug.txt
                mutt -f belug.txt

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Beschreibung
Status: RO
Content-Length: 1325
Lines: 29

    "Screen" ist ein "Window Manager" fuer das Terminal,
    dh man verwaltet damit Prozesse - in jedem Fenster einen.

    Natürlich kann man zwischen den Fenster hin+herwechseln,
    die Anzeige der Fenstertitel und deren Nummer anpassen.
    Ein "Monitoring" gibt Nachricht über Aktivität
    oder Schweigen auf den unsichtbaren Fenstern.

    Beim Trennen der Ansicht ("detach") laufen die Prozesse weiter
    bis man sich wieder mit einer Ansicht verbindet ("reattach") -
    egal, ob auf dem lokalen Laptop oder auf einem entfernten Server.
    Allein *das* ist schon ein grosser Nutzen von Screen überhaupt.

    Screen hat, wie jedes gute Programm, ein "Key Bindung",
    dh erlaubt es die Tasten auf Kommandos konfigurieren.
    Es gibt auch einen Multiuser Modus über den man anderen
    erlauben kann zuzuschauen (read) bzw hineinzutippen (write).
    Damit ist zwischen den Nutzern eine Zusammenarbeit möglich.

    Der "Copy Mode" erlaubt es in der Fensterhistorie
    zu suchen und von dort auch Text zu kopieren.
    Man sieht normalerweise immer nur ein Fenster, aber
    man kann auch die Ansicht spalten (horizontal+vertikal).

    [Extra] und dann gibt es noch: Hardcopies,
    Zombie Mode, Backtick Command, Farben..

    Vorführung: max eine Stunde.
    Workshop: möglich. wer möchte? Kiste mitbringen!

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Tweets
Status: RO
Content-Length: 646
Lines: 10

Habe diesen Vortrag getweetet:

  https://twitter.com/guckes/status/913187311021694976

  2017-10-11 Wed 18-22h @BeLUGBerlin Vortrag "GNU Screen"
  Lehrter_53 http://www.openstreetmap.org/node/412766878
  https://www.belug.de/aktivitaeten-kalender/WindowmanagerInDerConsole.html
  http://www.guckes.net/talks/screen/2017-10-04.screen_talk.belug.txt

  https://twitter.com/guckes/status/918112979052384256

  2017-10-04 18-22h Vortrag+Workshop zu #GNUscreen
  @BeLUGBerlin #linux Vortrag beginnt um 18h
  https://www.belug.de/aktivitaeten-kalender/WindowmanagerInDerConsole.html
  http://www.guckes.net/talks/screen/belug.txt

"please retweet" :)

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Einfuehrung
Status: RO
Content-Length: 686
Lines: 3

Wer trägt heute noch Hardware durch die Gegend?  Und wozu?
Ist denn das Internet nicht überall um uns herum?
Sollte es nicht einfach so sein, daß man sich von einem
beliebigen Rechner aus einloggt und von dort aus arbeitet?

"Schon - aber was ist mit meiner graphischen Oberfläche?
 Kann ich die dann überhaupt noch verwenden?"

Nun - wer braucht schon eine Oberfläche?
Wann war das letzte mal, dass Du die Knöpfe,
Scrollbars und Menüs wirklich gebraucht hast?

Ich möchte mal zeigen wieviel ohne GUI möglich ist.

Die Idee:
Benutze *irgendeinen* Computer, öffne
ein Terminal, logge Dich per ssh ein.
Zum Editieren von Texten, Emails versenden,
News lesen und im Web surfen reicht das.

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Software
Status: RO
Content-Length: 324
Lines: 9

Meine Liste der häufigsten Programme und Services:

Multiple Screens/Windows
     editor (vim), email (neomutt), IRC (irssi), news (slrn),
     rss (newsbeuter), shell (zsh), web (elinks2)
     Dictionary, Google, htop, IMDB, Wetter

Normalerweise: Ein Programm pro Fenster.
Teilen von Fenstern in Unterfenster ist möglich.

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Starten
Status: RO
Content-Length: 655
Lines: 26

Man startet screen einfach mit "screen".
Das startet wiederum eine login shell.
Per default sind keine caption bzw hardstatus Zeilen
gesetzt, und darum sieht man screen auch nicht. :-/

Aber wenn man sich aber die Prozessliste
anschaut, dann sieht man screen sehr gut:

  $ pstree -A $USER
  mosh-server---zsh---screen

  screen-+-2*[elinks]
         |-neomutt
         |-vim
         |-zsh---pstree
         |-zsh---screen
         `-zsh---man---less

  screen-+-irssi---{gmain}
         `-zsh---less

  $ screen -ls
  There are screens on:
          10294.work      (Attached)
          11546.comm      (Attached)
  2 Sockets in /tmp/uscreens/S-guckes.

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Kommandos mit CTRL-A
Status: RO
Content-Length: 423
Lines: 12

Das Wichtigste: SCREEN "hört" auf CTRL-A.
Das Zeichen danach ist dann ein Kommando.
Falls nicht -> Fehlermeldung.

Beispiele:

    CTRL-A ,    -> :license  Lizenzanzeige
    CTRL-A i    -> :info     Informationen zum aktuellen Fenster
    CTRL-A t    -> :time     Zeit
    CTRL-A v    -> :version  Version  ("screen 4.04.00 (GNU) 19-Jun16")
    CTRL-A w    -> :windows  Liste der Fenster
    CTRL-A ?    -> :help     Hilfe

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Detach+Reattach
Status: RO
Content-Length: 565
Lines: 5

Das Nützlichste!

Läuft eine Session, so trennt man sich mit einem "detach":

     CTRL-A d       :detach        von der Ansicht trennen

der Anguck-prozess wird damit beendet.
aber der andere screen prozess lebt weiter
und erhält die Unterprozesse am Leben. :-)
Man kann sich also ausloggen und nach dem
nächsten Login mittels reattach weitermachen. \o/

Welche Session läuft da eigentlich?

     screen -ls     Liste der aktuellen Sessions anzeigen

Session wieder aufnehmen bzw damit verbinden:

     screen -r      mit der detached Session verbinden (reattach)

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Multiple Sessions
Status: RO
Content-Length: 446
Lines: 16

Wenn es mehrere Sessions gibt, dann gibt "screen -ls" solche eine Meldung:

  $ screen -r
  There are screens on:
          10294.work      (Attached)
          11546.comm      (Attached)
  There is no screen to be resumed.

In diesem Falle muss man eine Session eindeutig durch ein Präfix benennen:

  $ screen -r 10

Nützliche Shellaliase:

  alias '?'='screen -ls'    # was läuft an Sessions?
  alias   !='screen -r'     # nimm *die* Session!

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Navigation
Status: RO
Content-Length: 466
Lines: 10

Wie man zwischen den Fenster wechselt:

Navigation
     digit              zur Fensternummer mit Ziffer
     :next + :previous  zur nächsthöheren/niedrigeren Fensternummer
     :other             Aktuelles Fenster mit vorherigem tauschen
     :select            "Switch to window:"
     :select N          springt zu Fenster #N
     :windows           Fensterliste anzeigen - in hardstatuszeile
     :windowlist        Fensterliste anzeigen - als Menu zum Auswählen

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Number+Title
Status: RO
Content-Length: 120
Lines: 5

Man kann die Fensternummer und den Titel wechseln:

Number+Title
                    :number
     CTRL-A A ->    :title

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Split Screens
Status: RO
Content-Length: 642
Lines: 12

Fenster kann man horizontal+vertikal teilen:

Split Screens
     :focus
     :split         horizontal
     :split -v      vertikal
     :resize        Größe (Zeilen) ändern
     :remove
     :only

Es gibt nur eine *einzige* globale Aufteilung.
Und diese geht nach detach+reattach verloren. :-(

[TODO: auf deutsch schreiben]
     :resize +N     increase current region height by N
     :resize -N     decrease current region height by N
     :resize  N     set current region height to N
     :resize  =     make all windows equally high
     :resize  max   maximize current region height
     :resize  min   minimize current region height

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Multiple Views + Sessions
Status: RO
Content-Length: 253
Lines: 12

Sessions kann man mehrfach anschauen!

Multiple Views + Sessions
     :displays
     screen -ls
     :sessionname
     screen -r prefix

Ansehen kann man als derselbe Benutzer sowieso.  Aber
man kann auch andere Benutzer zusehen lassen. Multiuser mode!

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: PAUSE!
Status: RO
Content-Length: 28
Lines: 3

Input+Output

back in 5mins

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Notification
Status: RO
Content-Length: 165
Lines: 6

SCREEN gibt Bescheid über Aktivität auf unsichtbaren Fenstern
bzw bei Nicht-Aktivität über N Sekunden (default: N=30 Sek).

Notification
     :monitor
     :silence

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Copy Mode
Content-Length: 350
Lines: 11

Im Copy Mode kann man Text vom Fenster kopieren -
und dann in einem (anderen) Femster wieder einfügen.
Im Copy Mode kann man wie in Vi navigieren, scrollen,
suchen, und Text auch als Rechteck markieren.
(im Backlog aka Window History aka Scrollback Buffer)

Copy Mode
     CTRL-A ESC "space {move} space"
     :readbuf
     :writebuf
     :removebuf

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Zombie Mode
Status: RO
Content-Length: 274
Lines: 8

Im Zombie Mode verschwinden Fenster der Prozesse nicht,
sondern werden mit einem Zeitstempel abgeschlossen.
In diesem Zustand kann man das Fenster entweder beenden (z)
oder den anfänglichen Prozess mit CTRL-SPACE auch neustarten:

Zombie Mode
     :zombie z
     CTRL-SPACE

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Multiuser Mode
Status: RO
Content-Length: 1035
Lines: 32

Wenn man die Session in den Multiuser Mode wechselt,
so kann man anderen Benutzern (auf demselben Rechner) erlauben
zuzusehen (read) bzw auch "hineinzuschreiben" (write).

Multiuser Mode
     :multiuser on
     screen -ls $USER/
     screen -x  $USER/

Typische Fehlemeldungen:
     screen -ls root
     "No Sockets found in /tmp/uscreens/S-guckes."
     screen -ls root/
     "Must run suid root for multiuser support."

Alle SCREEN Programme im Shellpfad anzeigen:
     ls -l $(which -a screen)

Alle Zuseher auf die aktuelle Sichtweise/Matrix anpassen:
     :fit

Erlaubnisse/Permissions einstellen:
     :acladd :aclchg :aclgrp :aclmask :acldel
     :group

Somit können sich zwei Benutzer (am telephon) darüber unterhalten,
was sie beide sehen können, zB der Benutzer und sein Administrator.
Das war wohl das eigentliche Grund warum SCREEN geschrieben wurde.
Und genau darüber habe ich SCREEN auch kennengelernt (ca 1990).

Mehrere Benutzer können dann auch gleichzeitig zusehen.
Sehr nützlich, wenn es keinen Projektor gibt. :-)

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: ENDE
Status: RO
Content-Length: 16
Lines: 1

soweit erstmal.

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Extras
Status: RO
Content-Length: 531
Lines: 30

Falls noch Zeit und Interesse ist, so kann
ich noch über diese Befehle was sagen:

     :backtick  :idle
     :blanker   :blankerprg
     :hardcopy  :hardcopydir hardcopy_append
     :history
     :login
     :log
     :lockscreen
     :nethack
     :password
     :powdetach
     :stuff
     :time

     Copy+Paste:
     :readreg

     Processes:
     :kill :quit

     Layouts:
     :layout new|remove|next|prev|select|show|title|attach|save|autosave|dump

     Activity:
     :monitor   :silence

     Load Config:
     :source

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Konfiguration
Status: RO
Content-Length: 433
Lines: 11

Konfiguration:
* Command_Char:   escape ^xy
* Startup:        startup_message off
* Scollback:      defscrollback 1000
* Silence:        silencewait 15
* Exchange:       bufferfile  $HOME/.screen_exchange
* Hardcopies:     hardcopydir $HOME/.screen
* Shell+Title:    $HOME/bin/zsh  :shelltitle
* Base_Color:     sorendition kG
* Bells+Whistles: activity, bell_msg, pow_detach_msg, vbell_msg
* Windowlist:     windowlist title/string

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Konfiguration Key Binding
Status: RO
Content-Length: 271
Lines: 11

[WARNUNG: diese Einstellungen können ein bischen Zeit brauchen..]

* Command Binding
   :bind and :bindkey

Beispiele:
   :bind y bumpleft
   :bind x bumpright

Programme direkt mit neuem Fenster starten, zB:
dictionary, editor, email, google, htop, imdb, wetter, weblog

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Konfiguration Caption+Hardstatus
Status: RO
Content-Length: 199
Lines: 5

[WARNUNG: diese Einstellungen können ein bischen Zeit brauchen..]

* Caption+Hardstatus
Caption:    die Zeile unter *allen* "Regionen" (Unterfenster)
Hardstatus: *die* Zeile unter *dem* Hauptfenster

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: FAQ
Status: RO
Content-Length: 1069
Lines: 35

FAQ := "frequently asked questions"
Ein paar Fragen tauchen immer wieder auf..

* [beep, sound]
  wie kann man eine nachricht hörbar machen?
    -> vbell

* [session naming]
  wie gibt man einer laufenden session einen namen?
    -> :sessionname

* [session nesting - "screen within screen"]
  wie geht man um mit einer screen session in einer anderen session?
    -> command character wechseln -> :escape ^xy

* [remote sessions]
    anzeigen von CPU load von mehreren servern?
    -> jeweils im fenster per ssh auf host einloggen
        screen ssh user@host htop
        screen ssh user@host TERM=linux htop

* [adjust terminal sizes]
  wenn mehrere Benutzer zugeschaltet ("attachede) sind
  und unterschiedliche Terminalgrößen haben - wie bekommt
  man eine *gemeinsame* Terminalgrößen hin?
    -> :fit

* [commandline]
  Kann man auf der internen Kommandozeile
  auch die Kommandos der bash verwenden?
    -> evtl die gnu readline einbinden (untested)

* [redirection]
  kann man zwischen fenster auch kopieren bzw umleiten?
    -> file descriptors -> :exec fdpat

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Links
Status: RO
Content-Length: 195
Lines: 7

Hier gibt es weiteres zu guckes..

    http://guckes.net/Screen/
    http://guckes.net/Screen/intro.html
    http://guckes.net/Setup/screenrc

    https://twitter.com/search?q=gnuscreen&src=typd

From 2017-10-11-belug-screen@guckes.net Wed Oct 11 18:00:00 2017
From: Screen - Window Manager <2017-10-11-belug-screen@guckes.net>
Subject: Aussicht: tmux!
Status: RO
Content-Length: 285
Lines: 10

Die Alternative zu GNU screen:  tmux!

Vergleich:
http://www.guckes.net/screen/vs.tmux.txt
http://www.guckes.net/tmux/vs.screen.txt

Wer möchte einen Vortrag über tmux machen?
-> 2017-10-25 Mi

_____________________________________________
vim: set et ft=sven tw=999 nowrap: THPXRF EOF