Created
May 17, 2012 11:55
-
Star
(365)
You must be signed in to star a gist -
Fork
(112)
You must be signed in to fork a gist
-
-
Save joaopizani/2718397 to your computer and use it in GitHub Desktop.
A killer GNU Screen Config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
@fevisera Tip: it's possible to bind F2 without using terminal-specific sequences, e.g. replace
bindkey "^[OQ" eval "command -c rsz" # enter resize mode
with
bindkey -k k2 eval "command -c rsz" # enter resize mode
because k2
is the termcap name for F2, see man termcap or man terminfo.
Every terminal will set its termcap and screen will use it, no need to hardcode the terminal-specific sequence.
Shift-F2 and Ctrl-F2 are less obvious but do exist in termcap/terminfo:
- Shift-F2 is equivalent to F14 (F2 + 12 function keys), so is
F4
in termcap (bindkey -k
) - Ctrl-F2 is equivalent to F26 (F2 + 12 + 12 function keys), so is
FG
in termcap (bindkey -k
)
Ctrl-Shift-F2 is F38 though, I don't know why.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Instead of changing the window numbering to start at 1 I added
bind ` select 0
That key is left of 1 on my keyboard and allows Keyboard position to match the tabs in screen.