irssifying WeeChat
19 March 2017
I recently changed shell providers from Unikko.org to myself, and with that I changed my IRC client of choice from irssi to WeeChat.
I didn’t go all cold turkey; I’d already used WeeChat for about a year as a secondary client because it has a really good bouncer-esque proxy thing that lets you connect mobile clients (or regular clients, if you so desire and find one that supports it) to the main WeeChat client. This gets me mobile IRC, with my main nickname and backlog and everything, without having to deal with the annoyances of mobile SSH. It really is a great feature, and is by itself enough to make WeeChat better than irssi in my books.
There are some other nice features, too, like the support for graphical client-like nick- and channel lists, better search functionality, a more robust and interactive UI (you can, for instance, scroll the topic bar with hotkeys so you can see long topics without typing /topic), better scripting language support, etc. There’s mouse support, too, and it even works over SSH (I didn’t know that’s even possible), if that’s your thing. I don’t use it. Ultimately it’s fairly minor stuff compared to the convenience of the mobile client as far as I’m concerned, though.
Even then, I had an itty bitty problem with WeeChat: it was butt ugly out of the box.
The default UI seemed to follow a philosophy according to which every element must have a different, garish colour. I did personally finally cave to using nickname colours, too, but that’s the only place I want a rainbow on my IRC client in. Also, after half my life spent using irssi, the little things really got on my nerves: differences in join/quit message appearance, or features like a line denoting unread messages, or that line between nicks and messages that makes sure all messages start at the same column.
And so I spent a very long time customizing the client to look more like what I was used to. Irssifying it. And boy, there are a lot of options in this thing. If you thought irssi’s settings were complicated, then you’re (not) gonna like this. There’s about a thousand options, literally, and while a lot of them are repetition, changing similar things but for different parts of the UI, the total of unique things you can change is still easily over five hundred.
It was no easy task searching through all the various configuration options to see what I want to change. I did most of the changes a year ago, when I first installed WeeChat for the mobile client, and when I moved to it full time last month I found a bunch of more things I wanted to change. I think it’s finally there, though. I changed all the colours (that I could change) to more closely match irssi, and the appearance of various system messages and the status bar, and the behaviour of a whole bunch of things that worked subtly differently from irssi. I added keybindings to hide and show the nick- and channel lists (ctrl-n and ctrl-p respectively), because most of the time I don’t want them visible. I added a couple of aliases, such as /wc to close the current buffer (not window as it would be called in irssi). Normally you’d have to use /buffer close for that. I also added keybinds for windows 11 through 19 to keys Q through O, just like in irssi. Normally you’d change to two-digit windows with alt-J [window number], which required too many keystrokes for my liking.
I’m probably forgetting something, but whatever.
I’m quite happy with how the result turned out. While there are some small differences that I couldn’t change through the configuration (I’ve been told it would be possible to change these through something called “triggers”, but they seem complicated so I didn’t look into using them), for the most part it’s similar enough to irssi that I could easily adapt to it. There are more advanced ricer configurations out there, but I couldn’t find one with the goal of bridging the gap between WeeChat’s good features and irssi’s familiarity.
In case you’re interested, here are the configuration files with hopefully all sensitive information removed. WeeChat is a really good client, and has lots of useful features that irssi doesn’t (and probably never will) have. I hope that this configuration will someday be of use to some irssi purist who wants to try out WeeChat.