AOL Instant Messenger is really the last remaining shred of AOL’s former monopoly. Once folks realized that they didn’t need AOL to get on the Internet, and that the Internet itself, through search engines and portals, could give them basically the same stuff they got from AOL for at least half the price, they dumped that service like a ton of bricks. In their scramble to rebuild the empire they once enjoyed, AOL introduced AOL Instant Messenger, which has now become completely entrenched in the world of instant messaging.
Despite the alternatives, including the big names like Yahoo!, MSN, and Google, not to mention Jabber, etc., most people mean AIM when they say “IM.” That being the case, huge numbers of third-party clients have been released to give access to the AIM network from other platforms and using different interfaces. In OS X, Adium takes the cake. For Windows there’s Trillian. In Linux, of course, gAIM. But if you want to use a console client (because it makes you three times as 1337), you have a choice.
The forerunner in the console AIM client race is nAIM (I believe it is short for ncurses AIM, invoking the name of the console input/output library it uses, ncurses). But I have had spotty luck with it myself, either because it’s in a development rut or because of my particular system setup. nAIM crashes a bit for me and so on. On top of that, it’s very friendly and colorful, but that doesn’t work for everyone in every situation.
So I found “bsflite,” a very lightweight client written in C that compiles on most *NIX platforms (check the bsflite Sourceforge page for more). I started using it and I like it very much. It’s fast, it’s simple, it gets the job done. Except for one thing…
The basic interface concept of bsflite is a simple prompt with all other messages and status information dumped into the screen from bottom to top. In order to send messages and do other things, you enter a single-character command followed by any parameters. For example, to send an IM, you enter “m” followed by the user’s screenname. There is some tab-completion, but it only works once you’ve typed enough of a name to be unique and on top of that, if you are talking with just one person, you have to type at least the first few letters of their name over and over.
So I came up with a pretty simple solution that allows you to press tab on an empty line to pop up the command to send a message to the last person you sent a message to. In other words, if you enter “mfavoritefriend How do you do?” and then press tab on a blank line, you will get “mfavoritefriend” with a space after it so you can enter another message.
The change was really simple, so if anyone uses bsflite and wants to hook it up, here is the patch
This patch is for bsflite 0.82. Other versions may not be quite the same and the patch is for the main file, bsf.c, so be wary of that.
Have you seen Finch?