Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gnu_screen [2015/07/23 14:14] mguptongnu_screen [2016/02/04 16:14] (current) mgupton
Line 1: Line 1:
 ======screen===== ======screen=====
 +Notes on the //GNU screen// console multiplexer. 
  
 +//screen// is a program that allows multiple terminals/consoles to be maintained on a host indefinitely independent of a terminal client. This allows remote terminal sessions to be persisted across network connections.
 +
 +  * [[http://www.gnu.org/software/screen/|Official Website]]
  
   * sessions   * sessions
Line 11: Line 15:
     * quit: Ctrl-a Ctrl-\     * quit: Ctrl-a Ctrl-\
     * quit: screen -S <session id> -X quit     * quit: screen -S <session id> -X quit
 +    * quit: Ctrl-a :quit
   * windows   * windows
     * create: Ctrl-a c     * create: Ctrl-a c
Line 20: Line 25:
       * split: Ctrl-a S       * split: Ctrl-a S
       * remove: Ctrl-a X       * remove: Ctrl-a X
 +      * remote all but the current region: Ctrl-a Q
       * move to region: Ctrl-a tab       * move to region: Ctrl-a tab
       * scrollback/scroll in a region: ''C-a ['' or ''C-a ESC'' to enter //copy mode// then arrow keys.       * scrollback/scroll in a region: ''C-a ['' or ''C-a ESC'' to enter //copy mode// then arrow keys.
Line 36: Line 42:
 ======Nested Sessions====== ======Nested Sessions======
   * Use key sequence ''Ctrl+a a'' to send commands to the nested session.   * Use key sequence ''Ctrl+a a'' to send commands to the nested session.
 +
 +======.screenrc Configuration======
 +  * [[https://gist.github.com/joaopizani/2718397]]
 +
 +<code>
 +# the following two lines give a two-line status, with the current window highlighted
 +hardstatus alwayslastline
 +hardstatus string '%{= kG}[%{G}%H%? %1`%?%{g}][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][%{B}%m/%d %{W}%C%A%{g}]'
 +
 +# huge scrollback buffer
 +defscrollback 5000
 +
 +# no welcome message
 +startup_message off
 +
 +# 256 colors
 +attrcolor b ".I"
 +termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
 +defbce on
 +
 +# mouse tracking allows to switch region focus by clicking
 +mousetrack on
 +
 +# default windows
 +# screen -t Shell1  1 bash
 +# screen -t Shell2  2 bash
 +# screen -t Python  3 python
 +# screen -t Media   4 bash
 +# select 0
 +# bind c screen 1 # window numbering starts at 1 not 0
 +# bind 0 select 10
 +
 +# get rid of silly xoff stuff
 +bind s split
 +
 +# layouts
 +layout autosave on
 +layout new one
 +select 1
 +layout new two
 +select 1
 +split
 +resize -v +8
 +focus down
 +select 4
 +focus up
 +layout new three
 +select 1
 +split
 +resize -v +7
 +focus down
 +select 3
 +split -v
 +resize -h +10
 +focus right
 +select 4
 +focus up
 +
 +layout attach one
 +layout select one
 +
 +# navigating regions with Ctrl-arrows
 +bindkey "^[[1;5D" focus left
 +bindkey "^[[1;5C" focus right
 +bindkey "^[[1;5A" focus up
 +bindkey "^[[1;5B" focus down
 +
 +# switch windows with F3 (prev) and F4 (next)
 +bindkey "^[OR" prev
 +bindkey "^[OS" next
 +
 +# switch layouts with Ctrl+F3 (prev layout) and Ctrl+F4 (next)
 +bindkey "^[O1;5R" layout prev
 +bindkey "^[O1;5S" layout next
 +
 +# F2 puts Screen into resize mode. Resize regions using hjkl keys.
 +bindkey "^[OQ" eval "command -c rsz" # enter resize mode
 +
 +# use hjkl keys to resize regions
 +bind -c rsz h eval "resize -h -5" "command -c rsz"
 +bind -c rsz j eval "resize -v -5" "command -c rsz"
 +bind -c rsz k eval "resize -v +5" "command -c rsz"
 +bind -c rsz l eval "resize -h +5" "command -c rsz"
 +
 +# quickly switch between regions using tab and arrows
 +bind -c rsz \t    eval "focus"       "command -c rsz" # Tab
 +bind -c rsz -k kl eval "focus left"  "command -c rsz" # Left
 +bind -c rsz -k kr eval "focus right" "command -c rsz" # Right
 +bind -c rsz -k ku eval "focus up"    "command -c rsz" # Up
 +bind -c rsz -k kd eval "focus down"  "command -c rsz" # Down
 +</code>
  • gnu_screen.1437660897.txt.gz
  • Last modified: 2015/07/23 14:14
  • by mgupton