mirror of
https://github.com/irssi/irssi.git
synced 2024-10-27 05:20:20 -04:00
aaa546ab87
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2676 dbcabf3a-b0e7-0310-adc4-f8d773084564
976 lines
34 KiB
HTML
976 lines
34 KiB
HTML
<h2>Startup HOWTO</h2>
|
|
|
|
<h3>To new Irssi users (not to new IRC users ..)</h3>
|
|
|
|
<p>Copyright (c) 2000-2002 by Timo Sirainen</p>
|
|
|
|
|
|
<p>Index with some FAQ questions that are answered in the chapter:</p>
|
|
|
|
<ol>
|
|
<li><a href="#c1">For all the lazy people</a>
|
|
<ul>
|
|
<li>This window management is just weird, I want it exactly like ircII</li>
|
|
</ul></li>
|
|
<li><a href="#c2">Basic user interface usage</a>
|
|
<ul>
|
|
<li>Split windows work in weird way</li>
|
|
<li>How can I easily switch between windows?</li>
|
|
<li>But alt-1 etc. don't work!</li>
|
|
</ul></li>
|
|
<li><a href="#c3">Server and channel automation</a>
|
|
<ul>
|
|
<li>How do I automatically connect to servers at startup?</li>
|
|
<li>How do I automatically join to channels at startup?</li>
|
|
<li>How do I automatically send commands to server at connect?</li>
|
|
</ul></li>
|
|
<li><a href="#c4">Setting up windows and automatically restoring them
|
|
at startup</a></li>
|
|
<li><a href="#c5">Status and msgs windows & message levels</a>
|
|
<ul>
|
|
<li>I want /WHOIS to print reply to current window</li>
|
|
<li>I want all messages to go to one window, not create new windows</li>
|
|
</ul></li>
|
|
<li><a href="#c6">How support for multiple servers works in irssi</a>
|
|
<ul>
|
|
<li>I connected to some server that doesn't respond and now irssi
|
|
keeps trying to reconnect to it again and again, how can I stop
|
|
it??</li>
|
|
<li>I want to have own status and/or msgs window for each servers</li>
|
|
</ul></li>
|
|
<li><a href="#c7">/LASTLOG and jumping around in scrollback</a>
|
|
<ul>
|
|
<li>How can I save all texts in a window to file?</li>
|
|
</ul></li>
|
|
<li><a href="#c8">Logging</a></li>
|
|
<li><a href="#c9">Changing keyboard bindings</a>
|
|
<ul>
|
|
<li>How do I make F1 key do something?</li>
|
|
</ul></li>
|
|
<li><a href="#c10">Proxies and IRC bouncers</a>
|
|
<ul>
|
|
<li>What's this irssi-proxy?</li>
|
|
</ul></li>
|
|
<li><a href="#c11">Irssi's settings</a></li>
|
|
<li><a href="#c12">Statusbar</a>
|
|
<ul>
|
|
<li>I loaded a statusbar script but it's not visible anywhere!</li>
|
|
</ul></li>
|
|
</ol>
|
|
|
|
<h3><a id="c1">1. For all the lazy people</a></h3>
|
|
|
|
<p>These settings should give you pretty good defaults (the ones I use):</p>
|
|
|
|
<p>If colors don't work, and you know you're not going to use some
|
|
weird non-VT compatible terminal (you most probably aren't), just
|
|
say:</p>
|
|
|
|
<pre>
|
|
/SET term_force_colors ON
|
|
</pre>
|
|
|
|
<p>I don't like automatic query windows, I don't like status window, I do
|
|
like msgs window where all messages go:</p>
|
|
|
|
<pre>
|
|
/SET autocreate_own_query OFF
|
|
/SET autocreate_query_level DCCMSGS
|
|
/SET use_status_window OFF
|
|
/SET use_msgs_window ON
|
|
</pre>
|
|
|
|
<p>Disable automatic window closing when <code>/PART</code>ing channel or
|
|
<code>/UNQUERY</code>ing query:</p>
|
|
|
|
<pre>
|
|
/SET autoclose_windows OFF
|
|
/SET reuse_unused_windows ON
|
|
</pre>
|
|
|
|
<p>Here's the settings that make irssi work exactly like ircII in window
|
|
management (send me a note if you can think of more):</p>
|
|
|
|
<pre>
|
|
/SET autocreate_own_query OFF
|
|
/SET autocreate_query_level NONE
|
|
/SET use_status_window OFF
|
|
/SET use_msgs_window OFF
|
|
/SET reuse_unused_windows ON
|
|
/SET windows_auto_renumber OFF
|
|
|
|
/SET autostick_split_windows OFF
|
|
/SET autoclose_windows OFF
|
|
/SET print_active_channel ON
|
|
</pre>
|
|
|
|
<p>And example how to add servers:</p>
|
|
|
|
<p>(openprojects network, identify with nickserv and wait for 2 seconds before
|
|
joining channels)</p>
|
|
|
|
<pre>
|
|
/IRCNET ADD -autosendcmd "/^msg nickserv ident pass;wait -opn 2000" opn
|
|
</pre>
|
|
|
|
<p>Then add some servers to different networks (ircnet is already set up
|
|
for them), irc.kpnqwest.fi is used by default for IRCNet but if it fails,
|
|
irc.funet.fi is tried next:</p>
|
|
|
|
<pre>
|
|
/SERVER ADD -auto -ircnet ircnet irc.kpnqwest.fi 6667
|
|
/SERVER ADD -ircnet ircnet irc.funet.fi 6667
|
|
/SERVER ADD -auto -ircnet efnet efnet.cs.hut.fi 6667
|
|
</pre>
|
|
|
|
<p>Automatically join to channels after connected to server, send op request
|
|
to bot after joined to efnet/#irssi:</p>
|
|
|
|
<pre>
|
|
/CHANNEL ADD -auto #irssi ircnet
|
|
/CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass"
|
|
#irssi efnet
|
|
</pre>
|
|
|
|
If you want lines containing your nick to hilight:
|
|
|
|
<pre>
|
|
/HILIGHT nick
|
|
</pre>
|
|
|
|
<h3><a id="c2">2. Basic user interface usage</a></h3>
|
|
|
|
<p>Windows can be scrolled up/down with PgUp and PgDown keys. If they don't
|
|
work for you, use Meta-p and Meta-n keys. For jumping to beginning or end of
|
|
the buffer, use <code>/SB HOME</code> and <code>/SB END</code> commands.</p>
|
|
|
|
<p>By default, irssi uses "hidden windows" for everything. Hidden window is
|
|
created every time you <code>/JOIN</code> a channel or <code>/QUERY</code>
|
|
someone. There's several ways you can change between these windows:</p>
|
|
|
|
<pre>
|
|
Meta-1, Meta-2, .. Meta-0 - Jump directly between windows 1-10
|
|
Meta-q .. Meta-o - Jump directly between windows 11-19
|
|
/WINDOW <number> - Jump to any window with specified number
|
|
Ctrl-P, Ctrl-N - Jump to previous / next window
|
|
</pre>
|
|
|
|
<p>Clearly the easiest way is to use Meta-number keys. And what is the Meta
|
|
key? For some terminals, it's the same as ALT. If you have Windows keyboard,
|
|
it's probably the left Windows key. If they don't work directly, you'll need
|
|
to set a few X resources (NOTE: these work with both xterm and rxvt):</p>
|
|
|
|
<pre>
|
|
XTerm*eightBitInput: false
|
|
XTerm*metaSendsEscape: true
|
|
</pre>
|
|
|
|
<p>With rxvt, you can also specify which key acts as Meta key. So if you
|
|
want to use ALT instead of Windows key for it, use:</p>
|
|
|
|
<pre>
|
|
rxvt*modifier: alt
|
|
</pre>
|
|
|
|
<p>You could do this by changing the X key mappings:</p>
|
|
|
|
<pre>
|
|
xmodmap -e "keysym Alt_L = Meta_L Alt_L"
|
|
</pre>
|
|
|
|
<p>And how exactly do you set these X resources? For Debian, there's
|
|
<code>/etc/X11/Xresources/xterm</code> file where you can put them and it's
|
|
read automatically when X starts. <code>~/.Xresources</code> and
|
|
<code>~/.Xdefaults</code> files might also work. If you can't get anything
|
|
else to work, just copy and paste those lines to <code>~/.Xresources</code>
|
|
and directly call <code>xrdb -merge ~/.Xresources</code> in some xterm.
|
|
The resources affect only the new xterms you start, not existing ones.</p>
|
|
|
|
<p>Many windows SSH clients also don't allow usage of ALT. One excellent
|
|
client that does allow is putty, you can download it from
|
|
<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">
|
|
http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>.</p>
|
|
|
|
<p>Irssi also supports split windows, they've had some problems in past
|
|
but I think they should work pretty well now :) Here's some commands
|
|
related to them:</p>
|
|
|
|
<pre>
|
|
/WINDOW NEW - Create new split window
|
|
/WINDOW NEW HIDE - Create new hidden window
|
|
/WINDOW CLOSE - Close split or hidden window
|
|
|
|
/WINDOW HIDE [<number>|<name>] - Make the split window hidden window
|
|
/WINDOW SHOW <number>|<name> - Make the hidden window a split window
|
|
|
|
/WINDOW SHRINK [<lines>] - Shrink the split window
|
|
/WINDOW GROW [<lines>] - Grow the split window
|
|
/WINDOW BALANCE - Balance the sizes of all split windows
|
|
</pre>
|
|
|
|
<p>By default, irssi uses "sticky windowing" for split windows. This means
|
|
that windows created inside one split window cannot be moved to another
|
|
split window without some effort. For example you could have following
|
|
window layout:</p>
|
|
|
|
<pre>
|
|
Split window 1: win#1 - Status window, win#2 - Messages window
|
|
Split window 2: win#3 - ircnet/#channel1, win#4 - ircnet/#channel2
|
|
Split window 3: win#5 - efnet/#channel1, win#6 - efnet/#channel2
|
|
</pre>
|
|
|
|
<p>When you are in win#1 and press ALT-6, irssi jumps to split window
|
|
#3 and moves the efnet/#channel2 the active window.</p>
|
|
|
|
<p>With non-sticky windowing the windows don't have any relationship with
|
|
split windows, pressing ALT-6 in win#1 moves win#6 to split window 1
|
|
and sets it active, except if win#6 was already visible in some other
|
|
split window irssi just changes to that split window. This it the way
|
|
windows work with ircii, if you prefer it you can set it with</p>
|
|
|
|
<pre>
|
|
/SET autostick_split_windows OFF
|
|
</pre>
|
|
|
|
<p>Each window can have multiple channels, queries and other "window
|
|
items" inside them. If you don't like windows at all, you disable
|
|
automatic creating of them with</p>
|
|
|
|
<pre>
|
|
/SET autocreate_windows OFF
|
|
</pre>
|
|
|
|
<p>And if you keep all channels in one window, you most probably want
|
|
the channel name printed in each line:</p>
|
|
|
|
<pre>
|
|
/SET print_active_channel ON
|
|
</pre>
|
|
|
|
<p>If you want to group only some channels or queries in one window,
|
|
use</p>
|
|
|
|
<pre>
|
|
/JOIN -window #channel
|
|
/QUERY -window nick
|
|
</pre>
|
|
|
|
<h3><a id="c3">3. Server and channel automation</a></h3>
|
|
|
|
<p>Irssi's multiple IRC network support is IMHO very good - at least
|
|
compared to other clients :) Even if you're only in one IRC network you
|
|
should group all your servers to be in the same IRC network as this
|
|
helps with reconnecting if your primary server breaks and is probably
|
|
useful in some other ways too :) For information how to actually use
|
|
irssi correctly with multiple servers see the chapter 6.</p>
|
|
|
|
<p>First you need to have your IRC network set, use <code>/IRCNET</code>
|
|
command to see if it's already there. If it isn't, use <code>/IRCNET ADD
|
|
yourircnet</code>. If you want to execute some commands automatically when
|
|
you're connected to some network, use <code>-autosendcmd</code> option.
|
|
Here's some examples:</p>
|
|
|
|
<pre>
|
|
/IRCNET ADD -autosendcmd '^msg bot invite' ircnet
|
|
/IRCNET ADD -autosendcmd "/^msg nickserv ident pass;wait -opn 2000" opn
|
|
</pre>
|
|
|
|
<p>After that you need to add your servers. For example:</p>
|
|
|
|
<pre>
|
|
/SERVER ADD -auto -ircnet ircnet irc.kpnqwest.fi 6667
|
|
/SERVER ADD -auto -ircnet worknet irc.mycompany.com 6667 password
|
|
</pre>
|
|
|
|
<p>The <code>-auto</code> option specifies that this server is
|
|
automatically connected at startup. You don't need to make more than one
|
|
server with <code>-auto</code> option to one IRC network, other servers are
|
|
automatically connected in same network if the <code>-auto</code> server
|
|
fails.</p>
|
|
|
|
<p>And finally channels:</p>
|
|
|
|
<pre>
|
|
/CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass"
|
|
#irssi efnet
|
|
/CHANNEL ADD -auto #secret ircnet password
|
|
</pre>
|
|
|
|
<p><code>-bots</code> and <code>-botcmd</code> should be the only ones
|
|
needing a bit of explaining. They're used to send commands automatically to
|
|
bot when channel is joined, usually to get ops automatically. You can
|
|
specify multiple bot masks with <code>-bots</code> option separated with
|
|
spaces (and remember to quote the string then). The $0 in
|
|
<code>-botcmd</code> specifies the first found bot in the list. If you
|
|
don't need the bot masks (ie. the bot is always with the same nick, like
|
|
chanserv) you can give only the <code>-botcmd</code> option and the command
|
|
is always sent.</p>
|
|
|
|
<h3><a id="c4">4. Setting up windows and automatically restoring them at startup</a></h3>
|
|
|
|
<p>First connect to all the servers, join the channels and create the
|
|
queries you want. If you want to move the windows or channels around
|
|
use commands:</p>
|
|
|
|
<pre>
|
|
/WINDOW MOVE LEFT/RIGHT/number - move window elsewhere
|
|
/WINDOW ITEM MOVE <number>|<name> - move channel/query to another window
|
|
</pre>
|
|
|
|
<p>When everything looks the way you like, use <code>/LAYOUT SAVE</code>
|
|
command (and <code>/SAVE</code>, if you don't have autosaving enabled) and
|
|
when you start irssi next time, irssi remembers the positions of the
|
|
channels, queries and everything. This "remembering" doesn't mean that
|
|
simply using <code>/LAYOUT SAVE</code> would automatically make irssi
|
|
reconnect to all servers and join all channels, you'll need the
|
|
<code>/SERVER ADD -auto</code> and <code>/CHANNEL ADD -auto</code> commands
|
|
to do that.</p>
|
|
|
|
<p>If you want to change the layout, you just rearrange the layout like
|
|
you want it and use <code>/LAYOUT SAVE</code> again. If you want to remove
|
|
the layout for some reason, use <code>/LAYOUT RESET.</code></p>
|
|
|
|
|
|
<h3><a id="c5">5. Status and msgs windows & message levels</a></h3>
|
|
|
|
<p>By default, all the "extra messages" go to status window. This means
|
|
pretty much all messages that don't clearly belong to some channel or
|
|
query. Some people like it, some don't. If you want to remove it, use</p>
|
|
|
|
<pre>
|
|
/SET use_status_window OFF
|
|
</pre>
|
|
|
|
<p>This doesn't have any effect until you restart irssi. If you want to
|
|
remove it immediately, just <code>/WINDOW CLOSE</code> it.</p>
|
|
|
|
<p>Another common window is "messages window", where all private
|
|
messages go. By default it's disabled and query windows are created
|
|
instead. To make all private messages go to msgs window, say:</p>
|
|
|
|
<pre>
|
|
/SET use_msgs_window ON
|
|
/SET autocreate_query_level DCCMSGS (or if you don't want queries to
|
|
dcc chats either, say NONE)
|
|
</pre>
|
|
|
|
<p>use_msgs_window either doesn't have any effect until restarting
|
|
irssi. To create it immediately say:</p>
|
|
|
|
<pre>
|
|
/WINDOW NEW HIDE - create the window
|
|
/WINDOW NAME (msgs) - name it to "(msgs)"
|
|
/WINDOW LEVEL MSGS - make all private messages go to this window
|
|
/WINDOW MOVE 1 - move it to first window
|
|
</pre>
|
|
|
|
<p>Note that neither use_msgs_window nor use_status_window have any
|
|
effect at all if <code>/LAYOUT SAVE</code> has been used.</p>
|
|
|
|
<p>This brings us to message levels.. What are they? All messages that
|
|
irssi prints have one or more "message levels". Most common are PUBLIC
|
|
for public messages in channels, MSGS for private messages and CRAP for
|
|
all sorts of messages with no real classification. You can get a whole
|
|
list of levels with</p>
|
|
|
|
<pre>
|
|
/HELP levels
|
|
</pre>
|
|
|
|
<p>Status window has message level <code>ALL -MSGS</code>, meaning that all
|
|
messages, except private messages, without more specific place go to status
|
|
window. The <code>-MSGS</code> is there so it doesn't conflict with
|
|
messages window.</p>
|
|
|
|
|
|
<h3><a id="c6">6. How support for multiple servers works in irssi</a></h3>
|
|
|
|
<p>ircii and several other clients support multiple servers by placing
|
|
the connection into some window. IRSSI DOES NOT. There is no required
|
|
relationship between window and server. You can connect to 10 servers
|
|
and manage them all in just one window, or join channel in each one of
|
|
them to one sigle window if you really want to. That being said, here's
|
|
how you do connect to new server without closing the old connection:</p>
|
|
|
|
<pre>
|
|
/CONNECT irc.server.org
|
|
</pre>
|
|
|
|
<p>Instead of the <code>/SERVER</code> which disconnects the existing
|
|
connection. To see list of all active connections, use <code>/SERVER</code>
|
|
without any parameters. You should see a list of something like:</p>
|
|
|
|
<pre>
|
|
-!- IRCNet: irc.song.fi:6667 (IRCNet)
|
|
-!- OPN: tolkien.openprojects.net:6667 (OPN)
|
|
-!- RECON-1: 192.168.0.1:6667 () (02:59 left before reconnecting)
|
|
</pre>
|
|
|
|
<p>Here you see that we're connected to IRCNet and OPN networks. The
|
|
the IRCNet at the beginning is called the "server tag" while the
|
|
(IRCnet) at the end shows the IRC network. Server tag specifies unique
|
|
tag to refer to the server, usually it's the same as the IRC network.
|
|
When the IRC network isn't known it's some part of the server name.
|
|
When there's multiple connections to same IRC network or server, irssi
|
|
adds a number after the tag so there could be ircnet, ircnet2, ircnet3
|
|
etc.</p>
|
|
|
|
<p>Server tags beginning with <code>RECON-</code> mean server
|
|
reconnections. Above we see that connection to server at 192.168.0.1 wasn't
|
|
successful and irssi will try to connect it again in 3 minutes.</p>
|
|
|
|
<p>To disconnect one of the servers, or to stop irssi from
|
|
reconnecting, use</p>
|
|
|
|
<pre>
|
|
/DISCONNECT ircnet - disconnect server with tag "ircnet"
|
|
/DISCONNECT recon-1 - stop trying to reconnect to RECON-1 server
|
|
/RMRECONNS - stop all server reconnections
|
|
|
|
/RECONNECT recon-1 - immediately try reconnecting back to RECON-1
|
|
/RECONNECT ALL - immediately try reconnecting back to all
|
|
servers in reconnection queue
|
|
</pre>
|
|
|
|
<p>Now that you're connected to all your servers, you'll have to know how
|
|
to specify which one of them you want to use. One way is to have an
|
|
empty window, like status or msgs window. In it, you can specify which
|
|
server to set active with</p>
|
|
|
|
<pre>
|
|
/WINDOW SERVER tag - set server "tag" active
|
|
Ctrl-X - set the next server in list active
|
|
</pre>
|
|
|
|
<p>When the server is active, you can use it normally. When there's
|
|
multiple connected servers, irssi adds [servertag] prefix to all
|
|
messages in non-channel/query messages so you'll know where it came
|
|
from.</p>
|
|
|
|
<p>Several commands also accept <code>-servertag</code> option to specify
|
|
which server it should use:</p>
|
|
|
|
<pre>
|
|
/MSG -tag nick message
|
|
/JOIN -tag #channel
|
|
/QUERY -tag nick
|
|
</pre>
|
|
|
|
<p><code>/MSG</code> tab completion also automatically adds the
|
|
<code>-tag</code> option when nick isn't in active server.</p>
|
|
|
|
<p>Window's server can be made sticky. When sticky, it will never
|
|
automatically change to anything else, and if server gets disconnected, the
|
|
window won't have any active server. When the server gets connected again,
|
|
it is automatically set active in the window. To set the window's server
|
|
sticky use</p>
|
|
|
|
<pre>
|
|
/WINDOW SERVER -sticky tag
|
|
</pre>
|
|
|
|
<p>This is useful if you wish to have multiple status or msgs windows, one
|
|
for each server. Here's how to do them (repeat for each server)</p>
|
|
|
|
<pre>
|
|
/WINDOW NEW HIDE
|
|
/WINDOW NAME (status)
|
|
/WINDOW LEVEL ALL -MSGS
|
|
/WINDOW SERVER -sticky ircnet
|
|
|
|
/WINDOW NEW HIDE
|
|
/WINDOW NAME (msgs)
|
|
/WINDOW LEVEL MSGS
|
|
/WINDOW SERVER -sticky ircnet
|
|
</pre>
|
|
|
|
<h3><a id="c7">7. /LASTLOG and jumping around in scrollback</a></h3>
|
|
|
|
<p><code>/LASTLOG</code> command can be used for searching texts in
|
|
scrollback buffer. Simplest usages are</p>
|
|
|
|
<pre>
|
|
/LASTLOG word - print all lines with "word" in them
|
|
/LASTLOG word 10 - print last 10 occurances of "word"
|
|
/LASTLOG -topics - print all topic changes
|
|
</pre>
|
|
|
|
<p>If there's more than 1000 lines to be printed, irssi thinks that you
|
|
probably made some mistake and won't print them without <code>-force</code>
|
|
option. If you want to save the full lastlog to file, use</p>
|
|
|
|
<pre>
|
|
/LASTLOG -file ~/irc.log
|
|
</pre>
|
|
|
|
<p>With <code>-file</code> option you don't need <code>-force</code> even
|
|
if there's more than 1000 lines. <code>/LASTLOG</code> has a lot of other
|
|
options too, see <code>/HELP lastlog</code> for details.</p>
|
|
|
|
<p>Once you've found the lines you were interested in, you might want
|
|
to check the discussion around them. Irssi has <code>/SCROLLBACK</code> (or
|
|
alias <code>/SB</code>) command for jumping around in scrollback buffer.
|
|
Since <code>/LASTLOG</code> prints the timestamp when the message was
|
|
originally printed, you can use <code>/SB GOTO hh:mm</code> to jump
|
|
directly there. To get back to the bottom of scrollback, use <code>/SB
|
|
END</code> command.</p>
|
|
|
|
|
|
<h3><a id="c8">8. Logging</a></h3>
|
|
|
|
<p>Irssi can automatically log important messages when you're set away
|
|
(<code>/AWAY reason</code>). When you set yourself unaway
|
|
(<code>/AWAY</code>), the new messages in away log are printed to screen.
|
|
You can configure it with:</p>
|
|
|
|
<pre>
|
|
/SET awaylog_level MSGS HILIGHT - Specifies what messages to log
|
|
/SET awaylog_file ~/.irssi/away.log - Specifies the file to use
|
|
</pre>
|
|
|
|
<p>Easiest way to start logging with Irssi is to use autologging. With it
|
|
Irssi logs all channels and private messages to specified directory.
|
|
You can turn it on with</p>
|
|
|
|
<pre>
|
|
/SET autolog ON
|
|
</pre>
|
|
|
|
<p>By default it logs pretty much everything execept CTCPS or CRAP
|
|
(<code>/WHOIS</code> requests, etc). You can specify the logging level
|
|
yourself with</p>
|
|
|
|
<pre>
|
|
/SET autolog_level ALL -CRAP -CLIENTCRAP -CTCPS (this is the default)
|
|
</pre>
|
|
|
|
<p>By default irssi logs to ~/irclogs/<servertag>/<target>.log.
|
|
You can change this with</p>
|
|
|
|
<pre>
|
|
/SET autolog_path ~/irclogs/$tag/$0.log (this is the default)
|
|
</pre>
|
|
|
|
<p>The path is automatically created if it doesn't exist. $0 specifies
|
|
the target (channel/nick). You can make irssi automatically rotate the
|
|
logs by adding date/time formats to the file name. The formats are in
|
|
"man strftime" format. For example</p>
|
|
|
|
<pre>
|
|
/SET autolog_path ~/irclogs/%Y/$tag/$0.%m-%d.log
|
|
</pre>
|
|
|
|
<p>For logging only some specific channels or nicks, see <code>/HELP
|
|
log</code></p>
|
|
|
|
|
|
<h3><a id="c9">9. Changing keyboard bindings</a></h3>
|
|
|
|
<p>You can change any keyboard binding that terminal lets irssi know
|
|
about. It doesn't let irssi know everything, so for example
|
|
shift-backspace can't be bound unless you modify xterm resources
|
|
somehow.</p>
|
|
|
|
<p><code>/HELP bind</code> tells pretty much everything there is to know
|
|
about keyboard bindings. However, there's the problem of how to bind some
|
|
non-standard keys. They might differ a bit with each terminal, so you'll
|
|
need to find out what exactly the keypress produces. Easiest way to check
|
|
that would be to see what it prints in <code>cat</code>. Here's an example
|
|
for pressing F1 key:</p>
|
|
|
|
<pre>
|
|
[cras@hurina] ~% cat
|
|
^[OP
|
|
</pre>
|
|
|
|
<p>So in irssi you would use <code>/BIND ^[OP /ECHO F1</code> pressed. If
|
|
you use multiple terminals which have different bindings for the key, it
|
|
would be better to use eg.:</p>
|
|
|
|
<pre>
|
|
/BIND ^[OP key F1
|
|
/BIND ^[11~ key F1
|
|
/BIND F1 /ECHO F1 pressed.
|
|
</pre>
|
|
|
|
<h3><a id="c10">10. Proxies and IRC bouncers</a></h3>
|
|
|
|
<p>Irssi supports connecting to IRC servers via a proxy. All server
|
|
connections are then made through it, and if you've set up everything
|
|
properly, you don't need to do any <code>/QUOTE SERVER</code> commands
|
|
manually.</p>
|
|
|
|
<p>Here's an example: You have your bouncer (lets say, BNC or BNC-like)
|
|
listening in irc.bouncer.org port 5000. You want to use it to connect
|
|
to servers irc.dalnet and irc.efnet.org. First you'd need to setup the
|
|
bouncer:</p>
|
|
|
|
<pre>
|
|
/SET use_proxy ON
|
|
/SET proxy_address irc.bouncer.org
|
|
/SET proxy_port 5000
|
|
|
|
/SET proxy_password YOUR_BNC_PASSWORD_HERE
|
|
/SET -clear proxy_string
|
|
/SET proxy_string_after conn %s %d
|
|
</pre>
|
|
|
|
<p>Then you'll need to add the server connections. These are done
|
|
exactly as if you'd want to connect directly to them. Nothing special
|
|
about them:</p>
|
|
|
|
<pre>
|
|
/SERVER ADD -auto -ircnet dalnet irc.dal.net
|
|
/SERVER ADD -auto -ircnet efnet irc.efnet.org
|
|
</pre>
|
|
|
|
<p>With the proxy <code>/SET</code>s however, irssi now connects to those
|
|
servers through your BNC. All server connections are made through them so
|
|
you can just forget that your bouncer even exists.</p>
|
|
|
|
<p>If you don't want to use the proxy for some reason, there's
|
|
<code>-noproxy</code> option which you can give to <code>/SERVER</code> and
|
|
<code>/SERVER ADD</code> commands.</p>
|
|
|
|
<p><strong>Proxy specific settings:</strong></p>
|
|
|
|
<p>All proxies have these settings in common:</p>
|
|
|
|
<pre>
|
|
/SET use_proxy ON
|
|
/SET proxy_address <Proxy host address>
|
|
/SET proxy_port <Proxy port>
|
|
</pre>
|
|
|
|
<p><strong>HTTP proxy</strong></p>
|
|
|
|
<p>Use these settings with HTTP proxies:</p>
|
|
|
|
<pre>
|
|
/SET -clear proxy_password
|
|
/EVAL SET proxy_string CONNECT %s:%d\n\n
|
|
</pre>
|
|
|
|
<p><strong>BNC</strong></p>
|
|
|
|
<pre>
|
|
/SET proxy_password your_pass
|
|
/SET -clear proxy_string
|
|
/SET proxy_string_after conn %s %d
|
|
</pre>
|
|
|
|
<p><strong>dircproxy</strong></p>
|
|
|
|
<p>dircproxy separates the server connections by passwords. So, if you
|
|
for example have ircnet connection with password ircpass and
|
|
openprojects connection with opnpass, you would do something like
|
|
this:</p>
|
|
|
|
<pre>
|
|
/SET -clear proxy_password
|
|
/SET -clear proxy_string
|
|
|
|
/SERVER ADD -auto -ircnet ircnet fake.ircnet 6667 ircpass
|
|
/SERVER ADD -auto -ircnet opn fake.opn 6667 opnpass
|
|
</pre>
|
|
|
|
<p>The server name and port you give isn't used anywhere, so you can
|
|
put anything you want in there.</p>
|
|
|
|
<p><strong>psyBNC</strong></p>
|
|
|
|
<p>psyBNC has internal support for multiple servers. However, it could
|
|
be a bit annoying to use, and some people just use different users for
|
|
connecting to different servers. You can manage this in a bit same way
|
|
as with dircproxy, by creating fake connections:</p>
|
|
|
|
<pre>
|
|
/SET -clear proxy_password
|
|
/SET -clear proxy_string
|
|
|
|
/IRCNET ADD -user ircnetuser ircnet
|
|
/SERVER ADD -auto -ircnet ircnet fake.ircnet 6667 ircpass
|
|
/IRCNET ADD -user opnuser opn
|
|
/SERVER ADD -auto -ircnet opn fake.opn 6667 opnpass
|
|
</pre>
|
|
|
|
<p>So, you'll specify the usernames with <code>/IRCNET ADD</code> command,
|
|
and the user's password with <code>/SERVER ADD</code>.</p>
|
|
|
|
<p><strong>Irssi proxy</strong></p>
|
|
|
|
<p>Irssi contains it's own proxy which you can build giving
|
|
<code>--with-proxy</code> option to configure. You'll still need to run
|
|
irssi in a screen to use it though.</p>
|
|
|
|
<p>Irssi proxy is a bit different than most proxies, normally proxies
|
|
create a new connection to IRC server when you connect to it, but
|
|
<strong>irssi proxy shares your existing IRC connection(s) to multiple
|
|
clients</strong>. And even more clearly: <strong>You can use only one IRC
|
|
server connection to IRC with as many clients as you want</strong>. Can
|
|
anyone figure out even more easier ways to say this, so I wouldn't need to
|
|
try to explain this thing for minutes every time? :)</p>
|
|
|
|
<p>Irssi proxy supports sharing multiple server connections in different
|
|
ports, like you can share ircnet in port 2777 and efnet in port 2778.</p>
|
|
|
|
<p>Usage in proxy side:</p>
|
|
|
|
<pre>
|
|
/LOAD proxy
|
|
/SET irssiproxy_password <password>
|
|
/SET irssiproxy_ports <ircnet>=<port> ... (eg. ircnet=2777 efnet=2778)
|
|
</pre>
|
|
|
|
<p><strong>NOTE</strong>: you <strong>MUST</strong> add all the servers you
|
|
are using to server and ircnet lists with <code>/SERVER ADD</code> and
|
|
<code>/IRCNET ADD</code>. ..Except if you really don't want to for some
|
|
reason, and you only use one server connection, you may simply set:</p>
|
|
|
|
<pre>
|
|
/SET irssiproxy_ports *=2777
|
|
</pre>
|
|
|
|
<p>Usage in client side:</p>
|
|
|
|
<p>Just connect to the irssi proxy like it is a normal server with password
|
|
specified in <code>/SET irssiproxy_password</code>. For example:</p>
|
|
|
|
<pre>
|
|
/SERVER ADD -ircnet ircnet my.irssi-proxy.org 2777 secret
|
|
/SERVER ADD -ircnet efnet my.irssi-proxy.org 2778 secret
|
|
</pre>
|
|
|
|
<p>Irssi proxy works fine with other IRC clients as well.</p>
|
|
|
|
<p><strong>SOCKS</strong></p>
|
|
|
|
Irssi can be compiled with socks support (<code>--with-socks</code> option
|
|
to configure), but I don't really know how it works, if at all. <code>/SET
|
|
proxy</code> settings don't have anything to do with socks however.
|
|
|
|
<p><strong>Others</strong></p>
|
|
|
|
<p>IRC bouncers usually work like IRC servers, and want a password. You can
|
|
give it with:</p>
|
|
|
|
<pre>
|
|
/SET proxy_password <password>
|
|
</pre>
|
|
|
|
<p>Irssi's defaults for connect strings are</p>
|
|
|
|
<pre>
|
|
/SET proxy_string CONNECT %s %d
|
|
/SET proxy_string_after
|
|
</pre>
|
|
|
|
<p>The proxy_string is sent before NICK/USER commands, the
|
|
proxy_string_after is sent after them. %s and %d can be used with both
|
|
of them.</p>
|
|
|
|
<h3><a id="c11">11. Irssi's settings</a></h3>
|
|
|
|
<p>You probably don't like Irssi's default settings. I don't like them.
|
|
But I'm still convinced that they're pretty good defaults. Here's some
|
|
of them you might want to change (the default value is shown):</p>
|
|
|
|
<p><strong>Queries</strong></p>
|
|
|
|
<dl>
|
|
<dt>/SET autocreate_own_query ON</dt>
|
|
<dd>Should new query window be created when you send message to someone
|
|
(with <code>/MSG</code>).</dd>
|
|
|
|
<dt>/SET autocreate_query_level MSGS</dt>
|
|
<dd>New query window should be created when receiving messages with
|
|
this level. MSGS, DCCMSGS and NOTICES levels work currently. You can
|
|
disable this with <code>/SET -clear autocrate_query_level</code>.</dd>
|
|
|
|
<dt>/SET autoclose_query 0</dt>
|
|
<dd>Query windows can be automatically closed after certain time of
|
|
inactivity. Queries with unread messages aren't closed and active
|
|
window is neither never closed. The value is given in seconds.</dd>
|
|
</dl>
|
|
|
|
<p><strong>Windows</strong></p>
|
|
|
|
<dl>
|
|
<dt>/SET use_msgs_window OFF</dt>
|
|
<dd>Create messages window at startup. All private messages go to this
|
|
window. This only makes sense if you've disabled automatic query
|
|
windows. Message window can also be created manually with /WINDOW LEVEL
|
|
MSGS, /WINDOW NAME (msgs).</dd>
|
|
|
|
<dt>/SET use_status_window ON</dt>
|
|
<dd>Create status window at startup. All messages that don't really
|
|
have better place go here, like all /WHOIS replies etc. Status window
|
|
can also be created manually with <code>/WINDOW LEVEL ALL -MSGS</code>,
|
|
<code>/WINDOW NAME (status)</code>.</dd>
|
|
|
|
<dt>/SET autocreate_windows ON</dt>
|
|
<dd>Should we create new windows for new window items or just place
|
|
everything in one window</dd>
|
|
|
|
<dt>/SET autoclose_windows ON</dt>
|
|
<dd>Should window be automatically closed when the last item in them is
|
|
removed (ie. <code>/PART</code>, <code>/UNQUERY</code>).</dd>
|
|
|
|
<dt>/SET reuse_unused_windows OFF</dt>
|
|
<dd>When finding where to place new window item (channel, query) Irssi
|
|
first tries to use already existing empty windows. If this is set ON,
|
|
new window will always be created for all window items. This setting is
|
|
ignored if autoclose_windows is set ON.</dd>
|
|
|
|
<dt>/SET window_auto_change OFF</dt>
|
|
<dd>Should Irssi automatically change to automatically created windows -
|
|
usually queries when someone sends you a message. To prevent
|
|
accidentally sending text meant to some other channel/nick, Irssi
|
|
clears the input buffer when changing the window. The text is still in
|
|
scrollback buffer, you can get it back with pressing arrow up key.</dd>
|
|
|
|
<dt>/SET print_active_channel OFF</dt>
|
|
<dd>When you keep more than one channel in same window, Irssi prints
|
|
the messages coming to active channel as <code><nick> text</code>
|
|
and other channels as <code><nick:channel> text</code>. If this
|
|
setting is set ON, the messages to active channels are also printed in
|
|
the latter way.</dd>
|
|
|
|
<dt>/SET window_history OFF</dt>
|
|
<dd>Should command history be kept separate for each window.</dd>
|
|
</dl>
|
|
|
|
|
|
<p><strong>User information</strong></p>
|
|
|
|
<dl>
|
|
<dt>/SET nick</dt>
|
|
<dd>Your nick name</dd>
|
|
|
|
<dt>/SET alternate_nick</dt>
|
|
<dd>Your alternate nick.</dd>
|
|
|
|
<dt>/SET user_name</dt>
|
|
<dd>Your username, if you have ident enabled this doesn't affect
|
|
anything</dd>
|
|
|
|
<dt>/SET real_name</dt>
|
|
<dd>Your real name.</dd>
|
|
</dl>
|
|
|
|
|
|
<p><strong>Server information</strong></p>
|
|
|
|
<dl>
|
|
<dt>/SET skip_motd OFF</dt>
|
|
<dd>Should we hide server's MOTD (Message Of The Day).</dd>
|
|
|
|
<dt>/SET server_reconnect_time 300</dt>
|
|
<dd>Seconds to wait before connecting to same server again. Don't set
|
|
this too low since it usually doesn't help at all - if the host is
|
|
down, the few extra minutes of waiting won't hurt much.</dd>
|
|
|
|
<dt>/SET lag_max_before_disconnect 300</dt>
|
|
<dd>Maximum server lag in seconds before disconnecting and trying to
|
|
reconnect. This happens mostly only when network breaks between you and
|
|
IRC server.</dd>
|
|
</dl>
|
|
|
|
|
|
<p><strong>Appearance</strong></p>
|
|
|
|
<dl>
|
|
<dt>/SET timestamps ON</dt>
|
|
<dd>Show timestamps before each message.</dd>
|
|
|
|
<dt>/SET hide_text_style OFF</dt>
|
|
<dd>Hide all bolds, underlines, MIRC colors, etc.</dd>
|
|
|
|
<dt>/SET show_nickmode ON</dt>
|
|
<dd>Show the nick's mode before nick in channels, ie. ops have
|
|
<code><@nick></code>, voices <code><+nick></code> and others
|
|
<code>< nick></code></dd>
|
|
|
|
<dt>/SET show_nickmode_empty ON</dt>
|
|
<dd>If the nick doesn't have a mode, use one space. ie. ON:
|
|
<code>< nick></code>, OFF: <code><nick></code></dd>
|
|
|
|
<dt>/SET show_quit_once OFF</dt>
|
|
<dd>Show quit message only once in some of the channel windows the
|
|
nick was in instead of in all windows.</dd>
|
|
|
|
<dt>/SET lag_min_show 100</dt>
|
|
<dd>Show the server lag in status bar if it's bigger than this, the
|
|
unit is 1/100 of seconds (ie. the default value of 100 = 1 second).</dd>
|
|
|
|
<dt>/SET indent 10</dt>
|
|
<dd>When lines are longer than screen width they have to be split to
|
|
multiple lines. This specifies how much space to put at the beginning
|
|
of the line before the text begins. This can be overridden in text
|
|
formats with <code>%|</code> format.</dd>
|
|
|
|
<dt>/SET activity_hide_targets</dt>
|
|
<dd>If you don't want to see window activity in some certain channels
|
|
or queries, list them here. For example <code>#boringchannel =bot1
|
|
=bot2</code>. If any highlighted text or message for you appears in that
|
|
window, this setting is ignored and the activity is shown.</dd>
|
|
</dl>
|
|
|
|
<p><strong>Nick completion</strong></p>
|
|
|
|
<dl>
|
|
<dt>/SET completion_auto OFF</dt>
|
|
<dd>Automatically complete the nick if line begins with start of nick
|
|
and the completion character. Learn to use the tab-completion instead,
|
|
it's a lot better ;)</dd>
|
|
|
|
<dt>/SET completion_char :</dt>
|
|
<dd>Completion character to use.</dd>
|
|
</dl>
|
|
|
|
<h3><a id="c12">12. Statusbar</a></h3>
|
|
|
|
<p><code>/STATUSBAR</code> displays a list of statusbars:</p>
|
|
|
|
<pre>
|
|
Name Type Placement Position Visible
|
|
window window bottom 0 always
|
|
window_inact window bottom 1 inactive
|
|
prompt root bottom 100 always
|
|
topic root top 1 always
|
|
</pre>
|
|
|
|
<p><code>/STATUSBAR <name></code> prints the statusbar settings and
|
|
it's items. <code>/STATUSBAR <name> ENABLE|DISABLE</code>
|
|
enables/disables the statusbar. <code>/STATUSBAR <name> RESET</code>
|
|
resets the statusbar to it's default settings, or if the statusbar was
|
|
created by you, it will be removed.</p>
|
|
|
|
<p>Type can be window or root, meaning if the statusbar should be
|
|
created for each split window, or just once. Placement can be top or
|
|
bottom. Position is a number, the higher the value the lower in screen
|
|
it is. Visible can be always, active or inactive. Active/inactive is
|
|
useful only with split windows, one split window is active and the rest
|
|
are inactive. These settings can be changed with:</p>
|
|
|
|
<pre>
|
|
STATUSBAR <name> TYPE window|root
|
|
STATUSBAR <name> PLACEMENT top|bottom
|
|
STATUSBAR <name> POSITION <num>
|
|
STATUSBAR <name> VISIBLE always|active|inactive
|
|
</pre>
|
|
|
|
<p>When loading a new statusbar scripts, you'll need to also specify
|
|
where you want to show it. Statusbar items can be modified with:</p>
|
|
|
|
<pre>
|
|
STATUSBAR <name> ADD [-before | -after <item>] [-priority #] [-alignment left|right] <item>
|
|
STATUSBAR <name> REMOVE <item>
|
|
</pre>
|
|
|
|
<p>The item name with statusbar scripts is usually same as the script's
|
|
name. Script's documentation should tell if this isn't the case. So, to
|
|
add mail.pl before the window activity item (see the list with
|
|
<code>/STATUSBAR</code> window), use: <code>/STATUSBAR window ADD -before
|
|
act mail</code>.</p>
|