I hadn’t really taken the time to document this stuff anywhere, and occasionally people ask me, so I figured I’d just put it up on here so I can point to it. I’ve done a few customizations to my irssi config file to increase usability.

The main one is the ability to meta key the first 80 windows rather than just the default first 10.

keyboard = (
{ key = "meta-q"; id = "change_window"; data = "11"; },
{ key = "meta-w"; id = "change_window"; data = "12"; },
{ key = "meta-e"; id = "change_window"; data = "13"; },
{ key = "meta-r"; id = "change_window"; data = "14"; },
{ key = "meta-t"; id = "change_window"; data = "15"; },
{ key = "meta-y"; id = "change_window"; data = "16"; },
{ key = "meta-u"; id = "change_window"; data = "17"; },
{ key = "meta-i"; id = "change_window"; data = "18"; },
{ key = "meta-o"; id = "change_window"; data = "19"; },
{ key = "meta-p"; id = "change_window"; data = "20"; },
{ key = "meta-a"; id = "change_window"; data = "21"; },
{ key = "meta-s"; id = "change_window"; data = "22"; },
{ key = "meta-d"; id = "change_window"; data = "23"; },
{ key = "meta-f"; id = "change_window"; data = "24"; },
{ key = "meta-g"; id = "change_window"; data = "25"; },
{ key = "meta-h"; id = "change_window"; data = "26"; },
{ key = "meta-j"; id = "change_window"; data = "27"; },
{ key = "meta-k"; id = "change_window"; data = "28"; },
{ key = "meta-l"; id = "change_window"; data = "29"; },
{ key = "meta-;"; id = "change_window"; data = "30"; },
{ key = "meta-z"; id = "change_window"; data = "31"; },
{ key = "meta-x"; id = "change_window"; data = "32"; },
{ key = "meta-c"; id = "change_window"; data = "33"; },
{ key = "meta-v"; id = "change_window"; data = "34"; },
{ key = "meta-b"; id = "change_window"; data = "35"; },
{ key = "meta-n"; id = "change_window"; data = "36"; },
{ key = "meta-m"; id = "change_window"; data = "37"; },
{ key = "meta-,"; id = "change_window"; data = "38"; },
{ key = "meta-."; id = "change_window"; data = "39"; },
{ key = "meta-/"; id = "change_window"; data = "40"; },
{ key = "meta-!"; id = "change_window"; data = "41"; },
{ key = "meta-@"; id = "change_window"; data = "42"; },
{ key = "meta-#"; id = "change_window"; data = "43"; },
{ key = "meta-$"; id = "change_window"; data = "44"; },
{ key = "meta-%"; id = "change_window"; data = "45"; },
{ key = "meta-^"; id = "change_window"; data = "46"; },
{ key = "meta-&"; id = "change_window"; data = "47"; },
{ key = "meta-*"; id = "change_window"; data = "48"; },
{ key = "meta-("; id = "change_window"; data = "49"; },
{ key = "meta-)"; id = "change_window"; data = "50"; },
{ key = "meta-Q"; id = "change_window"; data = "51"; },
{ key = "meta-W"; id = "change_window"; data = "52"; },
{ key = "meta-E"; id = "change_window"; data = "53"; },
{ key = "meta-R"; id = "change_window"; data = "54"; },
{ key = "meta-T"; id = "change_window"; data = "55"; },
{ key = "meta-Y"; id = "change_window"; data = "56"; },
{ key = "meta-U"; id = "change_window"; data = "57"; },
{ key = "meta-I"; id = "change_window"; data = "58"; },
{ key = "meta-O"; id = "change_window"; data = "59"; },
{ key = "meta-P"; id = "change_window"; data = "60"; },
{ key = "meta-A"; id = "change_window"; data = "61"; },
{ key = "meta-S"; id = "change_window"; data = "62"; },
{ key = "meta-D"; id = "change_window"; data = "63"; },
{ key = "meta-F"; id = "change_window"; data = "64"; },
{ key = "meta-G"; id = "change_window"; data = "65"; },
{ key = "meta-H"; id = "change_window"; data = "66"; },
{ key = "meta-J"; id = "change_window"; data = "67"; },
{ key = "meta-K"; id = "change_window"; data = "68"; },
{ key = "meta-L"; id = "change_window"; data = "69"; },
{ key = "meta-:"; id = "change_window"; data = "70"; },
{ key = "meta-Z"; id = "change_window"; data = "71"; },
{ key = "meta-X"; id = "change_window"; data = "72"; },
{ key = "meta-C"; id = "change_window"; data = "73"; },
{ key = "meta-V"; id = "change_window"; data = "74"; },
{ key = "meta-B"; id = "change_window"; data = "75"; },
{ key = "meta-N"; id = "change_window"; data = "76"; },
{ key = "meta-M"; id = "change_window"; data = "77"; },
{ key = "meta-<"; id = "change_window"; data = "78"; },
{ key = "meta->"; id = "change_window"; data = "79"; },
{ key = "meta-?"; id = "change_window"; data = "80"; }
);

Yeah, it’s a lot of lines, but it works well provided you don’t use any of the builtins like meta-p,n.

I also have irssi setup to prefer ipv6 when it’s reachable since I have native v6 on the box I use. I also have coded utf-8 support

settings = {
core = {
...
resolve_prefer_ipv6 = "yes";
recode_autodetect_utf8 = "yes";
recode_fallback = "UTF-8";
recode = "yes";
recode_out_default_charset = "UTF-8";
recode_transliterate = "yes";
};
"fe-common/core" = { term_charset = "UTF-8"; };
};

I forget what the original statusbar stuff looked like, but since I’m in so many windows all the time, I changed it so Activity gets it’s own line. This is just the excerpted part of it:

statusbar = {
default = {
...
    activity = { items = { act = { }; }; };
};
};

Make sure you remove the original part of the code that contains ‘act’ in the line before or you’ll have two.

This is for anyone on irc.uslug.org to ignore some of the more annoying aspects of < Huskybot>:

ignores = (
{ mask = "HuskyBot"; level = "ALL"; pattern = "I see London, I see France, I see .*'s IP address!"; regexp = "yes"; },
{ mask = "HuskyBot"; level = "ALL"; pattern = "root has landed!"; regexp = "yes";},
{ mask = "HuskyBot"; level = "ALL"; pattern = "glomps .*"; regexp = "yes"; }
);