At the moment I’m using WeeChat through SSH. Instead of running the IRC client on my phone, I’m now running it on a remote Linux server to which I can connect using any SSH client.
I’ve decided to go this way because:
- Phone connections tend to be unstable, especially on the road. Having to reconnect, re-identify and re-join channels takes time and can annoy other chatters. Not to mention you lose part of what has been said, and possibly the line you’ve just written yourself. Since WeeChat keeps running even when I’m not connected to it from my phone, I can read what has happened and keep half-written lines.
- Logs are always kept on my server now. Less chance of losing my logs, or having to merge my query logs with my regular logs.
- Every time I got a new phone, I had to re-install the IRC client, or —in case the phone had a different operating system— find a new IRC client that suited my needs. In the past years I’ve switched between so many IRC clients, I kinda got tired of it… Not only does every client have their own layout, configurations and log formats, it might also lack features I got used to from other clients, or have bugs.
- As developers usually build IRC clients to use them on their own phone, development also tends to stall or halt as soon as they either switch to a phone with a different OS, or when it kinda features everything they need of it. As with SmartIRC, PocketIRC and wmIRC before it, development of zsIRC stalled and finally halted when Gargaj, its developer, abandoned the project and open sourced it. Now, I tend to love dabbling on open source code, but I have no experience with C++, nor Windows Mobile development, it wasn’t really an option to code on it myself either. There weren’t really any other IRC clients left for Windows Mobile 6, and I kinda detest Java midlets, so I had to look for a different solution.
- Active IRC local clients tend to consume quite some battery power. An SSH client tends to be a bit more conservative.
Since about a year back I also got tired of resource intensive GUI-based IRC clients on my desktop/laptop and was looking for an always-on solution that didn’t require lots of resources on my computer, and wasn’t limited to a single operating system.
Since I already had a VPS (Virtual Private Server; a server within a server) at a data centre, a bouncer could’ve fulfilled the always-on requirement. However, I’d still need an IRC client on ever computer I want to chat from, which still leaves the cross-platform issue and the difference in features between IRC clients, as well as the use of resources of the desktop.
The only solution, apart from QuasselIRC —which I didn’t really like—, was a remote IRC client that ran on my VPS.
I’ve often heard of irssi, and I’ve tried it a couple of times. However, imho the configuration and defaults are too complex (and still lacking!).
Especially the lack of a vertical split, needing scripts for a simple nicklist, and Perl being the only scripting language, were and are a real turn-off for me.
Looking further, I found a newer alternative, WeeChat. WeeChat is actively developed by the Frenchman Sébastien “Flashcode” Helleu, is open source and accepts patches from others. Also, Flashcode listens to feature requests and bug reports and does his best to implement/fix them as soon as possible!
Best of all, the client has support for multiple scripting languages (Python, Perl, Lua, TCL, Guile and my favourite scripting language, Ruby) and has a lot of configuration settings, making it highly customisable.
It also has mouse support since about a half year, which makes it about as easy to use as a regular GUI client.
It being a terminal client (TUI as opposed to GUI), it’s less of a resource hog and can run on my remote Linux server (as well as locally (optionally) under Windows or Mac OS X).
Over the past year (possibly longer now that I think of it) I’ve really grown attached to this client, and rarely use a GUI IRC client anymore. It’s always connected by running it on the VPS inside a terminal multiplexer such as screen (and recently making the transition to tmux), and I can connect to it from multiple locations at the same time, from any operating system or device as long as it has Internet and an SSH client.
Though I could theoretically use the same instance of WeeChat from my mobile device, the limited resolution of and space on a mobile device sort of forced me to run a separate instance instead. On my usual connection I have way more server connections and channels open than have space for (nor would like to) on a mobile device. I also usually have my screen split in 8 ‘windows’, for which there just is no space on a phone either.
A few of the features I really like of WeeChat (though most of them come through scripts):
- native mouse support: being able to click on windows to make them active, or click on buffer/channel names to switch to them.
- buffers: a script that shows a customisable list of open buffers/channels/queries and uses colour coding to indicate activity in them. Combined with mouse support it makes it easy to switch between channels.
- weeget: a script that makes it easier to install and update other scripts.
- chanmon: a script to get a nice overview of all activity in all your open buffers/channels. I usually have a small window that holds this buffer at the top of my screen, so I can see what is happening in other channels I’m not watching.
- highmon: a script that shows an overview of all your highlights.
clone_scanner: my own script that notifies me of users from the same host entering the channel.
- iset: script that offers an interactive way to view, search for and change settings.
- grep: a script to easily search through your logs.
A lot of these are features you probably won’t find on your average mobile IRC client especially with the low resource use of just an ssh client locally compared to a fully fledged IRC client on a phone.
Of course there are some downsides:
Since the client runs remotely, if there is any lag between you and the server (which is a fair chance with 3G connections in areas where the connection keeps switching between transmitters/telephone poles) your text will appear slower on the screen than you type it, making it harder to quickly correct errors.
You also require an SSH server you can connect to with your mobile phone. Imho best solution is to use pubkey-authentication a separate password-protected key for your phone that you can reject in the event you lose your phone. Make sure you have a password on the key, or otherwise you’ll open your server up for those who have access to your phone or find it…
You usually also don’t have access to all keyboard shortcuts since most phone-keyboards and mobile ssh clients don’t have support for a ctrl or alt/meta modifier key…
But all these cons still don’t outweigh the previously mentioned pros imho.
I’ll post some screenshots and pictures of it running on my phone in a few days.