Title: Port of the week: catgirl irc client | |
Author: Solène | |
Date: 22 February 2021 | |
Tags: openbsd70 openbsd irc catgirl portoftheweek | |
Description: | |
# Introduction | |
In this Port of the Week I will introduce you to the IRC client | |
catgirl. While there are already many IRC clients available (and good | |
ones), there was a niche that wasn't filled yet, between minimalism | |
(ii, irCII) and full featured clients (irssi, weechat) in the terminal | |
world. Here comes catgirl, a simple IRC client coming with enough | |
features to be comfortable to use for heavy IRC users. | |
Catgirl has the following features: tab completion, split scrolling, | |
URL detection, nick coloring, ignores filter. On the other hand, it | |
doesn't support non-TLS networks, CCTP, multi networks or dynamic | |
configuration. If you want to use catgirl with multiples networks, you | |
have to run it once per network. | |
Catgirl will be available as a package in OpenBSD starting with version | |
6.9. | |
OpenBSD security bonus: catgirl features a very good use of unveil to | |
reduce file system access to the minimum required | |
(configuration+logs+certs), reducing the severity of an exploit. It | |
also has a restricted mode when using the -R parameter that reduce | |
features like notifications or url handling and tight the pledge list | |
(allowing systems calls). | |
Catgirl official website | |
Catgirl screenshot | |
# Configuration | |
A simple configuration file to connect to the irc.tilde.chat server | |
would look like the following file that must be stored under | |
~/.config/catgirl/tilde | |
```Catgirl configuration file sample | |
nick = solene_nickname | |
real = Solene | |
host = irc.tilde.chat | |
join = #foobar-channel | |
``` | |
You can then run catgirl and use the configuration file but passing the | |
config file name as parameter. | |
```shell command to start catgirl | |
$ catgirl tilde | |
``` | |
# Usage and tips | |
I recommend reading catgirl man page, everything is well explained | |
there. I will cover most basics needs here. | |
Catgirl man page | |
Catgirl only display one window at a time, it is not possible to split | |
the display, but if you scroll up you will see the last displayed lines | |
and the text stream while keeping the upper part displaying the | |
history, it is a neat way to browse the history without cutting | |
yourself from what's going on in the channel. | |
Channels can be browsed from keyboard using Ctrl+N or Ctrl+P like in | |
Irssi or by typing /window NUMBER, with number being the buffer number. | |
Alt+NUMBER could also be used to switch directly to buffer NUMBER. | |
Searches in buffer could be used by typing a word in your input and | |
using Ctrl+R to search backward or Ctrl+S for searching forward (given | |
you are in the history of course). | |
Finally, my most favorite feature which is missing in minimal clients | |
is Alt+A, jumping to next buffers I have to read (also yes, catgirl | |
keep a line with information about how many messages in channels since | |
last time you didn't read them). Even better, when you press alt+A | |
while there is nothing to read, you jump back to the channel you | |
manually selected last, this allow to quickly read what you missed and | |
return to the channel you spend all your time on. | |
# Conclusion | |
I really love this IRC client, it replaced Irssi that I used for years | |
really easily because most of the key bindings are the same, but I am | |
also very happy to use a client that is a lot safer (on OpenBSD). It | |
can be used with tmux for persistence but also connect to multiple | |
servers and make it manageable. |