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.
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
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.
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
- Password encryption
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)
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 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.
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.
This is a useful plugin if you want to know what messenger your counterpart is using.