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