Irssi 0.8.13 has been released and no, this is not an April fool’s joke.

Check out http://www.irssi.org/ for more information and remember to read the NEWS- and ChangeLog-file.

New Features:

  • Reject some obviously invalid values in /set.
  • Add perl bindings for Window::get_history_lines()
  • Use an io channel to write the config file.
  • Use memory slices instead of memory chunks for text buffer.
  • Remove methods to create/destroy TextBuffer and TextBufferView and low level api to add/remove lines, scripts should be fine using Window::print_after and TextBufferView::remove_line.
  • Add print_after method to Window perl object analogous to gui_printtext_after but which also expands formats and forces a full line.
  • Better mapping of signal parameters to Perl. All signals used in scripts now need to be registered with Irssi::signal_register.
  • Add public header with interfaces to manage statusbar items (bug #535)
  • Recode: assume utf-8 encoding for an ascii string in which no escape character occurs (bug #392).
  • Allow /BAN, /UNBAN, /KICKBAN, /KNOCKOUT if channel is not synced. Requesting ban lists from an unsynced channel will ask them from the server, banning a user whose u@h irssi does not know will ban nick!*@* and only bans irssi knows about can be removed.
  • Allow storing multiple “other” prefixes such as +q and +a (original patch by JasonX)
  • Add /set autolog_ignore_targets for cherry-picking targets that shouldn’t get logged.
  • Add support for 16 colors. Formats KBGCRMYW and mirc colors are now mapped to colors 8-15. fe-text translates colors 8-15 to bold/blink+0-7 if the terminal supports only 8 colors. If your theme uses one of the high color formats and you really want bold you can change %FMT<string> to %fmt%_<string>%_, it will work fine in all irssi versions.
  • Better 005 PREFIX support (bug #580).
  • Display 407 numerics other than “duplicate channel”.
  • Fix display of ratbox-style operspy whois.
  • Recode outgoing irc away messages (bug #412).
  • Recode outgoing irc quit messages.
  • Remove scrollback_levelclear_levels setting and add a ‘level’ option to sb levelclear to specify a comma separated list of levels.
  • Add perl __WARN__ handler for scripts (bug #427).
  • Add Irssi::command_parse_options function to parse options for a command.
  • Revert recode changes introduced in 0.8.12.
  • Add completion for /WINDOW SERVER.
  • Support for reading kicks/msgs from TARGMAX/MAXTARGETS 005 tokens.
  • Enhancements to the redirections code.
  • Support for RPL_WHOISACTUALLY (338 numeric) for both ratbox and ircu (bug #428).
  • -idle option of /notify is gone.
  • /layout save now makes window-channel bindings instantly effective (bug #35).
  • /ping without arguments does not send anymore a CTCP ping to a channel (bug #542).
  • Track IRC operator status of nicks a bit better.
  • New actlist_names option to add active items names in ‘act’ statusbar item.
  • New word_completion_backward command to scroll backwards in the completion list.
  • Add ‘list’ option to /bind to print all the available commands.
  • Show setter/time in +I lists
  • Apply -usermode before -autosendcmd (bug #548).
  • Reduce memory usage of the scrollback buffer and make the display in /sb status more accurate (higher).
  • Fix data getting dropped when a lot is sent at a time (e.g. when attaching to irssi-proxy, bug #528).
  • Introduce the type Irssi::Irc::Client and signals to communicate with proxy clients to allow for scripting parts of the irssi-proxy.
  • Add sb_search.pl, a script for /SCROLLBACK SEARCH

Bugfixes:

  • Fix /NOTIFY list when nick is seen joining (bug #642).
  • Include hostmask in 001 event sent by proxy (bug #650).
  • Be more power-friendly: don’t run any always-on less-than 1s timers (bug #641).
  • Don’t get confused by a failed /JOIN -window (bug #644).
  • Properly initialize embedded Perl (PERL_SYS_INIT3).
  • Replace invalid utf-8 bytes with U+FFFD when drawing a line.
  • Properly unload the original script when using /script load to reload it. (bug #525, patch by Lukas Mai)
  • Clean up script loading in general.
  • Fix NETSPLIT_SERVER_REC in signals for Perl.
  • Remove buggy /SCROLLBACK redraw and /SET scrollback_save_formats.
  • Always preserve the active mainwindow when resizing.
  • Ignore DNS not found errors when considering reconnect.
  • Do not strip the comma in a mirc color if it is not followed by a digit (bug #250).
  • Fix building perl module with perl-5.10 (bug #630).
  • Fix leak with $L expando.
  • Fix possible crash with /script reset.
  • Ignore exceptions take precedence over ignores in all cases.
  • Honour -channels preference for ignore -replies (bug #227).
  • Fix mode display in whois with unreal (379 numeric) (bug #479).
  • Fix regressions that prevented external modules from building/working (bugs #537 #539).
  • Fix /set hilight_level not taking effect immediately (bug #598).
  • Fix bold, blinking and indentation in /LASTLOG and buf.pl.

So apparently someone has been crazy enough to grant me commit access to the Irssi project’s subversion repositories, so I better start doing something useful with these new super-powers.

A thing that many users has been looking for is the ability to select various targets (either channels or nicknames) that shouldn’t be logged via Irssi’s autolog feature. This used to be impossible, but as of revision 5006 it’s possible to use the autolog_ignore_targets-setting.

Example usage

If you want to disable logging for all #irssi channels on every network to which you are connected to:

/set autolog_ignore_targets #irssi

If you want to disable logging for only the #irssi channel on EFNet:

/set autolog_ignore_targets EFNet/#irssi

Of course you can add multiple targets:

/set autolog_ignore_targets EFNet/#irssi Freenode/#exherbo ahf

I am using Mutt as my e-mail client of choice, and I have done that ever since I started using Unix. I have for many months been annoyed by the very ugly theme that I created back when I was around 13, but I have never bothered spending a few minutes on making something shiny that did not look too ugly.

Highly inspired by Ciaran’s Vim theme, Inkpot, I decided to create a theme for Mutt.

For rxvt-unicode users:

color   attachment  color30 color80
color   header      color10 color80 "^(From|Subject|cc|date|To|X-Spam-Level|User-Agent|X-Mailer):"
color   signature   color39 color80
color   tree        color26 color80
color   message     color26 color80
color   status      color85 color81
color   normal      color78 color80
color   error       color79 color64
color   indicator   color80 color73
color   markers     color26 color80
color   index       color64 color80 ~D
color   index       color64 color80 ~F
color   index       color30 color80 ~T
color   tilde       color80 color80
color   body        color10 color80 "(http|https|ftp|news|telnet|finger|irc)://[^ \">\t\r\n]*"
color   body        color10 color80 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
color   body        color26 color80 "[;:=][-][)/(|]"
color   quoted      color52 color80
color   quoted1     color22 color80
color   quoted2     color71 color80

For xterm-256color users (submitted by Henrik Stuart):

color   attachment  color61 color232
color   header      color10 color232 "^(From|Subject|cc|date|To|X-Spam-Level|User-Agent|X-Mailer):"
color   signature   color63 color232
color   tree        color63 color232
color   message     color37 color232
color   status      color247 color235
color   normal      color229 color232
color   error       color231 color196
color   indicator   color232 color215
color   markers     color37 color232
color   index       color196 color232 ~D
color   index       color196 color232 ~F
color   index       color49 color232 ~T
color   tilde       color63 color232
color   body        color10 color232 "(http|https|ftp|news|telnet|finger|irc)://[^ \">\t\r\n]*"
color   body        color10 color232 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
color   body        color37 color232 "[;:=][-][)/(|]"
color   quoted      color130 color232
color   quoted1     color25 color232
color   quoted2     color207 color232