Compiling mcabber with OTRv4 on Debian

11 December 2014

Currently OTRv4 (libotr5-dev) is only in testing, which means you need to add the backports repository. (For Ubunutu skip this step, the rest is the same.)

Add the following line to the bottom of /etc/apt/sources.list if you don’t already have it.

deb wheezy-backports main 

Update and install the required libraries to compile mcabber with OTR, PGP and UTF-8 support.

apt-get install build-essential libloudmouth1-dev libgpgme11-dev libncursesw5-dev libotr5-dev

Download and extract the latest release. Currentlythere is no signed, or hashed checksum to confirm.

tar xvfj mcabber-0.10.3.tar.bz2
cd mcabber-0.10.3

Run the configuration script, you need to specify OTR or it will not compile support for it.

./configure --enable-otr
sudo make install

Confirm everything has compiled and installed correctly.

mcabber -V

Create the config directories, along with a place to store your OTR keys.

mkdir -p ~/.mcabber/otr
chmod 0700 ~/.mcabber

Create a configuration file, called ~/.mcabber/mcabberrc. Example config file here.

# Basic jabber server stuff
set jid = <UserName>
set server = <Server>
set tls = 1

# Disbale logging.
set disable_chatstates = 1
set logging = 0
set load_muc_logs = 0

# Enable OTR to always run.
set otr = 1
otrpolicy default always
set otr_dir = "~/.mcabber/otr/"

Should all be working, use /help otr to get more information.

/OTR key
/OTR start|stop|info [jid]
/OTR fingerprint [jid [fpr]]
/OTR smpq|smpr [jid] secret

/OTR smpa [jid]
You can use the shortcut-jid "." for the currently selected contact.

/otr key
Print the fingerprint of your private key to the Status Buffer

/otr start [jid]
Open an OTR channel to the specified jid (or the currently selected contact)

/otr stop [jid]
Close the OTR channel to the specified jid (or the currently selected contact)

/otr info [jid]
Show current OTR status for the specified jid (or the currently selected contact)

/otr fingerprint [jid [fpr]]
Show the active fingerprint of an OTR channel.

If the fingerprint is provided instead of "fpr", the fingerprint will become trusted.  If you replace "fpr" by some bogus string the fingerprint will loose the trusted status.

/otr smpq [jid] secret
Initiate the Socialist Millionaires Protocol with the secret and the buddy

/otr smpr [jid] secret
Respond to the Initiation of the jid with the secret

/otr smpa [jid]
Abort the running Socialist Millionaires Protocol

GTK icons missing using a window manager

13 November 2014

If you’re using a window manager, such as awesome or goomwwm, instead of a desktop environment, such as GNOME or XFCE, then you might have the issue of some GTK applications not looking quite right, a problem I had was with missing icons.

Before and after:

GTK Before and After

List all available icons themes:

ls ~/.icons/ /usr/share/icons/

You need to append the line, gtk-icon-theme-name = "-insert-theme-name-", to /etc/gtk-2.0/gtkrc or ~/.gtkrc-2.0.

echo "gtk-icon-theme-name = \"Humanity\"" >> /etc/gtk-2.0/gtkrc

The above command globally sets the theme to Humanity. The command is appended if the file exists, and creates it if not.

Wireshark Privileges

30 October 2014

Reconfigure wirehsark-common so that it allows non-root users to access the interface. Add the user to the wireshark group.

dpkg-reconfigure wireshark-common
usermod -a -G wireshark <user>


Flash Fullscreen Focus Fix

28 October 2014

To force flash to not exit full screen when focus is lost, edit the NET_ACTIVE_WINDOW, in

sudo sed -i 's/_NET_ACTIVE_WINDOW/__ET_ACTIVE_WINDOW/g' /usr/lib/firefox-addons/plugins/

GOOMWWM Keybinding

15 July 2014

Keyboard shortcuts become a thing of the past when you’re running a minimal window manager such as GOOMWWM. I decided to use XBindKeys, a grabbing keys program for X.

XBindKeys uses a configuration file, located at $HOME/.xbindkeysrc.

Contents of my .xbindkeysrc

  Mod2 + F12

You can create your own config, or have a default one generated for you.

xbindkeys --defaults > $HOME/.xbindkeysrc 

To get the correct key codes, you can use -k to identify key presses. It will open a blank window and output the command to be placed into your configuration file.

xbindkeys -k

XBindKeys should be easily found in your package manager.

iptables pcap log

23 March 2014

ULOG is the netfilter/iptables logging daemon. It connects to the netlink device of the Linux kernel and reads messages from the netfilter that get queued with the iptables ULOG target. It can output to plain text, MySQL, Postgres and PCAP.

Install with:

apt-get install ulogd-pcap 

Configure ulogd to output in PCAP format

 vim /etc/ulogd.conf

Un-comment plugin="/usr/lib/ulogd/", restart ulog. Then add a log rule to iptables before the final drop rule.


The PCAP log file should be located at /var/log/ulog/pcap.log

LaTeX Install .cls

20 March 2014

Installing a LaTeX class in three simple steps.

locate article.cls

Copy your .cls file to the same directory.

sudo cp yourclsfile.cls /usr/share/rest/of/the/path/from/above

Update the kpathsea database.

sudo texhash

MAC Spoofing

11 February 2014

There are times when you want to change your MAC address, be it for fun, by-passing time restrictions or for development reasons.

For Linux there is a nice small tool which does this for you. It’s called macchanger. You can download and compile it or install it with your package manager.

For example, on Debian/Ubuntu you can do:

sudo apt-get install macchanger

Make sure you are not connected to the network first, and bring down your interface. In this case it’s my wireless interface, you may want to use your ethernet, which might be eth0.

sudo ifconfig wlan0 down

Now we change the end of the MAC address which will change your address but keep the same vendor bytes. For more information about this read up on MAC addresses

sudo macchanger -e wlan0

Now bring the interface back up, and connect to the network using your network manager.

sudo ifconfig wlan0 up

Check if we still have the new address.

macchanger wlan0

You should see something like this, if your current address is different then all is good.

Permanent MAC: 00:2F:77:36:57:F4 (Intel Corporate)
Current   MAC: 00:2F:77:F4:CE:02 (Intel Corporate


Script to get HTTP Headers

02 August 2013

The below script uses urllib2 to connect to the given URL(s) then prints out the HTTP headers.

import urllib2, sys

if len(sys.argv) == 1:
	print "Please feed me a URL...\n\n<3\n"

for url in sys.argv[1:]:
	r = urllib2.urlopen(url)
	print 'URL: ' + url + '\n' + str(

An example of it working is shown below. From a “security through obscurity” view, you’d want to conceal your HTTP server information.

$ python ~/
Server: nginx/1.2.1
Date: Mon, 05 Aug 2013 01:10:19 GMT
Content-Type: text/html
Content-Length: 650
Last-Modified: Mon, 29 Jul 2013 08:46:57 GMT
Connection: close
Accept-Ranges: bytes

goomwwm startup applications and background

24 January 2013

I’ve been using Goomwwm on and off, but seeing as it’s post-new-yearness I’m going to give it a try full time.

To set the background, I decided to use feh.

Simply create a .goomwwmrc in your home directory.

# Background
exec /usr/bin/feh --bg-center /home/osaka/wallpaper.jpg

# Sart up applications
exec /usr/bin/lxpanel

That sets the background to an image in my home directory and start lxpanel up once goomwwm has started.

From here you should be able to work out how to start other applications. Simply prefix the application location with the command ‘exec’