summaryrefslogtreecommitdiffstats
path: root/.iscreenrc
blob: 7a937f9e1e15e07c706d9267d5b2e523977b185f (plain)
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
#
# A sample .screenrc which I use for everyday work. 
#
# some of the commands commented out here, have been moved to 
# /local/etc/screenrc
#
# we want no password, right?
#password                 # This will ask us for a password.
password none             # Same as not even mentioning it.
#password 12Bz/9hNlPLZk   # "1234"
#password YahtrWblnJw     # ypmatch jnweiger passwd. Well, ... :-)

scrollback 200            # we have a 200 lines history buffer
markkeys "@=\177:@=^C"    # our mad facit-twist terminal buffer overflow...
markkeys "h=^B:l=^F:\$=^E"  # some missing emacs style bindings in copymode

echo -n "booting screen"

# let it flash, not horn!
#vbell on                          # "vbell" doesn't work any longer, sorry.
#vbell_msg "  Wuff,  Wuff!!  "     # this is the default message
#bell "Bimmmel No. %"		   # sounds the bell and shows a message

# we want to login all windows we create.
#login on                  # "login", "nologin" don't work any longer, sorry 2.

echo -n "."
# we have no termcap entry for screen on the target machine? Well then 
# we tell a lie.
term screen              # would be the obvious default here.
#term vt100               # screen will understand vt100 for 99%. 

# we want to survive hangups
# note that the default setting is off now!
autodetach on

# when we open a window, where shall its CWD be?
chdir                     # without argument it's my $HOME

echo -n "."
# I hate nonexisting status lines! Force screen to believe me.
#hardstatus off

# now some Terminal setup:
# Printing in the leftmost column is not save. We express that fact as :LP@:
#
# Emacs tends to smear it's highlighted status bar across the screen, producing
# ugly areas of bright background, if termcap isn't perfectly sober.
# Give a little :ms@: in the termcap, this may help.
#
# And who invented the initialisation for facit terminals? We tell him that 
# we don't like smooth scroll, by specifying :ti=\E[?l:.
# \E[?3l   80 Zeichen
# \E[?3h   132 Zeichen
# LP       Last column Printable
# \E[A     cursor up
# \E[B     cursor down
# \E[?4h   smooth scroll
# \E[?4l   jump scroll
# \E[%dL   insert %d lines
# \E[K     clear to end of line
# cs       \E[%i%d;%dr    for twist and xterm
# ms@      Move in Standout mode is NOT save.
# WS       our private variable, it declares that the terminal can 
#          be resized by an escape-sequence
# The termcap statement takes 2 or three parameters. First parameter lists
# which TERMCAPs are affected by this statement. Second we specify changes
# in screen's view of that terminals. Third we may specify some capabilities
# that user-programs want to see in the $TERMCAP environment variable or in
# screen's termcap entry.
termcap vt* cl=\E[H\E[J\E[?1h:vi=\E[?35h:ve=\E[35l:ti=\E[?4l[vt100]
termcap facit ti=\E[?4l[facit]
termcap xterm* is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l:Z0=\E[?3h:Z1=\E[?3l

echo -n "."
# "\E(B", "\E(0", "\E(1", "\E(2", ... to switch between charsets.
# screen internally emulates G1: "\E)..", G2: "\E*..", G3: "\E+.."
# you can switch between them, with:
#
#  code | switch to
# ------+------
#  ^O   |  G0
#  ^N   |  G1
#  \En  |  G2
#  \Eo  |  G3
#termcap facit|vt100|xterm* G0

# how do we resize windows? under sunview, this is standard, but xterm
# needs to be a specially hacked xterm, to make this work.
termcap xterm* WS=\E[8;%d;%dt

# ICL 6402 testing:
termcap icl* G0:S0=\E$[start]:E0=\E%[end]:C0=j9k<l6m3n?q\:t7u=v;w>x5 GS=\E(0^O:GE=\E(B^O:G1=k:G2=l:G3=m:G4=j:GV=x:GH=q:GR=u:GL=t:GU=w:GD=v:GC=n

# Flow control produces trouble. ^S und ^Q will never reach screen, as our
# terminals catch them locally. Who can explain that to me?:
#flow on|off|auto [interrupt]

# Long lines get wrapped around (the back of your terminal). This is the
# default for vt100. But now programs make different asumptions about your
# terminal. You may find two linefeeds where you'd expect one, or you may
# be confronted with a truncated line. Currently there is no fix, but pressing
# C-A r and doing a redraw.
#wrap on

# the autoaka allows you to see the currently executing shell command in the
# window name field. To use that, your shell prompt must contain ^[k^[\ or
# you will see the string "(init)" as a name.
# in my .cshrc I may use this for a wonderful tcsh-prompt:
#	set prompt="%{^[k^[\\%}%h %c2(%m)%# "
#
# defining a shellaka that contains a pipe-symbol (|) activates the
# autoaka feature. To the left of that | you specify a constant part of
# your prompt as a trigger, to the right you may place a default string
# as in
shellaka '> |tc'
# but beware! specifying a window name with the -t option has priority over
# the autoaka mechanism. Although specifying -t "> |foo" will work.
# shellaka tc

# ... now a little bit of key bindings
# In case we don't have write permission for /etc/utmp (no s-bit)
# we create even local windows via rlogin. -> Et voila: a utmp-slot
# utmp-slots are strongly recommended to keep sccs and talk happy.
# (thus we have ^A# or. ^Ac for window creation with or without utmp-slot.)
# but if we run suid-root, we produce all the rlogins with -ln, 
# as nobody shall refer to these pty's.
bind '!' screen -ln -k faui41 rlogin faui41
bind '@' screen -ln -k vme2 rlogin faui4_vme2
#bind '#' screen -k faui43
bind '#' screen -ln -k faui43 rlogin faui43
bind '$' screen -ln -k faui44 rlogin faui44
bind '%' screen -ln -k faui45 rlogin faui45
bind '\^' screen -ln -k sup1 rlogin fausup1
bind '&' screen -ln -k sup2 rlogin fausup2
bind '*' screen -ln -k faui48 rlogin faui48
bind '(' screen -ln -k faui09 rlogin faui09
bind ')' screen -ln -k faui10 rlogin faui10
bind 'J' screen -ln -k 4j rlogin faui4j
bind 'P' screen -ln -k 4p rlogin faui4p
bind '^C' screen -ln -k 45c rlogin faui45c
bind '^D' screen -ln -k 45d rlogin faui45d
bind '^E' screen -ln -k 45e rlogin faui45e
bind '^I' screen -ln -k 45i rlogin faui45i

# these two are logIn and logOut. As a toggle is too stupid.
#bind 'I' set login on
#bind 'O' set login off
bind 'L'

# What happens, when you 'think emacs' and want to erase a whole
# line? You type ^A^K right? Under screen it should be ^Aa^K. But...
# killing the window would be a real punishment for a little mistyping.
bind k		#wow! I even mange to type ^Ak by accident.
#bind ^k
#bind K kill

echo -n "."
#screen 1:faui43          # My good old <nr>:<alias> syntax
#screen -k faui43          # The way Wayne Davison thinks about it.
#screen -ln -k faui43      # this one not logged in.
#screen -ln 2:faui09 rlogin faui09 -l jnweiger

# Finally another bonus feature for people using strange terminal settings like
# different baud rate, etc. The next user will get standard settings
# as ^[c is a reset sequence.
#pow_detach_msg ""                # is the default
pow_detach_msg "c" 
echo "done."