2017-10-24 16:12:34 -04:00
|
|
|
|
Startup How-To
|
|
|
|
|
|
|
|
|
|
To new Irssi users (not to new IRC users ..)
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2000-2002 by Timo Sirainen, release under [1]GNU FDL 1.1 license.
|
|
|
|
|
|
|
|
|
|
Index with some FAQ questions that are answered in the chapter:
|
|
|
|
|
|
|
|
|
|
1. First steps
|
|
|
|
|
2. Basic user interface usage
|
|
|
|
|
□ Split windows work in weird way
|
|
|
|
|
□ How can I easily switch between windows?
|
|
|
|
|
□ But alt-1 etc. don’t work!
|
|
|
|
|
3. Server and channel automation
|
|
|
|
|
□ How do I automatically connect to servers at startup?
|
|
|
|
|
□ How do I automatically join to channels at startup?
|
|
|
|
|
□ How do I automatically send commands to server at connect?
|
|
|
|
|
4. Setting up windows and automatically restoring them at startup
|
|
|
|
|
5. Status and msgs windows & message levels
|
|
|
|
|
□ I want /WHOIS to print reply to current window
|
|
|
|
|
□ I want all messages to go to one window, not create new windows
|
|
|
|
|
6. How support for multiple servers works in irssi
|
|
|
|
|
□ 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??
|
|
|
|
|
□ I want to have own status and/or msgs window for each servers
|
|
|
|
|
7. /LASTLOG and jumping around in scrollback
|
|
|
|
|
□ How can I save all texts in a window to file?
|
|
|
|
|
8. Logging
|
|
|
|
|
9. Changing keyboard bindings
|
|
|
|
|
□ How do I make F1 key do something?
|
|
|
|
|
10. Proxies and IRC bouncers
|
|
|
|
|
11. Irssi’s settings
|
|
|
|
|
□ For all the ircII people
|
|
|
|
|
12. Statusbar
|
|
|
|
|
□ I loaded a statusbar script but it’s not visible anywhere!
|
|
|
|
|
|
|
|
|
|
1. First steps
|
|
|
|
|
|
|
|
|
|
IRC Networks are made of servers, and servers have channels. The default config
|
|
|
|
|
has a few predefined networks, to list them:
|
|
|
|
|
|
|
|
|
|
/NETWORK LIST
|
|
|
|
|
|
|
|
|
|
And to connect to one of those networks and join a channel:
|
|
|
|
|
|
2021-05-19 15:51:39 -04:00
|
|
|
|
/CONNECT liberachat
|
2017-10-24 16:12:34 -04:00
|
|
|
|
/JOIN #irssi
|
|
|
|
|
|
|
|
|
|
To add more networks:
|
|
|
|
|
|
|
|
|
|
/NETWORK ADD ExampleNet
|
|
|
|
|
|
|
|
|
|
Then add some servers (with -auto to automatically connect):
|
|
|
|
|
|
|
|
|
|
/SERVER ADD -auto -network ExampleNet irc.example.net
|
|
|
|
|
|
|
|
|
|
Automatically join to channels after connected to server:
|
|
|
|
|
|
|
|
|
|
/CHANNEL ADD -auto #lounge ExampleNet
|
|
|
|
|
|
|
|
|
|
To modify existing networks (or servers, or channels) just ADD again using the
|
|
|
|
|
same name as before. This configures a network to identify with nickserv and
|
|
|
|
|
wait for 2 seconds before joining channels:
|
|
|
|
|
|
|
|
|
|
/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" ExampleNet
|
|
|
|
|
|
|
|
|
|
If you have irssi 0.8.18 or higher and the irc network supports it, you can use
|
|
|
|
|
SASL instead of nickserv, which is more reliable:
|
|
|
|
|
|
2021-05-19 15:51:39 -04:00
|
|
|
|
/NETWORK ADD -sasl_username yourname -sasl_password yourpassword -sasl_mechanism PLAIN liberachat
|
2017-10-24 16:12:34 -04:00
|
|
|
|
|
|
|
|
|
These commands have many more options, see their help for details:
|
|
|
|
|
|
|
|
|
|
/HELP NETWORK
|
|
|
|
|
/HELP SERVER
|
|
|
|
|
/HELP CHANNEL
|
|
|
|
|
/HELP
|
|
|
|
|
|
|
|
|
|
If you want lines containing your nick to hilight:
|
|
|
|
|
|
|
|
|
|
/HILIGHT nick
|
|
|
|
|
|
|
|
|
|
Or, for irssi 0.8.18 or higher:
|
|
|
|
|
|
|
|
|
|
/SET hilight_nick_matches_everywhere ON
|
|
|
|
|
|
|
|
|
|
To get beeps on private messages or highlights:
|
|
|
|
|
|
|
|
|
|
/SET beep_msg_level MSGS HILIGHT DCCMSGS
|
|
|
|
|
|
|
|
|
|
No other irssi settings are needed (don’t enable bell_beeps), but there may be
|
|
|
|
|
settings to change in your terminal multiplexer (screen/tmux), your terminal,
|
|
|
|
|
or your desktop environment.
|
|
|
|
|
|
|
|
|
|
2. Basic user interface usage
|
|
|
|
|
|
|
|
|
|
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 /SB HOME and /SB END commands.
|
|
|
|
|
|
|
|
|
|
By default, irssi uses “hidden windows” for everything. Hidden windows are
|
|
|
|
|
created every time you /JOIN a channel or /QUERY someone. There’s several ways
|
|
|
|
|
you can change between these windows:
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
Clearly the easiest way is to use Meta-number keys. Meta usually means the ALT
|
|
|
|
|
key, but if that doesn’t work, you can use ESC.
|
|
|
|
|
|
|
|
|
|
Mac OS X users with ALT key issues might prefer using [2]iTerm2 instead of the
|
|
|
|
|
default terminal emulator.
|
|
|
|
|
|
|
|
|
|
Alt key as meta, for xterm/rxvt users
|
|
|
|
|
|
|
|
|
|
If you use xterm or rxvt, you may need to set a few X resources:
|
|
|
|
|
|
|
|
|
|
XTerm*eightBitInput: false
|
|
|
|
|
XTerm*metaSendsEscape: true
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
rxvt*modifier: alt
|
|
|
|
|
|
|
|
|
|
You could do this by changing the X key mappings:
|
|
|
|
|
|
|
|
|
|
xmodmap -e "keysym Alt_L = Meta_L Alt_L"
|
|
|
|
|
|
|
|
|
|
And how exactly do you set these X resources? For Debian, there’s /etc/X11/
|
|
|
|
|
Xresources/xterm file where you can put them and it’s read automatically when X
|
|
|
|
|
starts. ~/.Xresources and ~/.Xdefaults files might also work. If you can’t get
|
|
|
|
|
anything else to work, just copy and paste those lines to ~/.Xresources and
|
|
|
|
|
directly call xrdb -merge ~/.Xresources in some xterm. The resources affect
|
|
|
|
|
only the new xterms you start, not existing ones.
|
|
|
|
|
|
|
|
|
|
Split windows and window items
|
|
|
|
|
|
|
|
|
|
Note: [3]this guide might be a better introduction to window splits
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
/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
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
When you are in win#1 and press ALT-6, irssi jumps to split window #3 and moves
|
|
|
|
|
the efnet/#channel2 the active window.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/SET autostick_split_windows OFF
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/SET autocreate_windows OFF
|
|
|
|
|
|
|
|
|
|
And if you keep all channels in one window, you most probably want the channel
|
|
|
|
|
name printed in each line:
|
|
|
|
|
|
|
|
|
|
/SET print_active_channel ON
|
|
|
|
|
|
|
|
|
|
If you want to group only some channels or queries in one window, use
|
|
|
|
|
|
|
|
|
|
/JOIN -window #channel
|
|
|
|
|
/QUERY -window nick
|
|
|
|
|
|
|
|
|
|
3. Server and channel automation
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
First you need to have your IRC network set, use /NETWORK command to see if
|
|
|
|
|
it’s already there. If it isn’t, use /NETWORK ADD yournetwork. If you want to
|
|
|
|
|
execute some commands automatically when you’re connected to some network, use
|
|
|
|
|
-autosendcmd option. Here’s some examples:
|
|
|
|
|
|
|
|
|
|
/NETWORK ADD -autosendcmd '^msg bot invite' IRCnet
|
|
|
|
|
/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
|
|
|
|
|
|
|
|
|
|
After that you need to add your servers. For example:
|
|
|
|
|
|
|
|
|
|
/SERVER ADD -auto -network IRCnet irc.kpnqwest.fi 6667
|
|
|
|
|
/SERVER ADD -auto -network worknet irc.mycompany.com 6667 password
|
|
|
|
|
|
|
|
|
|
The -auto option specifies that this server is automatically connected at
|
|
|
|
|
startup. You don’t need to make more than one server with -auto option to one
|
|
|
|
|
IRC network, other servers are automatically connected in same network if the
|
|
|
|
|
-auto server fails.
|
|
|
|
|
|
|
|
|
|
And finally channels:
|
|
|
|
|
|
2021-09-22 06:33:10 -04:00
|
|
|
|
/CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass" #irssi efnet
|
2017-10-24 16:12:34 -04:00
|
|
|
|
/CHANNEL ADD -auto #secret IRCnet password
|
|
|
|
|
|
|
|
|
|
-bots and -botcmd 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 -bots option
|
|
|
|
|
separated with spaces (and remember to quote the string then). The $0 in
|
|
|
|
|
-botcmd 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 -botcmd option and the command is always sent.
|
|
|
|
|
|
|
|
|
|
4. Setting up windows and automatically restoring them at startup
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
/WINDOW MOVE LEFT/RIGHT/number - move window elsewhere
|
|
|
|
|
/WINDOW ITEM MOVE <number>|<name> - move channel/query to another window
|
|
|
|
|
|
|
|
|
|
When everything looks the way you like, use /LAYOUT SAVE command (and /SAVE, 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 /LAYOUT SAVE would automatically
|
|
|
|
|
make irssi reconnect to all servers and join all channels, you’ll need the /
|
|
|
|
|
SERVER ADD -auto and /CHANNEL ADD -auto commands to do that.
|
|
|
|
|
|
|
|
|
|
If you want to change the layout, you just rearrange the layout like you want
|
|
|
|
|
it and use /LAYOUT SAVE again. If you want to remove the layout for some
|
|
|
|
|
reason, use /LAYOUT RESET.
|
|
|
|
|
|
|
|
|
|
5. Status and msgs windows & message levels
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/SET use_status_window OFF
|
|
|
|
|
|
|
|
|
|
This doesn’t have any effect until you restart irssi. If you want to remove it
|
|
|
|
|
immediately, just /WINDOW CLOSE it.
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
/SET use_msgs_window ON
|
|
|
|
|
/SET autocreate_query_level DCCMSGS (or if you don't want queries to
|
|
|
|
|
dcc chats either, say NONE)
|
|
|
|
|
|
|
|
|
|
use_msgs_window either doesn’t have any effect until restarting irssi. To
|
|
|
|
|
create it immediately say:
|
|
|
|
|
|
|
|
|
|
/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
|
|
|
|
|
|
|
|
|
|
Note that neither use_msgs_window nor use_status_window have any effect at all
|
|
|
|
|
if /LAYOUT SAVE has been used.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/HELP levels
|
|
|
|
|
|
|
|
|
|
Status window has message level ALL -MSGS, meaning that all messages, except
|
|
|
|
|
private messages, without more specific place go to status window. The -MSGS is
|
|
|
|
|
there so it doesn’t conflict with messages window.
|
|
|
|
|
|
|
|
|
|
6. How support for multiple servers works in irssi
|
|
|
|
|
|
|
|
|
|
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 single window if
|
|
|
|
|
you really want to. That being said, here’s how you do connect to new server
|
|
|
|
|
without closing the old connection:
|
|
|
|
|
|
|
|
|
|
/CONNECT irc.server.org
|
|
|
|
|
|
|
|
|
|
Instead of the /SERVER which disconnects the existing connection. To see list
|
|
|
|
|
of all active connections, use /SERVER without any parameters. You should see a
|
|
|
|
|
list of something like:
|
|
|
|
|
|
|
|
|
|
-!- IRCNet: irc.song.fi:6667 (IRCNet)
|
|
|
|
|
-!- OFTC: irc.oftc.net:6667 (OFTC)
|
|
|
|
|
-!- RECON-1: 192.168.0.1:6667 () (02:59 left before reconnecting)
|
|
|
|
|
|
|
|
|
|
Here you see that we’re connected to IRCNet and OFTC networks. 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 network,
|
|
|
|
|
network2, network3 etc.
|
|
|
|
|
|
|
|
|
|
Server tags beginning with RECON- 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.
|
|
|
|
|
|
|
|
|
|
To disconnect one of the servers, or to stop irssi from reconnecting, use
|
|
|
|
|
|
|
|
|
|
/DISCONNECT network - disconnect server with tag "network"
|
|
|
|
|
/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
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/WINDOW SERVER tag - set server "tag" active
|
|
|
|
|
Ctrl-X - set the next server in list active
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Several commands also accept -servertag option to specify which server it
|
|
|
|
|
should use:
|
|
|
|
|
|
|
|
|
|
/MSG -tag nick message
|
|
|
|
|
/JOIN -tag #channel
|
|
|
|
|
/QUERY -tag nick
|
|
|
|
|
|
|
|
|
|
/MSG tab completion also automatically adds the -tag option when nick isn’t in
|
|
|
|
|
active server.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/WINDOW SERVER -sticky tag
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
/WINDOW NEW HIDE
|
|
|
|
|
/WINDOW NAME (status)
|
|
|
|
|
/WINDOW LEVEL ALL -MSGS
|
|
|
|
|
/WINDOW SERVER -sticky network
|
|
|
|
|
|
|
|
|
|
/WINDOW NEW HIDE
|
|
|
|
|
/WINDOW NAME (msgs)
|
|
|
|
|
/WINDOW LEVEL MSGS
|
|
|
|
|
/WINDOW SERVER -sticky network
|
|
|
|
|
|
|
|
|
|
7. /LASTLOG and jumping around in scrollback
|
|
|
|
|
|
|
|
|
|
/LASTLOG command can be used for searching texts in scrollback buffer. Simplest
|
|
|
|
|
usages are
|
|
|
|
|
|
|
|
|
|
/LASTLOG word - print all lines with "word" in them
|
|
|
|
|
/LASTLOG word 10 - print last 10 occurances of "word"
|
|
|
|
|
/LASTLOG -topics - print all topic changes
|
|
|
|
|
|
|
|
|
|
If there’s more than 1000 lines to be printed, irssi thinks that you probably
|
|
|
|
|
made some mistake and won’t print them without -force option. If you want to
|
|
|
|
|
save the full lastlog to file, use
|
|
|
|
|
|
|
|
|
|
/LASTLOG -file ~/irc.log
|
|
|
|
|
|
|
|
|
|
With -file option you don’t need -force even if there’s more than 1000 lines. /
|
|
|
|
|
LASTLOG has a lot of other options too, see /HELP lastlog for details.
|
|
|
|
|
|
|
|
|
|
Once you’ve found the lines you were interested in, you might want to check the
|
|
|
|
|
discussion around them. Irssi has /SCROLLBACK (or alias /SB) command for
|
|
|
|
|
jumping around in scrollback buffer. Since /LASTLOG prints the timestamp when
|
|
|
|
|
the message was originally printed, you can use /SB GOTO hh:mm to jump directly
|
|
|
|
|
there. To get back to the bottom of scrollback, use /SB END command.
|
|
|
|
|
|
|
|
|
|
8. Logging
|
|
|
|
|
|
|
|
|
|
Irssi can automatically log important messages when you’re set away (/AWAY
|
|
|
|
|
reason). When you set yourself unaway (/AWAY), the new messages in away log are
|
|
|
|
|
printed to screen. You can configure it with:
|
|
|
|
|
|
|
|
|
|
/SET awaylog_level MSGS HILIGHT - Specifies what messages to log
|
|
|
|
|
/SET awaylog_file ~/.irssi/away.log - Specifies the file to use
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/SET autolog ON
|
|
|
|
|
|
|
|
|
|
By default it logs pretty much everything execept CTCPS or CRAP (/WHOIS
|
|
|
|
|
requests, etc). You can specify the logging level yourself with
|
|
|
|
|
|
|
|
|
|
/SET autolog_level ALL -CRAP -CLIENTCRAP -CTCPS (this is the default)
|
|
|
|
|
|
2018-10-29 12:51:48 -04:00
|
|
|
|
By default irssi logs to ~/irclogs/<servertag>/<target>.log. You can change
|
|
|
|
|
this with
|
2017-10-24 16:12:34 -04:00
|
|
|
|
|
|
|
|
|
/SET autolog_path ~/irclogs/$tag/$0.log (this is the default)
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/SET autolog_path ~/irclogs/%Y/$tag/$0.%m-%d.log
|
|
|
|
|
|
|
|
|
|
For logging only some specific channels or nicks, see /HELP log
|
|
|
|
|
|
|
|
|
|
9. Changing keyboard bindings
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
/HELP bind 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 cat. Here’s an example for pressing F1 key:
|
|
|
|
|
|
2021-09-22 06:33:10 -04:00
|
|
|
|
[cras@hurina] ~% cat
|
2017-10-24 16:12:34 -04:00
|
|
|
|
^[OP
|
|
|
|
|
|
|
|
|
|
So in irssi you would use /BIND ^[OP /ECHO F1 pressed. If you use multiple
|
|
|
|
|
terminals which have different bindings for the key, it would be better to use
|
|
|
|
|
eg.:
|
|
|
|
|
|
|
|
|
|
/BIND ^[OP key F1
|
|
|
|
|
/BIND ^[11~ key F1
|
|
|
|
|
/BIND F1 /ECHO F1 pressed.
|
|
|
|
|
|
|
|
|
|
10. Proxies and IRC bouncers
|
|
|
|
|
|
|
|
|
|
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 /QUOTE SERVER commands manually.
|
|
|
|
|
|
|
|
|
|
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
|
2018-03-06 20:22:58 -05:00
|
|
|
|
irc.dal.net and irc.efnet.org. First you’d need to setup the bouncer:
|
2017-10-24 16:12:34 -04:00
|
|
|
|
|
|
|
|
|
/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
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
/SERVER ADD -auto -network dalnet irc.dal.net
|
|
|
|
|
/SERVER ADD -auto -network efnet irc.efnet.org
|
|
|
|
|
|
|
|
|
|
With the proxy /SETs 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.
|
|
|
|
|
|
|
|
|
|
If you don’t want to use the proxy for some reason, there’s -noproxy option
|
|
|
|
|
which you can give to /SERVER and /SERVER ADD commands.
|
|
|
|
|
|
|
|
|
|
Proxy specific settings:
|
|
|
|
|
|
2018-03-06 20:22:58 -05:00
|
|
|
|
All proxies except irssi proxy and socks proxy have these settings in common:
|
2017-10-24 16:12:34 -04:00
|
|
|
|
|
|
|
|
|
/SET use_proxy ON
|
|
|
|
|
/SET proxy_address <Proxy host address>
|
|
|
|
|
/SET proxy_port <Proxy port>
|
|
|
|
|
|
|
|
|
|
HTTP proxy
|
|
|
|
|
|
|
|
|
|
Use these settings with HTTP proxies:
|
|
|
|
|
|
|
|
|
|
/SET -clear proxy_password
|
|
|
|
|
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n
|
|
|
|
|
|
|
|
|
|
BNC
|
|
|
|
|
|
|
|
|
|
/SET proxy_password your_pass
|
|
|
|
|
/SET -clear proxy_string
|
|
|
|
|
/SET proxy_string_after conn %s %d
|
|
|
|
|
|
|
|
|
|
dircproxy
|
|
|
|
|
|
|
|
|
|
dircproxy separates the server connections by passwords. So, if you for example
|
|
|
|
|
have network connection with password ircpass and OFTC connection with
|
|
|
|
|
oftcpass, you would do something like this:
|
|
|
|
|
|
|
|
|
|
/SET -clear proxy_password
|
|
|
|
|
/SET -clear proxy_string
|
|
|
|
|
|
|
|
|
|
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
|
|
|
|
|
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
|
|
|
|
|
|
|
|
|
|
The server name and port you give isn’t used anywhere, so you can put anything
|
|
|
|
|
you want in there.
|
|
|
|
|
|
|
|
|
|
psyBNC
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
/SET -clear proxy_password
|
|
|
|
|
/SET -clear proxy_string
|
|
|
|
|
|
|
|
|
|
/NETWORK ADD -user networkuser IRCnet
|
|
|
|
|
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
|
|
|
|
|
/NETWORK ADD -user oftcuser OFTC
|
|
|
|
|
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
|
|
|
|
|
|
|
|
|
|
So, you’ll specify the usernames with /NETWORK ADD command, and the user’s
|
|
|
|
|
password with /SERVER ADD.
|
|
|
|
|
|
|
|
|
|
Irssi proxy
|
|
|
|
|
|
|
|
|
|
Irssi contains it’s own proxy which you can build giving \--with-proxy option
|
|
|
|
|
to configure. You’ll still need to run irssi in a screen to use it though.
|
|
|
|
|
|
|
|
|
|
Irssi proxy is a bit different than most proxies, normally proxies create a new
|
2018-03-06 20:22:58 -05:00
|
|
|
|
connection to IRC server when a new client connects to it, but irssi proxy
|
|
|
|
|
shares your existing IRC connection(s) to multiple clients. And even more
|
|
|
|
|
clearly: You can use only one IRC server connection of the irssi proxy to IRC
|
|
|
|
|
with as many clients as you want. 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? :)
|
2017-10-24 16:12:34 -04:00
|
|
|
|
|
|
|
|
|
Irssi proxy supports sharing multiple server connections in different ports,
|
|
|
|
|
like you can share network in port 2777 and efnet in port 2778.
|
|
|
|
|
|
|
|
|
|
Usage in proxy side:
|
|
|
|
|
|
|
|
|
|
/LOAD proxy
|
|
|
|
|
/SET irssiproxy_password <password>
|
|
|
|
|
/SET irssiproxy_ports <network>=<port> ... (eg. IRCnet=2777 efnet=2778)
|
|
|
|
|
|
|
|
|
|
NOTE: you MUST add all the servers you are using to server and network lists
|
|
|
|
|
with /SERVER ADD and /NETWORK ADD. ..Except if you really don’t want to for
|
|
|
|
|
some reason, and you only use one server connection, you may simply set:
|
|
|
|
|
|
|
|
|
|
/SET irssiproxy_ports *=2777
|
|
|
|
|
|
|
|
|
|
Usage in client side:
|
|
|
|
|
|
|
|
|
|
Just connect to the irssi proxy like it is a normal server with password
|
|
|
|
|
specified in /SET irssiproxy_password. For example:
|
|
|
|
|
|
|
|
|
|
/SERVER ADD -network IRCnet my.irssi-proxy.org 2777 secret
|
|
|
|
|
/SERVER ADD -network efnet my.irssi-proxy.org 2778 secret
|
|
|
|
|
|
|
|
|
|
Irssi proxy works fine with other IRC clients as well.
|
|
|
|
|
|
|
|
|
|
SOCKS
|
|
|
|
|
|
2020-03-16 16:39:33 -04:00
|
|
|
|
Irssi can be compiled with socks support (--with-socks option to configure),
|
2017-10-24 16:12:34 -04:00
|
|
|
|
which requires “dante” and routes all connections through the proxy specified
|
|
|
|
|
in the system-wide /etc/socks.conf. This method is known to have issues in Mac
|
|
|
|
|
OS X.
|
|
|
|
|
|
|
|
|
|
Note that /SET proxy settings don’t have anything to do with socks.
|
|
|
|
|
|
|
|
|
|
Using [4]proxychains-ng is recommended over recompiling irssi.
|
|
|
|
|
|
|
|
|
|
Others
|
|
|
|
|
|
|
|
|
|
IRC bouncers usually work like IRC servers, and want a password. You can give
|
|
|
|
|
it with:
|
|
|
|
|
|
|
|
|
|
/SET proxy_password <password>
|
|
|
|
|
|
|
|
|
|
Irssi’s defaults for connect strings are
|
|
|
|
|
|
|
|
|
|
/SET proxy_string CONNECT %s %d
|
|
|
|
|
/SET proxy_string_after
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
11. Irssi’s settings
|
|
|
|
|
|
|
|
|
|
Here’s some settings you might want to change (the default value is shown):
|
|
|
|
|
Also check the [5]Settings Documentation
|
|
|
|
|
|
|
|
|
|
Queries
|
|
|
|
|
|
|
|
|
|
/SET autocreate_own_query ON
|
|
|
|
|
Should new query window be created when you send message to someone (with /
|
|
|
|
|
MSG).
|
|
|
|
|
/SET autocreate_query_level MSGS
|
|
|
|
|
New query window should be created when receiving messages with this level.
|
|
|
|
|
MSGS, DCCMSGS and NOTICES levels work currently. You can disable this with
|
|
|
|
|
/SET -clear autocreate_query_level.
|
|
|
|
|
/SET autoclose_query 0
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Windows
|
|
|
|
|
|
|
|
|
|
/SET use_msgs_window OFF
|
|
|
|
|
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).
|
|
|
|
|
/SET use_status_window ON
|
|
|
|
|
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 /WINDOW LEVEL ALL -MSGS, /WINDOW NAME (status).
|
|
|
|
|
/SET autocreate_windows ON
|
|
|
|
|
Should we create new windows for new window items or just place everything
|
|
|
|
|
in one window
|
|
|
|
|
/SET autoclose_windows ON
|
|
|
|
|
Should window be automatically closed when the last item in them is removed
|
|
|
|
|
(ie. /PART, /UNQUERY).
|
|
|
|
|
/SET reuse_unused_windows OFF
|
|
|
|
|
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.
|
|
|
|
|
/SET window_auto_change OFF
|
|
|
|
|
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.
|
|
|
|
|
/SET print_active_channel OFF
|
|
|
|
|
When you keep more than one channel in same window, Irssi prints the
|
|
|
|
|
messages coming to active channel as <nick> text and other channels as
|
|
|
|
|
<nick:channel> text. If this setting is set ON, the messages to active
|
|
|
|
|
channels are also printed in the latter way.
|
|
|
|
|
/SET window_history OFF
|
|
|
|
|
Should command history be kept separate for each window.
|
|
|
|
|
|
|
|
|
|
User information
|
|
|
|
|
|
|
|
|
|
/SET nick
|
|
|
|
|
Your nick name
|
|
|
|
|
/SET alternate_nick
|
|
|
|
|
Your alternate nick.
|
|
|
|
|
/SET user_name
|
|
|
|
|
Your username, if you have ident enabled this doesn’t affect anything
|
|
|
|
|
/SET real_name
|
|
|
|
|
Your real name.
|
|
|
|
|
|
|
|
|
|
Server information
|
|
|
|
|
|
|
|
|
|
/SET skip_motd OFF
|
|
|
|
|
Should we hide server’s MOTD (Message Of The Day).
|
|
|
|
|
/SET server_reconnect_time 300
|
|
|
|
|
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.
|
|
|
|
|
/SET lag_max_before_disconnect 300
|
|
|
|
|
Maximum server lag in seconds before disconnecting and trying to reconnect.
|
|
|
|
|
This happens mostly only when network breaks between you and IRC server.
|
|
|
|
|
|
|
|
|
|
Appearance
|
|
|
|
|
|
|
|
|
|
/SET timestamps ON
|
|
|
|
|
Show timestamps before each message.
|
|
|
|
|
/SET hide_text_style OFF
|
|
|
|
|
Hide all bolds, underlines, MIRC colors, etc.
|
|
|
|
|
/SET show_nickmode ON
|
|
|
|
|
Show the nick’s mode before nick in channels, ie. ops have <@nick>, voices
|
|
|
|
|
<+nick> and others < nick>
|
|
|
|
|
/SET show_nickmode_empty ON
|
|
|
|
|
If the nick doesn’t have a mode, use one space. ie. ON: < nick>, OFF:
|
|
|
|
|
<nick>
|
|
|
|
|
/SET show_quit_once OFF
|
|
|
|
|
Show quit message only once in some of the channel windows the nick was in
|
|
|
|
|
instead of in all windows.
|
|
|
|
|
/SET lag_min_show 100
|
|
|
|
|
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).
|
|
|
|
|
/SET indent 10
|
|
|
|
|
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 %|
|
|
|
|
|
format.
|
|
|
|
|
/SET activity_hide_targets
|
|
|
|
|
If you don’t want to see window activity in some certain channels or
|
|
|
|
|
queries, list them here. For example #boringchannel =bot1 =bot2. If any
|
|
|
|
|
highlighted text or message for you appears in that window, this setting is
|
|
|
|
|
ignored and the activity is shown.
|
|
|
|
|
|
|
|
|
|
Nick completion
|
|
|
|
|
|
|
|
|
|
/SET completion_auto OFF
|
|
|
|
|
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 ;)
|
|
|
|
|
/SET completion_char :
|
|
|
|
|
Completion character to use.
|
|
|
|
|
|
|
|
|
|
For all the ircII people
|
|
|
|
|
|
|
|
|
|
I don’t like automatic query windows, I don’t like status window, I do like
|
|
|
|
|
msgs window where all messages go:
|
|
|
|
|
|
|
|
|
|
/SET autocreate_own_query OFF
|
|
|
|
|
/SET autocreate_query_level DCCMSGS
|
|
|
|
|
/SET use_status_window OFF
|
|
|
|
|
/SET use_msgs_window ON
|
|
|
|
|
|
|
|
|
|
Disable automatic window closing when /PARTing channel or /UNQUERYing query:
|
|
|
|
|
|
|
|
|
|
/SET autoclose_windows OFF
|
|
|
|
|
/SET reuse_unused_windows ON
|
|
|
|
|
|
|
|
|
|
Here’s the settings that make irssi work exactly like ircII in window
|
|
|
|
|
management (send me a note if you can think of more):
|
|
|
|
|
|
|
|
|
|
/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
|
|
|
|
|
|
|
|
|
|
12. Statusbar
|
|
|
|
|
|
|
|
|
|
/STATUSBAR displays a list of the current statusbars, along with their position
|
|
|
|
|
and visibility:
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
/STATUSBAR <name> prints the statusbar settings (type, placement, position,
|
|
|
|
|
visibility) as well as its items. /STATUSBAR <name> ENABLE|DISABLE enables/
|
|
|
|
|
disables the statusbar. /STATUSBAR <name> RESET resets the statusbar to its
|
|
|
|
|
default settings, or if the statusbar was created by you, it will be removed.
|
|
|
|
|
|
|
|
|
|
The statusbar type can be either window or root. If the type is window, then a
|
|
|
|
|
statusbar will be created for each split window, otherwise it will be created
|
|
|
|
|
only once. Placement can be top or bottom, which refers to the top or bottom of
|
|
|
|
|
the screen. Position is a number, the higher the value the lower it will appear
|
|
|
|
|
in-screen. 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.
|
|
|
|
|
To adjust these settings, the following commands are available:
|
|
|
|
|
|
|
|
|
|
/STATUSBAR <name> TYPE window|root
|
|
|
|
|
/STATUSBAR <name> PLACEMENT top|bottom
|
|
|
|
|
/STATUSBAR <name> POSITION <num>
|
|
|
|
|
/STATUSBAR <name> VISIBLE always|active|inactive
|
|
|
|
|
|
|
|
|
|
Statusbar items can also be added or removed via command. Note that when
|
|
|
|
|
loading new statusbar scripts that add items, you will need to specify where
|
|
|
|
|
you want to show the item and how it is aligned. This can be accomplished using
|
|
|
|
|
the below commands:
|
|
|
|
|
|
|
|
|
|
/STATUSBAR <name> ADD [-before | -after <item>] [-priority #] [-alignment left|right] <item>
|
|
|
|
|
/STATUSBAR <name> REMOVE <item>
|
|
|
|
|
|
|
|
|
|
For statusbar scripts, the item name is usually equivalent to the script name.
|
|
|
|
|
The documentation of the script ought to tell you if this is not the case. For
|
|
|
|
|
example, to add mail.pl before the window activity item, use: /STATUSBAR window
|
|
|
|
|
ADD -before act mail.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
References:
|
|
|
|
|
|
2020-03-16 16:39:33 -04:00
|
|
|
|
[1] https://www.gnu.org/licenses/fdl.html
|
2017-10-24 16:12:34 -04:00
|
|
|
|
[2] https://www.iterm2.com/
|
2020-03-16 16:39:33 -04:00
|
|
|
|
[3] https://quadpoint.org/articles/irssisplit/
|
2017-10-24 16:12:34 -04:00
|
|
|
|
[4] https://github.com/rofl0r/proxychains-ng
|
|
|
|
|
[5] https://irssi.org/documentation/settings/
|