I’m slowly trying to migrate my entire life into the command line. I realise that there are certain things that just can’t be done, like navigating the modern web, but most other things are possible. Today it was Facebook chat’s turn.
Prerequisite knowledge: Some command line fu, access to a Facebook account and a strong desire to be cool.
Facebook chat uses the Jabber/XMPP service. XMPP stands for “Extensible
Messaging and Presence Protocol” and is based on XML. But we don’t need to worry
about any of that, we’ll be using an XMPP client called
mcabber is a really cool piece of software that lets you communicate with an
XMPP service from the command line. Installing it on a Debian based system like
Ubuntu is really easy:
When you first start it up, it will complain about not being able to find a mcabberrc file. You need to create this yourself:
But we won’t leave it blank, where’s the fun in that? There’s an example config
file with settings and their explanations that can be found
here. You’ll want to copy the full
contents of that page and paste it into your newly created
It’s advisable to browse through the
mcabberrc file to get a feel for what you
can do. Once you’ve had a look, you need to set a few key options. At the top of
the file, uncomment the lines that start with
set jid and
You’ll need to set these two to your Jabber ID and password respectively.
“What’s my Jabber ID?” I hear you ask. You can find out what your Jabber ID is
from this Facebook page. Scroll
down to the bottom and click on “Other”. There will be a field entitled “Jabber
ID”. Use that.
Once you’ve filled in those two fields you’re actually good to go. Fire it up and have a look.
A few important things to note about
mcabber usage. It has two modes: chat
mode and “that other mode”. I spend almost all of my time in chat mode and you
can get into that simply by pressing enter. To leave it, press escape. I haven’t
mcabber that long so I’m not sure of the benefits of not-chat mode.
To scroll through your “roster”, also known as “buddy list” (it’s your list of
Facebook friends on the left), you use page up and page down. If you receive a
chat message you can press
ctrl + q to go to the next unread message, then
ctrl + x will take you to the last window you were at.
mcabber is hugely customisable. You get that vibe from the mcabberrc file. The
customisation that made my ears prick up was the chapter called “Scripting” in
the mcabber User Guide.
lets you call scripts for certain events. I decided to write a small script that
alerts me when I receive new messages, just to play around with the
1 2 3 4 5 6
This script is in a file called
~/.mcabber/eventcmd, which is where I’ve
configured my mcabberrc file to point for external commands. This just uses the
notify-send command to tell me someone has said something and what
they said. There’s plenty of documentation surrounding every aspect of
mcabber, including how external scripts get called, it’s all well worth a
My finished setup
I’ll leave you with a screenshot of my workspace. If you have any questions, feel free to ask! :)
Note that there is plenty of documentation on how to use
mcabber, Google is