I couldn’t find an IRC client made for elementary OS. Certainly not one that was stable. I wanted to create an IRC client for elementary OS that had everything I would want in a perfect IRC client. I set out to create a fast and elegant IRC client, written in Vala, with no bulky dependencies just for parsing messages. Its geared towards elementary OS but works great on any Linux operating system. It won’t use much memory, less than 30mb usually. Its quick, stable, and I’m adding features all the time.
You can see an idea of what it looks like above, although even some newer features are missing from that screenshot.
While building it I wanted to have a very attractive UI that focused on the main competent – the messages. I took a different approach than most IRC clients, putting the user list and the channel subject in popovers in the header bar. I wanted it to be easy enough to use that anyone could use it. You can slide away the channel list. Once the channels you want are open, you can focus on the important bits.
Another great feature is drag and drop to Hastebin (an open source pastebin). If you drag files to the paste icon it will upload all of them and put the URL’s in the output window.
While building Relay I paid special attention to how many libraries I was using. I didn’t pull in any libraries to parse messages or even to send HTTP requests. All communication in the IRC client is done through raw TCP sockets, even the HTTP requests to Hastebin. It uses multiple threads to take advantage of multi-core CPUs. It uses a small amount of memory – usually 25mb.
Other features include:
- A missed message count.
- Highlighting tabs with activity from IRC servers.
- Drag and drop reordering of tabs.
- Automatic IRC channel connecting
- URL parsing and the ability to open your browser when clicked
- Highlights the name of your or anyone else when mentioned in a chat
- Right click tab switching.
- The ability to switch channels through tabs or the sidebar.
- It supports languages that use UTF-8 characters.
- Although Relay was built on Elementary OS it will switch the theme depending on what operating system you are using.
- The ability to search users
- The ability to see where you left off since you last visited a tab
- The ability to control many settings and set colors in the UI
- Click a user name to have their name placed in the text entry
- Private messaging and and ability to block users
- The ability to turn on or off joining or exiting messages
- Creates a datestamp every 5 minutes to give you a timeline of what has happened
I’m adding features all the time so if you are building from source make sure to pull down updates.
Edit: A PPA is now available. Get the PPA here: https://launchpad.net/~agronick/+archive/ubuntu/relay
If you want to just install it you can use the following commands on a distro that uses apt-get:
sudo apt-add-repository "ppa:agronick/relay"
sudo apt-get update
sudo apt-get install relay
The code is mirrored on Github and Launchpad. It should be relatively simple to compile and install. Simply follow the instructions in the INSTALL file. You can leave any feature requests or bug reports on Github.
Check it out. Let me know what you think. I’d like to hear your feedback on what you think about this IRC client. If you have issues just open an issue on Github and make sure to say witch operating system you are using if it’s not Elementary OS. If you would like to help out in any way I would certainly appreciate it. Keep in mind that as of July 2015 it is only a month old. Check the repos frequently as you should find new code posted often.