From irssi to weechat
I started using
IRC in 2003, around the same time I started using
linux. My IRC client of choice was
xchat. I had a lot of fun
xmms plugin for
xchat that pastes currently playing
song to the current chat room.
Then I switched to
irssi logs I could find is from
2007. Around the time I was switching to Gentoo as my main desktop
system. I used
irssi ever since. I had a few trivial plugins
and a few one-liners around
A few weeks ago I noticed that
nickcolor.pl plugin does not quite
work for some channels: when I open a chat tab for the first time (since
irssi startup) where the discussion is already ongoing all the
nicks get the same color. I spent some time debugging
and I did not manage to get it fixed. I rely on the colors a lot: I
frequent mix nicks together if they don’t look distinct enough.
Instead of spending more time with
irssi I decided to look at the
console alternatives that implement nick coloring by default and are
more actively maintained. tiny and
weechat looked most promising.
tiny is written in
rust, has a nice UI and has a bit too simplistic
yaml configuration for my needs. I also had an impression that
CertFP support was added in
master branch only and did not see a proper release yet.
weechat is written in
C, has UI very close to
irssi and (to my
surprise) has even smaller amount of required dependencies than
It’s configs are
ini files with many-many options.
excellent builtin support for searching through config options.
weechat also has a spell checking capability via
I was a bit worried about vulnerability count on
weechats side, but
irssi has very similar profile if we look at the types of
I settled on
Here is my full configuration so far:
/server add libera irc.libera.chat/6697 -ssl -autoconnect /set irc.server.libera.ssl on /set irc.server.libera.ssl_verify on /set irc.server.libera.ssl_cert %h/certs/libera.pem /set irc.server.libera.sasl_mechanism external /set irc.server.libera.nicks ... /set irc.server.libera.username ... /set irc.server.libera.realname ... /set irc.server.libera.autojoin ... /server add oftc irc.oftc.net/6697 -ssl -autoconnect /set irc.server.oftc.ssl on /set irc.server.oftc.ssl_verify on /set irc.server.oftc.ssl_cert %h/certs/oftc.pem /set irc.server.oftc.nicks ... /set irc.server.oftc.username ... /set irc.server.oftc.realname ... /set irc.server.oftc.autojoin ... # don't notify on joins/leaves /set weechat.look.buffer_notify_default message # spell checking /set spell.check.enabled on /set spell.check.real_time on /set spell.check.default_dict "en,ru" # don't merge server messages from different servers /set irc.look.server_buffer independent # don't trigger upgency properties on terminal to avoid focus change /set trigger.trigger.beep.enabled off # avoid "blue", too dark on my colorscheme /set weechat.color.chat_nick_colors "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen" # Filter most joins/quits/parts: # https://blog.weechat.org/post/2008/10/25/Smart-IRC-join-part-quit-message-filter /set irc.look.smart_filter on /filter add irc_smart * irc_smart_filter * /save
One special thing to note here is absence of
/set irc.server.oftc.sasl_mechanism external line if we compare
Libera setups. Presence of
OFTC causes connection
drops with message
irc: client capability: SASL not supported; irc: disconnected from server.
After 16 years of
irssi usage I don’t feel much discomfort switching
weechat. Most of the keybindings are the same. The UI has slightly
more details that
irssi’s. It felt overwhelming at first. But once I
read the quickstart guide
and user guide
it became natural.
I have not yet ported any of my trivial plugins but it does not look complicated at a first glance.