1
2
3 _____ _ ___ _____
4| ___/ \ / _ \ _ _ | ____|___ ___ _ __ ___ ___ _ __
5| |_ / _ \| | | | (_|_) | _| / __|/ __| '__/ _ \/ _ \ '_ \
6| _/ ___ \ |_| | _ _ | |___\__ \ (__| | | __/ __/ | | |
7|_|/_/ \_\__\_\ (_|_) |_____|___/\___|_| \___|\___|_| |_|
8
9Frequently Asked Questions about the "Escreen/Etwin" extension
10
11
12
13------------------------------------------------------------------------------
14
15
16
17 BEFORE INSTALLING IT
18
19
20
21Q What is it?
22
23A Eterm now offers you to compile in experimental support for the
24 "screen" program. "screen" is a terminal multiplexer (one window,
25 several shells). Yes, it's like konsole or multi-gnome-terminal,
26 only that your shells won't die just because X or the Window Manager
27 do. Oh, and you can pick up your home session from work, and vice
28 versa. And several people can connect to the same session at once,
29 and...
30
31 You get this picture -- if you're a power-user, this is for you.
32
33 Also, if you're not a power-user, this is *not* for you. It's alpha.
34 It's experimental. Reported bugs will get fixed where possible, but
35 there can be no newbie support at this time.
36
37
38
39Q How do I get it?
40
41A You already have it.
42
43 ./configure --enable-escreen && make && make install
44
45 Oh, and you also need the screen program. In our tests, we used
46 Screen version 3.09.11 (FAU) 14-Feb-02.
47
48
49
50Q What should I expect from it? (subject to change)
51
52A An Eterm should open with a screen (without a status-line) running
53 inside of it. There should be a button-bar in the Eterm enumerating
54 the multiplexed terminal (you usually start with one), and button with
55 a menu of screen-related actions. If you normally don't use a button-bar,
56 Escreen will create one for you. Otherwise, it will add buttons to your
57 existing bar.
58
59* .screenrc, $SCREENRC, [/usr/local]/etc/screenrc and $SYSSCREENRC are
60 supported. To a point. If something doesn't work, try things without
61 the screenrc. If it works then, find the offending line in the screenrc
62 and send it to me if you'd like a fix. Thankyou.
63
64* Eterm-buttons are supported (left click on display-name to activate
65 the display, middle to close it, right to rename it).
66
67* Sending statements to screen (^A: in the default setup) with
68 tab-completion
69
70* support for screen command-line options:
71 Eterm -U screen://localhost/-xRR+-c~/.screenrc.testing
72
73* menu for "screen"-functions (if you add your own, use ^A as the
74 escape-character in the ECHO action; Escreen will remap it to
75 whatever is actually used in the session)
76
77* alert boxes for messages from screen
78
79* support for SSH-tunneling through firewalls
80
81* Easy-to-remember key-layout (optional, see below)
82
83* You can pass arbitrary paramters to screen/scream
84
85
86
87Q What's new?
88
89* Should work with Debian Unstable now (2002/10/03)
90
91* libscream's functions are available through Eterm's scripting
92 facility. See escreen.cfg for an example.
93
94* Preliminary Twin support. For now, Twin-URLs (Eterm -U twin://)
95 and Twin's mouse-protocol are supported, allowing you start twin
96 within Eterm (making it the only terminal emulator to support Twin,
97 AFAIK). Next release should feature Twin support through libscream
98 (thus exposing Twin to button- and key-bindings through Eterm's
99 scripting interface).
100
101 For more information on Twin see
102 http://freshmeat.net/projects/twin/?topic_id=158
103
104* Tear-off tabs. You can select the button-representation of a
105 display and drag-and-drop it [currently under reconstruction]
106
107 - to another button:
108
109 The display is moved to that position; the dragged-to display
110 and all displays following it each move one slot to the right.
111 (Yes, a swap may occur rather than an insert, cause that's what
112 screen does. We'll provide a work-around with the next version.)
113
114 - to the desktop:
115
116 This opens another Escreen window (selecting the dragged session
117 where possible). This is very alpha and not intended for productive
118 use (yet).
119
120
121
122Q What should I expect in the future? (TODO)
123
124* Limited support for scrolling. screen doesn't give us all the info
125 we'd need to make this really sexy.
126
127
128
129------------------------------------------------------------------------------
130
131
132
133 AFTER INSTALLING IT
134
135
136
137Q How do I start it?
138
139A If you call it an Eterm, it will behave like one. Same for an Escreen.
140 (you'd have to symlink from Escreen to Eterm first, of course).
141 Additionally, when called with a command-line (-e "/some/program"), the
142 suite will *always* behave like an Eterm, even if invoked as Escreen.
143 Likewise, when called with an URL (-U screen://user@some.host.gov/),
144 it will behave like an Escreen, even if invoked under another name.
145
146
147
148Q Something is amiss! Moan, moan, complain, complain!
149
150A Before you complain:
151
152* Take a deep breath, remember you didn't pay for this.
153
154* Check whether you are using the latest version. Support for each
155 version ceases with the release of a new one!
156
157* Read all of the FAQ, your question may be answered in there.
158 Remember that the FAQ grows with almost each release, so re-reading
159 it with each release is a good idea. Gives you something to do while
160 compiling, too. Also see the manual page for Eterm, and that for screen.
161
162* Check whether the problem only occurs when using your screenrc
163 (see below).
164
165* If remote sessions break, check whether terminfo isn't broken on the
166 remote machine.
167
168* Send a detailed bug-report. Often, it will not be possible to reproduce
169 the bug on my set, so I'll need the info from yours. This includes your
170 screenrc. Sometimes tracing the problem will only be possible if you send
171 me Escreen's debug output. To get it, #define NS_DEBUG in screamcfg.h
172 and recompile.
173
174* If you send a usable bug-report, you will normally receive a free fix,
175 or at least an explanation why there will be no fix. If on the other
176 hand you asked something that's explained in this FAQ, we will laugh
177 at you and THEN be rude. Sorry, but you already got free code, a free
178 FAQ, and, in many cases, free support. Wasting my time with questions
179 I already answered is not a welcome response to this generosity.
180
181
182
183Q Creating a new screen takes forever!? (While connecting to an
184 existing one doesn't?)
185
186A It's the price of making things compatible with stupid screen. To
187 disable compatibility mode for local connections, pass -z 0 to Eterm
188 on the command line. (This has no effect on remote sessions!)
189 Depending on your setup, -z 0 will either make creating new screens
190 much faster, or not work at all for you. Good luck.
191
192
193
194Q ^A does funny things!
195
196A Well, yes. ^A talks to the screen program. Put a line
197 like "escape ^Aa" in "~/.screenrc". The example declares
198 Control-A (^A) to be the magic key (and ^A-a what you need
199 to press to send the escape (^A in the example) to the application
200 instead); you'll want to put something else to move it around.
201 See "man screen" for details.
202
203 Note that ^A: opens a buffer where you can directly enter
204 statements like "escape ^Uu"; trying things out will be
205 easier that way. Yes, it the magic key will be ^U: afterwards. ; )
206
207
208
209Q I typed ^A and it *doesn't do* funny things!
210
211A You probably already have changed the magic escape key to something
212 other than ^A (on the command-line, within Escreen, or in .screenrc).
213 Er, you *did* hold Control, then press A, rather then typing a ^ and
214 an A, right?
215
216
217
218Q But I don't like all this control-whatever stuff, can I have easier
219 to remember key-bindings?
220
221A Sure. Eterm is The Configurable Terminal, after all. A pret-a-porter
222 example that you can simply add to the action context of your theme.cfg
223 file (or %include from it) lives in escreen.cfg -- enjoy.
224
225
226
227Q Escreen changes the escape on the remote box to the same thing as on
228 the local box, does it have to?
229
230A You can always override the escapes like so:
231
232 Eterm -U screen://user@host.com/-e^Xy
233
234 Where ^X is the escape and y the literal (man screen).
235
236
237
238Q Escreen only creates a new session when there is none; otherwise,
239 it connects to the existing one!
240
241A It's not a bug, it's a feature. : ) The default parameters for
242 the screen Escreen starts are "-RDD". You can override those by
243 putting your own parameters in the URL
244
245 Eterm -U "protocol://user@host:port/screen_parameters"
246
247 like so:
248
249 Eterm -U "screen://foo@bar.com/-xRR"
250
251 or, for a local screen with no parameters:
252
253 Eterm -U "localhost/ " # which is the same as
254 Eterm -U "/ " # which is the same as
255 Eterm -U /+
256
257
258
259Q Escreen complains about stuff in my .screenrc!
260
261A If it works aside from that, ignore the machine. If it doesn't, try
262 things without the screenrc. If it works then, find the offending
263 line in the screenrc and send it to me if you'd like a fix. Thankyou.
264
265
266
267Q When Escreen connects to an existing session, things don't work.
268 They do otherwise.
269
270A In all likelihood you're not using the same .screenrc when picking
271 up the session that you used when creating it. If it's just a matter
272 of the escapes being different, you can tell the front-end which ones
273 the backend uses either by providing the right screenrc, or by setting
274 them on the command-line:
275
276 Eterm -U "/-e^Xy"
277
278 Where ^X is the escape-character, and y the literal. Replace as needed.
279 See "man screen" for more info on escapes.
280
281
282
283Q I don't see any buttons when I run Escreen (Eterm -U "")!
284
285A Escreen could not set up screen in a decent way. Don't use -z 0.
286 Try it without the screenrc interfering. If this only happens when
287 picking up a session, see above.
288
289
290
291Q Escreen opens, then closes again (with a local session).
292
293A Escreen cannot run "screen". If you do have "screen", and it is in the
294 search path, screen apparently terminates right away. Normally
295 this is a session-problem: there are several sessions, and Escreen
296 doesn't know which one to pick up, or all sessions are "dead"
297 (unreachable).
298
299 screen -ls will give you a list of the sessions;
300 screen -wipe will remove dead sessions;
301 Eterm -U "/-r session_name" will pick up the session named session_name.
302
303
304
305Q Escreen opens, then closes again (with a remote session).
306
307 If it's not one of the problems described above, the remote end might
308 just find your terminal type confusing. The "--term-name" option with
309 something vanilla (--term-name vt100) should remedy this.
310
311
312
313Q Escreen works, except when I use -Z to tunnel through a firewall?
314
315A Try to manually ssh to the firewall, see how long that takes. Then,
316 tune the delay in the -Z option accordingly (cf man Eterm):
317
318 Eterm -U ... -Z "localport:firewall:remoteport,delay"
319
320
321
322Q I'd like for the button labels to be in a different colour.
323
324A At this time, the labels follow the general (text) colours.
325 You will be able to define colours for (foreground|background|active|bell)
326 windows' labels in later releases.
327
328
329
330Q "screen" support rocks! Can we have it in konsole/multi-gnome-terminal?
331
332A I will not attempt anything like that before I am happy with Escreen.
333 The code, however, is LGPL'd, and its use is documented by example of
334 Eterm (grep for ESCREEN). If you can work with that, do.
335
336
337
338Q Who's responsible for this?
339
340A Escreen is an Eterm extension conceived and written by Azundris.
341 Do not complain to KainX (who courteously added the patch for the
342 enjoyment of the hardy) if you break your Eterm by compiling this
343 in (or by trying to use the alpha-functionality). By using this,
344 you agree that anything happening while or because of using it is
345 your fault, and your fault only.
346 Unfortunately, screen is poorly coded, and a bummer to support.
347
348 Someone (perhaps this kitty) may at some point provide a better
349 backend, but since we cannot expect that backend on our every
350 client's machine, we'll still need to support GNU screen, much
351 as we may hate its protocol (or lack thereof, really).
352
353-- Azundris 2002/05/23 <scream@azundris.com> http://www.azundris.com/
354