IRC is one of the most used protocols for text chatting and most major projects and distributions have several IRC channels to offer help or discuss development or any other issues.
XChat is a very powerful IRC client written in GTK who has been around for years and is now feature complete, low on resources, with a powerful scripting interface and support for C plugins.
The interface doesn't seem to be very complex, but the true configuration power of XChat stands in scripts and /SET variables, which allows you to make it behave in any way you like. One good thing about XChat is that it doesn't copy other clients' interfaces, and it provides its own, simple and clean. Although not necessary very intuitive at start, once you get used to it, XChat comes to behave the way you like it. A GNOME version of XChat is available too, but I decided upon the original client.
When it first starts, XChat will pop-up the network list, allowing you to set the desired nickname, user, real name and select to which network you want to connect. This dialogue can be disabled in the future.
You can also configure the behaviour to automatically connect to several network at start-up and also send several commands when it does (which can also be listed in a text file inside ~/.xchat/ directory), although I recommend doing this in a script and just loading it when XChat starts.
The default list of channels is tree view, but you can switch it to the more common tab view in the View -> Channel Switcher -> Tabs menu.
As I said before, the true power of XChat lies in the /SET variables (just type /SET to see a complete list, or visit this website to see what they all do), in scripting and support for C plugins. Scripting is available by default in Perl and Python, and a plugin makes available Tcl too. The good thing about the scripting interface is that it's fully documented on the official website, so what you'll only need in order to extend XChat is basic programming knowledge in Perl or Python and a little documentation reading. If you know basic C, you'll also be able to create plugins for XChat. It supports event-based scripting. Here is my work in this matter and I'm not a professional programmer.
Some of the /SET variables are really useful, like irc_whois_front (to see /WHOIS information in the current active window) or irc_conf_mode (to hide the join/part events - the conference mode). The conference mode can also be enabled by right-clicking on the channel tab and ticking Settings -> Hide Join/Part Messages.
XChat has support for connecting to several networks at the same time, a powerful logging system which allows not only to select the path, but also to use date specifiers like %b or %d for the filenames with your discussions. Practically, you can make any format possible using the specifiers.
You can configure keyboard shortcuts, it has an auto-replace feature and also spell checking, which really is very useful if your English is not that good.
This new version also has a new entry in the Logging tab inside the Preferences window, which allows to enable/disable the scrollback from previous discussions. This option was available in the previous release with the /SET TEXT_REPLAY 1|0 variable.
XChat also features system tray integration, although in KDE the icon can sometimes be too big (that depends what size the panel with the tray icons has). One feature I couldn't find and I really miss is start minimized, and I really hope it will be implemented in the future.
The system tray icon can also be configured to highlight whenever a special event occurs, you can do it through the Settings -> Preferences -> Alerts dialogue.
Documentation is very abundant, and as for the community, the project offers both a forum and an IRC channel, #xchat on Freenode.
Overall, I can only say that XChat is probably the most complete, powerful and popular graphical client for IRC on Linux. It implements everything an IRC client should have, and the options you miss can be easily implemented using scripts or plugins. There are lots of them on the official website. This was my favourite client for a very long time, and I warmly recommend to any person who uses IRC, regarding if it's an IRC addict or not, a beginner or a more experienced user.
Of course, if XChat doesn't fit you, other powerful graphical clients are KVirc and Konversation, and for CLI there is the lovely Irssi, which I found myself using more and more lately.
Scripts & Plugins
My XChat Scripts & Plugins
Updated: Jul 02, 2008 (Created: Jul 02, 2008)