| 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. |