-
Notifications
You must be signed in to change notification settings - Fork 1
/
screenrc
389 lines (326 loc) · 11.8 KB
/
screenrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
#
# /etc/screenrc
#
# This is the system wide screenrc.
#
# You can use this file to change the default behavior of screen system wide
# or copy it to ~/.screenrc and use it as a starting point for your own
# settings.
#
# Commands in this file are used to set options, bind screen functions to
# keys, redefine terminal capabilities, and to automatically establish one or
# more windows at the beginning of your screen session.
#
# This is not a comprehensive list of options, look at the screen manual for
# details on everything that you can put in this file. Others examples:
# http://www.math.fu-berlin.de/~guckes/screen/config.php3
#
#
# ==============================================================================
# SCREEN SETTINGS
# ==============================================================================
# ESCAPE - the COMMAND CHARACTER
# ===============================================================
# escape ^aa # default
# escape ^pp # suggested binding for emacs users
# PASSWORD
# ===============================================================
# This commands sets the *internal* password for the screen session.
# WARNING!! If this is set then a "lock" command will only let you in to the
# session after you enter the user's account password and then *also*
# the internal password for that session. This gives additional safety but,
# if you forget the internal password then you cannot resume your session.
# Use :password to generate a password
# password ODSJQf.4IJN7E # "1234"
# VARIABLES
# ===============================================================
# No annoying audible bell, using "visual bell"
# vbell on # default: off
# vbell_msg " -- Bell,Bell!! -- " # default: "Wuff,Wuff!!"
# Automatically detach on hangup.
autodetach on # default: on
# Don't display the copyright page
startup_message off # default: on
# Uses nethack-style messages
# nethack on # default: off
# Affects the copying of text regions
crlf off # default: off
# Enable/disable multiuser mode. Standard screen operation is singleuser.
# In multiuser mode the commands acladd, aclchg, aclgrp and acldel can be used
# to enable (and disable) other user accessing this screen session.
# Requires suid-root.
multiuser off
# Change default scrollback value for new windows
defscrollback 10000 # default: 100
# Define the time that all windows monitored for silence should
# wait before displaying a message. Default 30 seconds.
silencewait 15 # default: 30
# bufferfile: The file to use for commands
# "readbuf" ('<') and "writebuf" ('>'):
bufferfile $HOME/.screen_exchange
#
# hardcopydir: The directory which contains all hardcopies.
hardcopydir ~/.hardcopy
# hardcopydir ~/.screen
#
# shell: Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
shell zsh
# shell bash
# shell ksh
# shell -/bin/zsh
# shellaka '> |tcsh'
# shelltitle '$ |bash'
# emulate .logout message
pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
#caption always " %w --- %c:%s"
#caption always "%3n %t%? @%u%?%? [%h]%?%=%c"
#caption always "%{wb}%-Lw%{= Gk}%50L>%n%f* %t%{-}%+Lw%-9= %c:%s"
#caption always "%{yB} %l %{kk} %{rB} %n %t %{kb}| %{wb}%W %= %{kk} %{wB} %D %Y.%m.%d %C:%s %A "
#no hostname - caption always "%{yB} %l %{kk} %{rB} %n %t %{kb}| %{wb}%W %= %{kk} %{wB} %D %Y.%m.%d %C %A "
#caption splitonly "%{=b}%?%F%{g}%:%{d}%?%45=%n*%f %t%{-}"
#caption always "%{wB}-%H %{yB}%l%{wB}-%{kk} %{gB} %n %t %{kb}| %{wb}%W %= %{kk} %{wB}-%D %Y.%m.%d %C %A-"
#caption always "%{yB}-%l-%{kk} %{gB} %n %t %{kB}| %{wB}%W %= %{kk} %{wB}-%D %Y.%m.%d %C %A-"
#caption always "%{cb}-%l-%{kk} %{gb} %n %t %{kb}| %{wb}%W %= %{kk} %{wb}-%D %Y.%m.%d %C %A-"
# from screen-users
#caption always "%{=b}%?%F%:%45=%n*%f %t%?%?%F%{r}%:%{s kk}%?%H%?%F%{-}%? %L=%-Lw%45L>%?%F%{g}%?%n*%f %t%?%F%{-}%?%+Lw%-17= %?%F%{y}%?%c %Y-%m-%d%?"
# my modified version of the above
#caption always "%{=b}%?%F%:%45=%n*%f %t%?%?%F%{B}%:%{s kk}%?%H %l%?%F%{-}%? %L=%-Lw%45L>%?%F%{g}%?%n*%f %t%?%F%{-}%?%+Lw%-21= %?%F%{y}%?%Y.%m.%d %C %A%?"
caption always "%{=b}%?%F%:%45=%n*%f %t%?%?%F%{B}%:%{s kk}%?%H %{-}%? %L=%-Lw%45L>%?%F%{g}%?%n*%f %t%?%F%{-}%?%+Lw%-21="
#hardstatus on
#hardstatus alwayslastline
#hardstatus string "%{.bW}%-Lw%{.rW}%n %t%{-}%+Lw %=%{..G} %H %{..Y} %m/%d %C%a "
# advertise hardstatus support to $TERMCAP
# termcapinfo * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'
# something about scrolling in xterms :p
termcapinfo xterm ti@:te@
# set every new windows hardstatus line to somenthing descriptive
# defhstatus "screen: ^En (^Et)"
# don't kill window after the process died
# zombie "^["
# XTERM TWEAKS
# ===============================================================
# xterm understands both im/ic and doesn't have a status line.
# Note: Do not specify im and ic in the real termcap/info file as
# some programs (e.g. vi) will not work anymore.
termcap xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
# 80/132 column switching must be enabled for ^AW to work
# change init sequence to not switch width
termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
# Make the output buffer large for (fast) xterms.
# termcapinfo xterm* OL=10000
termcapinfo xterm* OL=100
# tell screen that xterm can switch to dark background and has function
# keys.
termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'
# special xterm hardstatus: use the window title.
# termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
# emulate part of the 'K' charset
termcapinfo xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'
# xterm-52 tweaks:
# - uses background color for delete operations
termcapinfo xterm* be
# WYSE TERMINALS
# ===============================================================
#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff")
#essential to have it here, as this is a slow terminal.
termcapinfo wy75-42 xo:hs@
# New termcap sequences for cursor application mode.
termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J
# OTHER TERMINALS
# ===============================================================
# make hp700 termcap/info better
termcapinfo hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
# Extend the vt100 desciption by some sequences.
# termcap vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
# terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
# termcapinfo linux C8
# old rxvt versions also need this
# termcapinfo rxvt C8
# some apps don't like TERM 'screen.linux'
#term linux
# KEYBINDINGS
# ==============================================================
# The "bind" command assign keys to (internal) commands
# SCREEN checks all the keys you type; you type the key
# which is known as the "command character" then SCREEN
# eats this key, too, and checks whether this key is
# "bound" to a command. If so then SCREEN will execute it.
#
# The command "bind" allows you to chose which keys
# will be assigned to the commands.
#
# Some commands are bound to several keys -
# usually to both some letter and its corresponding
# control key combination, eg the command
# "(create) screen" is bound to both 'c' and '^C'.
#
# The following list shows the default bindings:
#
# break ^B b
# clear C
# colon :
# copy ^[ [
# detach ^D d
# digraph ^V
# displays *
# dumptermcap .
# fit F
# flow ^F f
# focus ^I
# hardcopy h
# help ?
# history { }
# info i
# kill K k
# lastmsg ^M m
# license ,
# log H
# login L
# meta x
# monitor M
# next ^@ ^N sp n
# number N
# only Q
# other ^X
# pow_break B
# pow_detach D
# prev ^H ^P p ^?
# quit \
# readbuf <
# redisplay ^L l
# remove X
# removebuf =
# reset Z
# screen ^C c
# select " '
# silence _
# split S
# suspend ^Z z
# time ^T t
# title A
# vbell ^G
# version v
# width W
# windows ^W w
# wrap ^R r
# writebuf >
# xoff ^S s
# xon ^Q q
# ^] paste .
# - select -
# 0 select 0
# 1 select 1
# 2 select 2
# 3 select 3
# 4 select 4
# 5 select 5
# 6 select 6
# 7 select 7
# 8 select 8
# 9 select 9
# I login on
# O login off
# ] paste .
#
# And here are the default bind commands if you need them:
#
# bind A title
# bind C clear
# bind D pow_detach
# bind F fit
# bind H log
# bind I login on
# bind K kill
# bind L login
# bind M monitor
# bind N number
# bind O login off
# bind Q only
# bind S split
# bind W width
# bind X remove
# bind Z reset
# Let's remove some dangerous key bindings ...
bind k
bind ^k
# bind . dumptermcap # default
bind .
# bind ^h ??? # default
bind ^h
bind h hardcopy # default
# bind h
bind / quit
bind ^/ quit
# ... and make them better.
bind 'K' kill
bind '}' history
# Yet another hack:
# Prepend/append register [/] to the paste if ^a^] is pressed.
# This lets me have autoindent mode in vi.
# register [ "\033:se noai\015a"
# register ] "\033:se ai\015a"
# bind ^] paste [.]
# hardstatus alwaysignore
# hardstatus alwayslastline "%Lw"
# Resize the current region. The space will be removed from or added to
# the region below or if there's not enough space from the region above.
bind = resize =
bind + resize +3
bind - resize -3
# bind _ resize max
#
# attrcolor u "-u b"
# attrcolor b "R"
# make split, tab, last window one keystroke
bind S eval split focus other
# STARTUP SCREENS
# ===============================================================
# Defines the time screen delays a new message when one message
# is currently displayed. The default is 1 second.
# msgminwait 2
# Time a message is displayed if screen is not disturbed by
# other activity. The dafault is 5 seconds:
# msgwait 2
# Briefly show the version number of this starting
# screen session - but only for *one* second:
# msgwait 1
# version
# Welcome the user:
# echo "welcome :-)"
# echo "I love you today."
# Uncomment one/some following lines to automatically let
# SCREEN start some programs in the given window numbers:
#screen -t root 0 su - -c screen
#screen -t mail 1 mutt
#screen -t rp 1 -zsh
#screen -t xfce4 2 # startxfce4 -- :1
#screen -t zsh 2 -zsh
#screen -t emacs 3 emacs -nw
#screen -t vim 3 vim
#screen -t mc 4 mc
#screen -t www 5 links2 www.google.ca
#screen -t zsh 6 -zsh
#screen -t X 8 -zsh
# Set the environment variable var to value string. If only var is specified,
# you'll be prompted to enter a value. If no parameters are specified,
# you'll be prompted for both variable and value. The environment is
# inherited by all subsequently forked shells.
# setenv PROMPT_COMMAND 'echo -n -e "\033k\033\134"'
# Don't you want to start programs which need a DISPLAY ?
setenv DISPLAY ':0'
# show a matrix like screensaver
#idle 600 eval "screen cmatrix -b -s -l -C blue" "idle 0"
# ugly hack for "copy mode" messages
bindkey -m \033 eval 'stuff \377' 'colon' 'stuff \012'
# utf8 support on
defutf8 on