Merged Irssi 0.8.2 from irssi.org cvs.
[silc.git] / apps / irssi / docs / startup-HOWTO.html
1  <h2>Startup HOWTO</h2>
2
3  <h3>To new Irssi users (not to new IRC users ..)</h3>
4
5  <p>Copyright (c) 2000-2002 by Timo Sirainen</p>
6
7
8 <p>Index with some FAQ questions that are answered in the chapter:</p>
9
10 <ol>
11 <li><a href="#c1">For all the lazy people</a></li>
12     <ul>
13     <li>This window management is just weird, I want it exactly like ircII</li>
14     </ul>
15 <li><a href="#c2">Basic user interface usage</a>
16     <ul>
17     <li>Split windows work in weird way</li>
18     </ul></li>
19 <li><a href="#c3">Server and channel automation</a>
20     <ul>
21     <li>How do I automatically connect to servers at startup?</li>
22     <li>How do I automatically join to channels at startup?</li>
23     </ul></li>
24 <li><a href="#c4">Setting up windows and automatically restoring them
25     at startup</a></li>
26 <li><a href="#c5">Status and msgs windows &amp; message levels</a>
27     <ul>
28     <li>I want /WHOIS to print reply to current window</li>
29     <li>I want all messages to go to one window, not create new windows</li>
30     </ul></li>
31 <li><a href="#c6">How support for multiple servers works in irssi</a>
32     <ul>
33     <li>I connected to some server that doesn't respond and now irssi
34         keeps trying to reconnect to it again and again, how can I stop
35         it??</li>
36     <li>I want to have own status and/or msgs window for each servers</li>
37     </ul></li>
38 <li><a href="#c7">/LASTLOG and jumping around in scrollback</a>
39     <ul>
40     <li>How can I save all texts in a window to file?</li>
41     </ul></li>
42 <li><a href="#c8">Logging</a></li>
43 <li><a href="#c9">Changing keyboard bindings</a>
44     <ul>
45     <li>How do I make F1 key do something?</li>
46     </ul></li>
47 <li><a href="#c10">Proxies and IRC bouncers</a></li>
48 <li><a href="#c11">Irssi's settings</a></li>
49 <li><a href="#c12">Statusbar</a>
50     <ul>
51     <li>I loaded a statusbar script but it's not visible anywhere!</li>
52     </ul></li>
53 </ol>
54
55 <h3><a id="c1">1. For all the lazy people</a></h3>
56
57 <p>These settings should give you pretty good defaults (the ones I use):</p>
58
59 <p>If colors don't work, and you know you're not going to use some
60 weird non-VT compatible terminal (you most probably aren't), just
61 say:</p>
62
63 <pre>
64      /SET term_force_colors ON
65 </pre>
66
67 <p>I don't like automatic query windows, I don't like status window, I do
68 like msgs window where all messages go:</p>
69
70 <pre>
71      /SET autocreate_own_query OFF
72      /SET autocreate_query_level DCCMSGS
73      /SET use_status_window OFF
74      /SET use_msgs_window ON
75 </pre>
76
77 <p>Disable automatic window closing when /PARTing channel or /UNQUERYing
78 query:</p>
79
80 <pre>
81      /SET autoclose_windows OFF
82      /SET reuse_unused_windows ON
83 </pre>
84
85 <p>Here's the settings that make irssi work exactly like ircII in window
86 management (send me a note if you can think of more):</p>
87
88 <pre>
89      /SET autocreate_own_query OFF
90      /SET autocreate_query_level NONE
91      /SET use_status_window OFF
92      /SET use_msgs_window OFF
93      /SET reuse_unused_windows ON
94      /SET windows_auto_renumber OFF
95
96      /SET autostick_split_windows OFF
97      /SET autoclose_windows OFF
98      /SET print_active_channel ON
99 </pre>
100
101 <p>And example how to add servers:</p>
102
103 <p>(openprojects network, identify with nickserv and wait for 2 seconds before
104 joining channels)</p>
105
106 <pre>
107      /IRCNET ADD -autosendcmd "/^msg nickserv ident pass;wait -opn 2000" opn
108 </pre>
109
110 <p>Then add some servers to different networks (ircnet is already set up 
111 for them), irc.kpnqwest.fi is used by default for IRCNet but if it fails,
112 irc.funet.fi is tried next:</p>
113
114 <pre>
115      /SERVER ADD -auto -ircnet ircnet irc.kpnqwest.fi 6667
116      /SERVER ADD -ircnet ircnet irc.funet.fi 6667
117      /SERVER ADD -auto -ircnet efnet efnet.cs.hut.fi 6667
118 </pre>
119
120 <p>Automatically join to channels after connected to server, send op request
121 to bot after joined to efnet/#irssi:</p>
122
123 <pre>
124      /CHANNEL ADD -auto #irssi ircnet
125      /CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass"
126                   #irssi efnet
127 </pre>
128
129 If you want lines containing your nick to hilight:
130
131 <pre>
132      /HILIGHT nick
133 </pre>
134
135 <h3><a id="c2">2. Basic user interface usage</a></h3>
136
137 <p>Windows can be scrolled up/down with PgUp and PgDown keys. If they don't
138 work for you, use Meta-p and Meta-n keys. For jumping to beginning or end of
139 the buffer, use /SB HOME and /SB END commands.</p>
140
141 <p>By default, irssi uses "hidden windows" for everything. Hidden
142 window is created every time you /JOIN a channel or /QUERY someone.
143 There's several ways you can change between these windows:</p>
144
145 <pre>
146      Meta-1, Meta-2, .. Meta-0 - Jump directly between windows 1-10
147      Meta-q .. Meta-o          - Jump directly between windows 11-19
148      /WINDOW &lt;number&gt;          - Jump to any window with specified number
149      Ctrl-P, Ctrl-N            - Jump to previous / next window
150 </pre>
151
152 <p>Clearly the easiest way is to use Meta-number keys. And what is the Meta
153 key? For some terminals, it's the same as ALT. If you have Windows keyboard,
154 it's probably the left Windows key. If they don't work directly, you'll need
155 to set a few X resources (NOTE: these work with both xterm and rxvt):</p>   
156
157 <pre>
158      XTerm*eightBitInput:   false
159      XTerm*metaSendsEscape: true
160 </pre>
161
162 <p>With rxvt, you can also specify which key acts as Meta key. So if you
163 want to use ALT instead of Windows key for it, use:</p>
164
165 <pre>
166      rxvt*modifier: alt
167 </pre>
168
169 <p>You could do this by changing the X key mappings:</p>
170
171 <pre>
172     xmodmap -e "keysym Alt_L = Meta_L Alt_L"
173 </pre>
174
175 <p>And how exactly do you set these X resources? For Debian, there's
176 /etc/X11/Xresources/xterm file where you can put them and it's read 
177 automatically when X starts. ~/.Xresources and ~/.Xdefaults files might also
178 work. If you can't get anything else to work, just copy&amp;paste those lines to
179 ~/.Xresources and directly call "xrdb -merge ~/.Xresources" in some xterm.  
180 The resources affect only the new xterms you start, not existing ones.</p>  
181
182 <p>Many windows SSH clients also don't allow usage of ALT. One excellent
183 client that does allow is putty, you can download it from
184 <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">
185 http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>.</p>
186
187 <p>Irssi also supports split windows, they've had some problems in past
188 but I think they should work pretty well now :) Here's some commands
189 related to them:</p>
190
191 <pre>
192      /WINDOW NEW                    - Create new split window
193      /WINDOW NEW HIDE               - Create new hidden window
194      /WINDOW CLOSE                  - Close split or hidden window
195
196      /WINDOW HIDE [&lt;number&gt;|&lt;name&gt;] - Make the split window hidden window
197      /WINDOW SHOW &lt;number&gt;|&lt;name&gt;   - Make the hidden window a split window
198
199      /WINDOW SHRINK [&lt;lines&gt;]       - Shrink the split window
200      /WINDOW GROW [&lt;lines&gt;]         - Grow the split window
201      /WINDOW BALANCE                - Balance the sizes of all split windows
202 </pre>
203
204 <p>By default, irssi uses "sticky windowing" for split windows. This means
205 that windows created inside one split window cannot be moved to another
206 split window without some effort. For example you could have following
207 window layout:</p>
208
209 <pre>
210      Split window 1: win#1 - Status window, win#2 - Messages window
211      Split window 2: win#3 - ircnet/#channel1, win#4 - ircnet/#channel2
212      Split window 3: win#5 - efnet/#channel1, win#6 - efnet/#channel2
213 </pre>
214
215 <p>When you are in win#1 and press ALT-6, irssi jumps to split window
216 #3 and moves the efnet/#channel2 the active window.</p>
217
218 <p>With non-sticky windowing the windows don't have any relationship with
219 split windows, pressing ALT-6 in win#1 moves win#6 to split window 1
220 and sets it active, except if win#6 was already visible in some other
221 split window irssi just changes to that split window. This it the way
222 windows work with ircii, if you prefer it you can set it with</p>
223
224 <pre>
225      /SET autostick_split_windows OFF
226 </pre>
227
228 <p>Each window can have multiple channels, queries and other "window
229 items" inside them. If you don't like windows at all, you disable
230 automatic creating of them with</p>
231
232 <pre>
233      /SET autocreate_windows OFF
234 </pre>
235
236 <p>And if you keep all channels in one window, you most probably want
237 the channel name printed in each line:</p>
238
239 <pre>
240      /SET print_active_channel ON
241 </pre>
242
243 <p>If you want to group only some channels or queries in one window,
244 use</p>
245
246 <pre>
247      /JOIN -window #channel
248      /QUERY -window nick
249 </pre>
250
251 <h3><a id="c3">3. Server and channel automation</a></h3>
252
253 <p>Irssi's multiple IRC network support is IMHO very good - at least
254 compared to other clients :) Even if you're only in one IRC network you
255 should group all your servers to be in the same IRC network as this
256 helps with reconnecting if your primary server breaks and is probably
257 useful in some other ways too :) For information how to actually use
258 irssi correctly with multiple servers see the chapter 6.</p>
259
260 <p>First you need to have your IRC network set, use /IRCNET command to
261 see if it's already there. If it isn't, use /IRCNET ADD yourircnet. To
262 make Irssi work properly with different IRC networks, you might need to
263 give some special settings to /IRCNET ADD, see manual.txt for more
264 information about them. Irssi defaults to IRCNet's behaviour.</p>
265
266 <p>After that you need to add your servers. For example:</p>
267
268 <pre>
269      /SERVER ADD -auto -ircnet ircnet irc.kpnqwest.fi 6667
270      /SERVER ADD -auto -ircnet worknet irc.mycompany.com 6667 password
271 </pre>
272
273 <p>The -auto option specifies that this server is automatically connected
274 at startup. You don't need to make more than one server with -auto
275 option to one IRC network, other servers are automatically connected in
276 same network if the -auto server fails.</p>
277
278 <p>And finally channels:</p>
279
280 <pre>
281      /CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass"
282                   #irssi efnet
283      /CHANNEL ADD -auto #secret ircnet password
284 </pre>
285
286 <p>-bots and -botcmd should be the only ones needing a bit of
287 explaining. They're used to send commands automatically to bot when
288 channel is joined, usually to get ops automatically. You can specify
289 multiple bot masks with -bots option separated with spaces (and
290 remember to quote the string then). The $0 in -botcmd specifies the
291 first found bot in the list. If you don't need the bot masks (ie. the
292 bot is always with the same nick, like chanserv) you can give only the
293 -botcmd option and the command is always sent.</p>
294
295
296 <h3><a id="c4">4. Setting up windows and automatically restoring them at startup</a></h3>
297
298 <p>First connect to all the servers, join the channels and create the
299 queries you want. If you want to move the windows or channels around
300 use commands:</p>
301
302 <pre>
303      /WINDOW MOVE LEFT/RIGHT/number    - move window elsewhere
304      /WINDOW ITEM MOVE &lt;number&gt;|&lt;name&gt; - move channel/query to another window
305 </pre>
306
307 <p>When everything looks the way you like, use /LAYOUT SAVE command
308 (and /SAVE, if you don't have autosaving enabled) and when you start
309 irssi next time, irssi remembers the positions of the channels, queries
310 and everything. This "remembering" doesn't mean that simply using
311 /LAYOUT SAVE would automatically make irssi reconnect to all servers
312 and join all channels, you'll need the /SERVER ADD -auto and /CHANNEL
313 ADD -auto commands to do that.</p>
314
315 <p>If you want to change the layout, you just rearrange the layout like
316 you want it and use /LAYOUT SAVE again. If you want to remove the
317 layout for some reason, use /LAYOUT RESET.</p>
318
319
320 <h3><a id="c5">5. Status and msgs windows &amp; message levels</a></h3>
321
322 <p>By default, all the "extra messages" go to status window. This means
323 pretty much all messages that don't clearly belong to some channel or
324 query. Some people like it, some don't. If you want to remove it, use</p>
325
326 <pre>
327      /SET use_status_window OFF
328 </pre>
329
330 <p>This doesn't have any effect until you restart irssi. If you want to
331 remove it immediately, just /WINDOW CLOSE it.</p>
332
333 <p>Another common window is "messages window", where all private
334 messages go. By default it's disabled and query windows are created
335 instead. To make all private messages go to msgs window, say:</p>
336
337 <pre>
338      /SET use_msgs_window ON
339      /SET autocreate_query_level DCCMSGS  (or if you don't want queries to
340                                            dcc chats either, say NONE)
341 </pre>
342
343 <p>use_msgs_window either doesn't have any effect until restarting
344 irssi. To create it immediately say:</p>
345
346 <pre>
347      /WINDOW NEW HIDE     - create the window
348      /WINDOW NAME (msgs)  - name it to "(msgs)"
349      /WINDOW LEVEL MSGS   - make all private messages go to this window
350      /WINDOW MOVE 1       - move it to first window
351 </pre>
352
353 <p>Note that neither use_msgs_window nor use_status_window have any
354 effect at all if /LAYOUT SAVE has been used.</p>
355
356 <p>This brings us to message levels.. What are they? All messages that
357 irssi prints have one or more "message levels". Most common are PUBLIC
358 for public messages in channels, MSGS for private messages and CRAP for
359 all sorts of messages with no real classification. You can get a whole
360 list of levels with</p>
361
362 <pre>
363      /HELP levels
364 </pre>
365
366 <p>Status window has message level "ALL -MSGS", meaning that all messages,
367 except private messages, without more specific place go to status
368 window. The -MSGS is there so it doesn't conflict with messages
369 window.</p>
370
371
372 <h3><a id="c6">6. How support for multiple servers works in irssi</a></h3>
373
374 <p>ircii and several other clients support multiple servers by placing
375 the connection into some window. IRSSI DOES NOT. There is no required
376 relationship between window and server. You can connect to 10 servers
377 and manage them all in just one window, or join channel in each one of
378 them to one sigle window if you really want to. That being said, here's
379 how you do connect to new server without closing the old connection:</p>
380
381 <pre>
382      /CONNECT irc.server.org
383 </pre>
384
385 <p>Instead of the /SERVER which disconnects the existing connection. To
386 see list of all active connections, use /SERVER without any parameters.
387 You should see a list of something like:</p>
388
389 <pre>
390      -!- IRCNet: irc.song.fi:6667 (IRCNet)
391      -!- OPN: tolkien.openprojects.net:6667 (OPN)
392      -!- RECON-1: 192.168.0.1:6667 () (02:59 left before reconnecting)
393 </pre>
394
395 <p>Here you see that we're connected to IRCNet and OPN networks. The
396 the IRCNet at the beginning is called the "server tag" while the
397 (IRCnet) at the end shows the IRC network. Server tag specifies unique
398 tag to refer to the server, usually it's the same as the IRC network.
399 When the IRC network isn't known it's some part of the server name.
400 When there's multiple connections to same IRC network or server, irssi
401 adds a number after the tag so there could be ircnet, ircnet2, ircnet3
402 etc.</p>
403
404 <p>Server tags beginning with RECON- mean server reconnections. Above we
405 see that connection to server at 192.168.0.1 wasn't successful and
406 irssi will try to connect it again in 3 minutes.</p>
407
408 <p>To disconnect one of the servers, or to stop irssi from
409 reconnecting, use</p>
410
411 <pre>
412      /DISCONNECT ircnet   - disconnect server with tag "ircnet"
413      /DISCONNECT recon-1  - stop trying to reconnect to RECON-1 server
414      /RMRECONNS           - stop all server reconnections
415
416      /RECONNECT recon-1   - immediately try reconnecting back to RECON-1
417      /RECONNECT ALL       - immediately try reconnecting back to all
418                             servers in reconnection queue
419 </pre>
420
421 <p>Now that you're connected to all your servers, you'll have to know how
422 to specify which one of them you want to use. One way is to have an
423 empty window, like status or msgs window. In it, you can specify which
424 server to set active with</p>
425
426 <pre>
427      /WINDOW SERVER tag    - set server "tag" active
428      Ctrl-X                - set the next server in list active
429 </pre>
430
431 <p>When the server is active, you can use it normally. When there's
432 multiple connected servers, irssi adds [servertag] prefix to all
433 messages in non-channel/query messages so you'll know where it came
434 from.</p>
435
436 <p>Several commands also accept -servertag option to specify which server
437 it should use:</p>
438
439 <pre>
440      /MSG -tag nick message
441      /JOIN -tag #channel
442      /QUERY -tag nick
443 </pre>
444
445 <p>/MSG tab completion also automatically adds the -tag option when
446 nick isn't in active server.</p>
447
448 <p>Window's server can be made sticky. When sticky, it will never
449 automatically change to anything else, and if server gets disconnected, the
450 window won't have any active server. When the server gets connected again,
451 it is automatically set active in the window. To set the window's server
452 sticky use</p>
453
454 <pre>
455      /WINDOW SERVER -sticky tag
456 </pre>
457
458 <p>This is useful if you wish to have multiple status or msgs windows, one
459 for each server. Here's how to do them (repeat for each server)</p>
460
461 <pre>
462      /WINDOW NEW HIDE
463      /WINDOW NAME (status)
464      /WINDOW LEVEL ALL -MSGS
465      /WINDOW SERVER -sticky ircnet
466
467      /WINDOW NEW HIDE
468      /WINDOW NAME (msgs)
469      /WINDOW LEVEL MSGS
470      /WINDOW SERVER -sticky ircnet
471 </pre>
472
473 <h3><a id="c7">7. /LASTLOG and jumping around in scrollback</a></h3>
474
475 <p>/LASTLOG command can be used for searching texts in scrollback
476 buffer. Simplest usages are</p>
477
478 <pre>
479      /LASTLOG word     - print all lines with "word" in them
480      /LASTLOG word 10  - print last 10 occurances of "word"
481      /LASTLOG -topics  - print all topic changes
482 </pre>
483
484 <p>If there's more than 1000 lines to be printed, irssi thinks that you
485 probably made some mistake and won't print them without -force option.
486 If you want to save the full lastlog to file, use</p>
487
488 <pre>
489      /LASTLOG -file ~/irc.log
490 </pre>
491
492 <p>With -file option you don't need -force even if there's more than 1000
493 lines. /LASTLOG has a lot of other options too, see /HELP lastlog for
494 details.</p>
495
496 <p>Once you've found the lines you were interested in, you might want
497 to check the discussion around them. Irssi has /SCROLLBACK (or alias
498 /SB) command for jumping around in scrollback buffer. Since /LASTLOG
499 prints the timestamp when the message was originally printed, you can
500 use /SB GOTO hh:mm to jump directly there. To get back to the bottom of
501 scrollback, use /SB END command.</p>
502
503
504 <h3><a id="c8">8. Logging</a></h3>
505
506 <p>Irssi can automatically log important messages when you're set away
507 (/AWAY reason). When you set yourself unaway (/AWAY), the new messages
508 in away log are printed to screen. You can configure it with:</p>
509
510 <pre>
511      /SET awaylog_level MSGS HILIGHT     - Specifies what messages to log
512      /SET awaylog_file ~/.irssi/away.log - Specifies the file to use
513 </pre>
514
515 <p>Easiest way to start logging with Irssi is to use autologging. With it
516 Irssi logs all channels and private messages to specified directory.
517 You can turn it on with</p>
518
519 <pre>
520      /SET autolog ON
521 </pre>
522
523 <p>By default it logs pretty much everything execept CTCPS or CRAP
524 (/WHOIS requests, etc). You can specify the logging level yourself with</p>
525
526 <pre>
527      /SET autolog_level ALL -CRAP -CLIENTCRAP -CTCPS (this is the default)
528 </pre>
529
530 <p>By default irssi logs to ~/irclogs/&lt;servertag&gt;/&lt;target&gt;.log.
531 You can change this with</p>
532
533 <pre>
534      /SET autolog_path ~/irclogs/$tag/$0.log (this is the default)
535 </pre>
536
537 <p>The path is automatically created if it doesn't exist. $0 specifies
538 the target (channel/nick). You can make irssi automatically rotate the
539 logs by adding date/time formats to the file name. The formats are in
540 "man strftime" format. For example</p>
541
542 <pre>
543      /SET autolog_path ~/irclogs/%Y/$tag/$0.%m-%d.log
544 </pre>
545
546 <p>For logging only some specific channels or nicks, see /HELP log</p>
547
548
549 <h3><a id="c9">9. Changing keyboard bindings</a></h3>
550
551 <p>You can change any keyboard binding that terminal lets irssi know
552 about. It doesn't let irssi know everything, so for example
553 shift-backspace can't be bound unless you modify xterm resources
554 somehow.</p>
555
556 <p>/HELP bind tells pretty much everything there is to know about
557 keyboard bindings. However, there's the problem of how to bind some
558 non-standard keys. They might differ a bit with each terminal, so
559 you'll need to find out what exactly the keypress produces. Easiest
560 way to check that would be to see what it prints in "cat". Here's
561 an example for pressing F1 key:</p>
562
563 <pre>
564 [cras@hurina] ~% cat
565 ^[OP
566 </pre>
567
568 <p>So in irssi you would use /BIND ^[OP /ECHO F1 pressed. If you use
569 multiple terminals which have different bindings for the key, it would
570 be better to use eg.:</p>
571
572 <pre>
573 /BIND ^[OP key F1
574 /BIND ^[11~ key F1
575 /BIND F1 /ECHO F1 pressed.
576 </pre>
577
578 <h3><a id="c10">10. Proxies and IRC bouncers</a></h3>
579
580 <p>Irssi supports connecting to IRC servers via a proxy. All server
581 connections are then made through it, and if you've set up everything
582 properly, you don't need to do any /QUOTE SERVER commands manually.</p>
583
584 <p>Here's an example: You have your bouncer (lets say, BNC or BNC-like)
585 listening in irc.bouncer.org port 5000. You want to use it to connect
586 to servers irc.dalnet and irc.efnet.org. First you'd need to setup the
587 bouncer:</p>
588
589 <pre>
590      /SET use_proxy ON
591      /SET proxy_address irc.bouncer.org
592      /SET proxy_port 5000
593
594      /SET proxy_password YOUR_BNC_PASSWORD_HERE
595      /SET -clear proxy_string
596      /SET proxy_string_after conn %s %d
597 </pre>
598
599 <p>Then you'll need to add the server connections. These are done
600 exactly as if you'd want to connect directly to them. Nothing special
601 about them:</p>
602
603 <pre>
604      /SERVER ADD -auto -ircnet dalnet irc.dal.net
605      /SERVER ADD -auto -ircnet efnet irc.efnet.org
606 </pre>
607
608 <p>With the proxy /SETs however, irssi now connects to those servers
609 through your BNC. All server connections are made through them so you
610 can just forget that your bouncer even exists.</p>
611
612 <p>If you don't want to use the proxy for some reason, there's -noproxy
613 option which you can give to /SERVER and /SERVER ADD commands.</p>
614
615 <p><strong>Proxy specific settings:</strong></p>
616
617 <p>All proxies have these settings in common:</p>
618
619 <pre>
620      /SET use_proxy ON
621      /SET proxy_address &lt;Proxy host address&gt;
622      /SET proxy_port &lt;Proxy port&gt;
623 </pre>
624
625 <p><strong>HTTP proxy</strong></p>
626
627 <p>Use these settings with HTTP proxies:</p>
628
629 <pre>
630      /SET -clear proxy_password
631      /EVAL SET proxy_string CONNECT %s:%d\n\n
632 </pre>
633
634 <p><strong>BNC</strong></p>
635
636 <pre>
637      /SET proxy_password your_pass
638      /SET -clear proxy_string
639      /SET proxy_string_after conn %s %d
640 </pre>
641
642 <p><strong>dircproxy</strong></p>
643
644 <p>dircproxy separates the server connections by passwords. So, if you
645 for example have ircnet connection with password ircpass and
646 openprojects connection with opnpass, you would do something like
647 this:</p>
648
649 <pre>
650      /SET -clear proxy_password
651      /SET -clear proxy_string
652
653      /SERVER ADD -auto -ircnet ircnet fake.ircnet 6667 ircpass
654      /SERVER ADD -auto -ircnet opn fake.opn 6667 opnpass
655 </pre>
656
657 <p>The server name and port you give isn't used anywhere, so you can
658 put anything you want in there.</p>
659
660 <p><strong>psyBNC</strong></p>
661
662 <p>psyBNC has internal support for multiple servers. However, it could
663 be a bit annoying to use, and some people just use different users for
664 connecting to different servers. You can manage this in a bit same way
665 as with dircproxy, by creating fake connections:</p>
666
667 <pre>
668     /SET -clear proxy_password
669     /SET -clear proxy_string
670
671     /IRCNET ADD -user ircnetuser ircnet
672     /SERVER ADD -auto -ircnet ircnet fake.ircnet 6667 ircpass
673     /IRCNET ADD -user opnuser opn
674     /SERVER ADD -auto -ircnet opn fake.opn 6667 opnpass
675 </pre>
676
677 <p>So, you'll specify the usernames with /IRCNET ADD command, and the
678 user's password with /SERVER ADD.</p>
679
680 <p><strong>Irssi proxy</strong></p>
681
682 <p>Irssi contains it's own proxy which you can build giving
683 <strong>--with-proxy</strong> option to configure. You'll still need to run
684 irssi in a screen to use it though.</p>
685
686 <p>Irssi proxy is a bit different than most proxies, normally proxies create
687 a new connection to IRC server when you connect to it, but with irssi proxy
688 all the clients use the same IRC server connection (a bit like how screen -x
689 works).</p>
690
691 <p>Irssi proxy supports sharing multiple server connections in different
692 ports, like you can share ircnet in port 2777 and efnet in port 2778.</p>
693
694 <p>Usage in proxy side:</p>
695
696 <pre>
697      /LOAD proxy
698      /SET irssiproxy_password &lt;password&gt;
699      /SET irssiproxy_ports &lt;ircnet&gt;=&lt;port&gt; ... (eg. ircnet=2777 efnet=2778)
700 </pre>
701
702 <p><strong>NOTE</strong>: you <strong>MUST</strong> add all the servers you
703 are using to server and ircnet lists with /SERVER ADD and /IRCNET ADD.
704 ..Except if you really don't want to for some reason, and you only use
705 one server connection, you may simply set:</p>
706
707 <pre>
708      /SET irssiproxy_ports *=2777
709 </pre>
710
711 <p>Usage in client side:</p>
712
713 <p>Just connect to the irssi proxy like it is a normal server with password
714 specified in /SET irssiproxy_password. For example:</p>
715
716 <pre>
717      /SERVER ADD -ircnet ircnet my.irssi-proxy.org 2777 secret
718      /SERVER ADD -ircnet efnet my.irssi-proxy.org 2778 secret
719 </pre>
720
721 <p>Irssi proxy works fine with other IRC clients as well.</p>
722
723 <p><strong>SOCKS</strong></p>
724
725 Irssi can be compiled with socks support (<strong>--with-socks</strong>
726 option to configure), but I don't really know how it works, if at all. /SET
727 proxy settings don't have anything to do with socks however.
728
729 <p><strong>Others</strong></p>
730
731 <p>IRC bouncers usually work like IRC servers, and want a password. You can
732 give it with:</p>
733
734 <pre>
735      /SET proxy_password &lt;password&gt;
736 </pre>
737
738 <p>Irssi's defaults for connect strings are</p>
739
740 <pre>
741      /SET proxy_string CONNECT %s %d
742      /SET proxy_string_after
743 </pre>
744
745 <p>The proxy_string is sent before NICK/USER commands, the
746 proxy_string_after is sent after them. %s and %d can be used with both
747 of them.</p>
748
749 <h3><a id="c11">11. Irssi's settings</a></h3>
750
751 <p>You probably don't like Irssi's default settings. I don't like them.
752 But I'm still convinced that they're pretty good defaults. Here's some
753 of them you might want to change (the default value is shown):</p>
754
755 <p><strong>Queries</strong></p>
756
757 <dl>
758 <dt>/SET autocreate_own_query ON</dt>
759   <dd>Should new query window be created when you send message to someone
760   (with /msg).</dd>
761
762 <dt>/SET autocreate_query_level MSGS</dt>
763   <dd>New query window should be created when receiving messages with
764   this level. MSGS, DCCMSGS and NOTICES levels work currently. You can
765   disable this with /SET -clear autocrate_query_level.</dd>
766
767 <dt>/SET autoclose_query 0</dt>
768   <dd>Query windows can be automatically closed after certain time of
769   inactivity. Queries with unread messages aren't closed and active
770   window is neither never closed. The value is given in seconds.</dd>
771 </dl>
772
773 <p><strong>Windows</strong></p>
774
775 <dl>
776 <dt>/SET use_msgs_window OFF</dt>
777   <dd>Create messages window at startup. All private messages go to this
778   window. This only makes sense if you've disabled automatic query
779   windows. Message window can also be created manually with /WINDOW LEVEL
780   MSGS, /WINDOW NAME (msgs).</dd>
781
782 <dt>/SET use_status_window ON</dt>
783   <dd>Create status window at startup. All messages that don't really
784   have better place go here, like all /WHOIS replies etc. Status window
785   can also be created manually with /WINDOW LEVEL ALL -MSGS, /WINDOW NAME
786   (status).</dd>
787
788 <dt>/SET autocreate_windows ON</dt>
789   <dd>Should we create new windows for new window items or just place
790   everything in one window</dd>
791
792 <dt>/SET autoclose_windows ON</dt>
793   <dd>Should window be automatically closed when the last item in them is
794   removed (ie. /PART, /UNQUERY).</dd>
795
796 <dt>/SET reuse_unused_windows OFF</dt>
797   <dd>When finding where to place new window item (channel, query) Irssi
798   first tries to use already existing empty windows. If this is set ON,
799   new window will always be created for all window items. This setting is
800   ignored if autoclose_windows is set ON.</dd>
801
802 <dt>/SET window_auto_change OFF</dt>
803   <dd>Should Irssi automatically change to automatically created windows
804   - usually queries when someone sends you a message. To prevent
805   accidentally sending text meant to some other channel/nick, Irssi
806   clears the input buffer when changing the window. The text is still in
807   scrollback buffer, you can get it back with pressing arrow up key.</dd>
808
809 <dt>/SET print_active_channel OFF</dt>
810   <dd>When you keep more than one channel in same window, Irssi prints
811   the messages coming to active channel as &quot;&lt;nick&gt; text&quot;
812   and other channels as &quot;&lt;nick:channel&gt; text&quot;. If this
813   setting is set ON, the messages to active channels are also printed in
814   the latter way.</dd>
815
816 <dt>/SET window_history OFF</dt>
817   <dd>Should command history be kept separate for each window.</dd>
818 </dl>
819
820
821 <p><strong>User information</strong></p>
822
823 <dl>
824 <dt>/SET nick</dt>
825   <dd>Your nick name</dd>
826
827 <dt>/SET alternate_nick</dt>
828   <dd>Your alternate nick.</dd>
829
830 <dt>/SET user_name</dt>
831   <dd>Your username, if you have ident enabled this doesn't affect 
832   anything</dd>
833
834 <dt>/SET real_name</dt>
835   <dd>Your real name.</dd>
836 </dl>
837
838
839 <p><strong>Server information</strong></p>
840
841 <dl>
842 <dt>/SET skip_motd OFF</dt>
843   <dd>Should we hide server's MOTD (Message Of The Day).</dd>
844
845 <dt>/SET server_reconnect_time 300</dt>
846   <dd>Seconds to wait before connecting to same server again. Don't set
847   this too low since it usually doesn't help at all - if the host is
848   down, the few extra minutes of waiting won't hurt much.</dd>
849
850 <dt>/SET lag_max_before_disconnect 300</dt>
851   <dd>Maximum server lag in seconds before disconnecting and trying to
852   reconnect. This happens mostly only when network breaks between you and
853   IRC server.</dd>
854 </dl>
855
856
857 <p><strong>Appearance</strong></p>
858
859 <dl>
860 <dt>/SET timestamps ON</dt>
861   <dd>Show timestamps before each message.</dd>
862
863 <dt>/SET hide_text_style OFF</dt>
864   <dd>Hide all bolds, underlines, MIRC colors, etc.</dd>
865
866 <dt>/SET show_nickmode ON</dt>
867   <dd>Show the nick's mode before nick in channels, ie. ops have
868   &lt;@nick&gt;, voices &lt;+nick&gt; and others &lt;&nbsp;nick&gt;</dd>
869
870 <dt>/SET show_nickmode_empty ON</dt>
871   <dd>If the nick doesn't have a mode, use one space. ie. ON:
872   &lt;&nbsp;nick&gt;, OFF: &lt;nick&gt;</dd>
873
874 <dt>/SET show_quit_once OFF</dt>
875   <dd>Show quit message only once in some of the channel windows the
876   nick was in instead of in all windows.</dd>
877
878 <dt>/SET lag_min_show 100</dt>
879   <dd>Show the server lag in status bar if it's bigger than this, the
880   unit is 1/100 of seconds (ie. the default value of 100 = 1 second).</dd>
881
882 <dt>/SET indent 10</dt>
883   <dd>When lines are longer than screen width they have to be split to
884   multiple lines. This specifies how much space to put at the beginning
885   of the line before the text begins. This can be overridden in text
886   formats with %| format.</dd>
887
888 <dt>/SET activity_hide_targets</dt>
889   <dd>If you don't want to see window activity in some certain channels
890   or queries, list them here. For example "#boringchannel =bot1 =bot2".
891   If any highlighted text or message for you appears in that window, this
892   setting is ignored and the activity is shown.</dd>
893 </dl>
894
895 <p><strong>Nick completion</strong></p>
896
897 <dl>
898 <dt>/SET completion_auto OFF</dt>
899   <dd>Automatically complete the nick if line begins with start of nick
900   and the completion character. Learn to use the tab-completion instead,
901   it's a lot better ;)</dd>
902
903 <dt>/SET completion_char :</dt>
904   <dd>Completion character to use.</dd>
905 </dl>
906
907 <h3><a id="c12">12. Statusbar</a></h3>
908
909 <p><strong>/STATUSBAR</strong> displays a list of statusbars:</p>
910
911 <pre>
912 Name                           Type   Placement Position Visible
913 window                         window bottom    0        always
914 window_inact                   window bottom    1        inactive
915 prompt                         root   bottom    100      always
916 topic                          root   top       1        always
917 </pre>
918
919 <p><strong>/STATUSBAR &lt;name&gt;</strong> prints the statusbar
920 settings and it's items. <strong>/STATUSBAR &lt;name&gt;
921 ENABLE|DISABLE</strong> enables/disables the statusbar.
922 <strong>/STATUSBAR &lt;name&gt; RESET</strong> resets the statusbar to
923 it's default settings, or if the statusbar was created by you, it will be
924 removed.</p>
925
926 <p>Type can be window or root, meaning if the statusbar should be
927 created for each split window, or just once. Placement can be top or
928 bottom. Position is a number, the higher the value the lower in screen
929 it is. Visible can be always, active or inactive. Active/inactive is
930 useful only with split windows, one split window is active and the rest
931 are inactive. These settings can be changed with:</p>
932
933 <ul>
934 <li>STATUSBAR &lt;name&gt; TYPE window|root</li>
935 <li>STATUSBAR &lt;name&gt; PLACEMENT top|bottom</li>
936 <li>STATUSBAR &lt;name&gt; POSITION &lt;num&gt;</li>
937 <li>STATUSBAR &lt;name&gt; VISIBLE always|active|inactive</li>
938 </ul>
939
940 <p>When loading a new statusbar scripts, you'll need to also specify
941 where you want to show it. Statusbar items can be modified with:</p>
942
943 <ul>
944 <li>10:52 STATUSBAR &lt;name&gt; ADD [-before | -after &lt;item&gt;] [-priority #] [-alignment left|right] &lt;item&gt;</li>
945 <li>10:52 STATUSBAR &lt;name&gt; REMOVE &lt;item&gt;</li>
946 </ul>
947
948 <p>The item name with statusbar scripts is usually same as the script's
949 name. Script's documentation should tell if this isn't the case. So, to
950 add mail.pl before the window activity item (see the list with
951 /STATUSBAR window), use: <strong>/STATUSBAR window ADD -before act
952 mail</strong>.</p>