This is a quick & dirty page about how I've configured irssi. If
you're just getting started with irssi, I highly recommend reading the startup HOWTO.
a few nice things about irssi over ircII:
- words are never split, which means long URLs are now much easier to open!
- full color support
- scriptable with perl
- /layout save (saving of window positions and the items that were in them)
- /ircnet (let irssi find a working EFnet server for you :)
- /upgrade (restart irssi without losing server connections)
- /goto (go to a specific time in lastlog)
- /lastlog
- built-in irc proxy, similar to dircproxy
- multi-net-aware /msg (tabkey puts e.g. "/msg -efnet tris" into the inputline, so you don't have to worry about replying to a msg in the wrong window/network)
- can timestamp /lastlog while not timestamping live chat
- prevents against accidental multi-line pastes (asks for confirmation)
- lots more I can't think of right now; here's another list of irssi features
how to make your irssi setup similar to mine:
- version >= 0.8.x (or latest cvs) is a must
- tris.theme goes in ~/.irssi ... it is mostly just laaama.theme with some improvements appended. still needs a lot of work
- I also use some autoloaded scripts which go in ~/.irssi/scripts/autorun. the unique ones here are bsdloadavg.pl and splitlong.pl (fixes to the latter have already been sent upstream -- hopefully it'll be merged soon)
- the icb module is in here and should be untarred within the irssi directory. if you use this, you should search for, and remove, the line containing "/tmp/icb.log" -- I'm worried it might be a security hole. (Timo has been notified... OK, I think this is fixed now, especially now that you can only really get the module via Subversion, I think.)
- you might take a look at my .screenrc if you want to run irssi in screen, especially if you're having trouble getting color to work. among other things, my .screenrc allows beeps to come through from other windows, which is quite useful combined with beep_msg_level=msgs...
- in SecureCRT, I use:
- terminal type "Linux" (keyboard type "Linux" required for pgup/pgdn/home/end to be passed through)
- a custom "White on Black" color scheme
- no menubar
- copy on select (global options)
- paste on middle button (global options)
- no scroll to bottom on output
- no scroll to bottom on keypress
- vt100 8pt font
- 100 cols and at least 80 rows (100 cols only because of Mutt)
- in PuTTY, I use SecureCRT's vt100 font (just copy it into the system fonts directory). Also, adjusting the selection character classes helps make it easier to copy URLs. I'd avoid PuTTY: it lacks Zmodem and "Open URL" support (try WinURL for a partial solution) and seems to have higher latency compared to SecureCRT.
- for Eterm on UNIXen, I use softbeep for catching and replaying beeps through the sound card.
- I have softbeep configured to pass bells through (SB_REMOVE_BEL=no), and Eterm configured to use a visual_bell -- reducing the likelihood that I'll miss beeps when my headphones are off.
- Note that both screen and Eterm seem incapable of simultaneous audible and visual bells. Please let me know if you find otherwise!
- I've since mostly switched to OS X -- its builtin beep handling is fantastic, if you turn on one accessibility feature: under the Hearing tab in the Universal Access preference pane, check "Flash the screen when an alert sound occurs". You may be interested in my other OS X tips.
now type:
/bind meta-e scroll_end
/bind ^W lower_window
/bind end scroll_end
/bind home scroll_start
/set use_status_window off
/set autocreate_own_query off
/set autocreate_query_level dccmsgs
/set autoclose_windows off
/set reuse_unused_windows on
/set timestamps off
/set show_nickmode off
/set window_auto_change on
/set completion_auto off
/set theme tris.theme
/set autolog on
/set autocreate_split_windows on
/set log_theme default
/set beep_msg_level msgs hilight
/set autostick_split_windows off
/set scrollback_lines 16384
/set scrollback_hours 720
/set scrollback_save_formats on
/set dcc_autoget on
/set dcc_file_create_mode 600
/set dcc_download_path ~/dcc
/hilight whatever_nick_you_use
/statusbar info disable
/statusbar topic disable
and don't forget to /save. then restart to get rid of the status window.
notes on above settings:
- use_status_window, autocreate_own_query, autocreate_query_level, reuse_unused_windows, completion_auto and autolog came from Timo's preferred setup. I believe autoclose_windows defaults to off, now.
- timestamps take up too much space on the screen for my taste, but they do still show up in /lastlog. I would like to have a key combo that toggles it and refreshes the screen, but it requires some more work on Timo's part...
- show_nickmode currently distracts me, but others might find it useful. same for the topicbar.
- window_auto_change causes irssi to automatically switch to newly made windows, mimicking ircII's behavior.
- not sure what effect autostick_split_windows has (and sticky windows in general), but having it off makes it more like ircII.
below is the statusbar section from my config file. it is likely longer than it needs to be...
statusbar = {
items = {
barstart = "{sbstart}";
barstartact = "{sbstartact}";
barend = "{sbend}";
time = "{sb $Z}";
channel = "{sb $cumode$T{sbmode $M}{sbaway $A}}";
topic = " $topic";
info = " Irssi v$J - http://irssi.org/beginner/ - go read it";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "{prompt $N}";
prompt_empty = "{prompt $winname}";
lag = "{sb Lag: $0}";
act = "{sb Act: $0-}";
more = "-- more --";
};
default = {
window = {
type = "window";
placement = "bottom";
position = "1";
visible = "active";
items = {
barstartact = { priority = "100"; };
time = { };
channel = { };
window_empty = { };
lag = { priority = "-1"; };
act = { priority = "10"; };
more = { priority = "-1"; alignment = "right"; };
loadavg = { alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
window_inact = {
type = "window";
placement = "bottom";
position = "1";
visible = "inactive";
items = {
barstart = { priority = "100"; };
channel = { };
window_empty = { };
more = { };
barend = { priority = "100"; alignment = "right"; };
};
};
info = { visible = "never"; };
prompt = {
type = "root";
placement = "bottom";
position = "100";
visible = "always";
items = {
prompt = { };
prompt_empty = { priority = "-1"; };
input = { priority = "10"; };
};
};
topic = { visible = "never"; };
};
};
(is there a way to translate all that deviation into a series of /sb commands? normally, .irssi/config is not meant to be user-serviced, I think.)