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.


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 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


sudo apt-get install gajim-nightly


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

Modify .desktop File

Without modifing your .desktop file gajim looks like this.


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.


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

and then search for


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.


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.



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.


  • 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


Change the value to Activated.


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.


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.


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.


Written on March 14, 2017