Omemo and Gajim

In this post I’m explaining how you install Gajim and use it with Omemo encryption. I will show you some usefull tools, adaptions, tricks and plugins to increase the usability factor. Especially for the Ubuntu Unity users this post will contain some workarounds.

Installation

If you use Debian based system like Ubuntu I recommend to not use Gajim from the official Ubuntu repository. It’s to old and the omemo plugin will not work with the old version.

Instead you can find installation instructions at the official Gajim site.

Installation Debian/Ubuntu/…

Add the Gajim repository to your repository source list.

deb ftp://ftp.gajim.org/debian unstable main

Then update install gajim-dev-keyring

sudo apt-get update && sudo apt-get install gajim-dev-keyring

Now install the stable or nightly gajim version

sudo apt-get install gajim

or

sudo apt-get install gajim-nightly

Unity

Using Unity there are two things that have to be done.

Modify .desktop File

Without modifing your .desktop file gajim looks like this.

_gajim_without_modifications.png

This would be no problem if gajim would work with it. As yoú can imagine that is not the case. You are not able to click on several menu options and so on.

Do

sudo gedit /usr/share/applications/gajim.desktop

and then search for

Exec=gajim

and replace it with

Exec=env UBUNTU_MENUPROXY= gajim

After this your menu looks like this and you are able to use the full menu.

_gajim_with_modification.png

Install application integration plugin

Gajim will not support Gajim’s notification service. There is a plugin called application integration that enables notifications four Unity.

First install

sudo apt-get install python-appindicator

And then install application integration under Edit -> Plugins -> Available. Then enable the plugin under Edit -> Plugins.

Now in the appindicator bar in the right upper corner you can see a speech balloon that will indicate you about new messages.

_notification.png

Features

A lot of people don’t recognize that Gajim offers some special Features. Under Help -> Features you can see what dependencies are needed for some features. For example I would recommend to enable SSL certificate validation. You will need to python-pyopenssl and then restart Gajim.

_features.png

  • SSL certificate validation
  • Notification
  • Password encryption

Advanced Options

You can change a lot in the Options Edit -> Preferences. Some options are “hidden” in an advanced prefence editor that are very useful. You can go there by Edit -> Preferences -> Advanced -> Open (Advanced Configuration Editor)

MUC Notifications

When you are in Multiuser Chats you won’t be noticed by Gajim when a new message arrives. To enable this go in the Advanced Configuration Editor and search for

notify_on_all_muc_messages

Change the value to Activated.

Plugins

Omemo Encryption

Omemo is an implementation of the Signal-Protocol for XMPP. The Signal-Protocol is used for messengers like Signal or WhatsApp. This Plugin enables end-to-end-encryption and can be used to encrypt muc chats too.

Installation

Just install it through the plugin menu.

Account Verification

If you use conversations and you want to scan the QR-Code of your Omemo fingerprint you can go to Edit -> Plugins, select OMEMO and then click configure.

_fingerprint.png

Sending Encrypted Files

To send encrypted files you can use the HTTPUpload Plugin. On serverside the XEP-0363: HTTP File Upload has to be enabled. To receive encrypted images you can install Url image preview Plugin. It automatically decrypts the images and shows them in your conversation window.

Client Icons

This is a useful plugin if you want to know what messenger your counterpart is using.

_fingerprint.png

Written on March 14, 2017