Difference between revisions of "Gajim"

From ArchWiki
Jump to: navigation, search
(Installation: Add section title.)
m (Changed auto logout section, added information about how to enable the D-Bus remote control feature in Gajim)
 
(18 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[[Category:Internet Applications]]
+
[[Category:Internet applications]]
[[Category:Security]]
+
[http://gajim.org/index.php?lang=en Gajim] is a full featured and easy to use Jabber/XMPP client.
  
'''OTR''' (off-the-record) encryption is strong end-to-end encryption protocol for instant messaging ([http://www.cypherpunks.ca/otr/ read more]). OTR hasn't any XMPP XEP, because OTR is of cross-protocol nature.
+
== Installation ==
  
And '''Gajim''' is a powerful XMPP-client without OTR support out-of-the-box.
+
[[Install]] the {{Pkg|gajim}} package.
  
== Gajim >= 0.15 (or gajim-hg) ==
+
==Auto logout on suspend==
  
Since version 0.15, Gajim has powerful plugin system. The [http://trac-plugins.gajim.org/wiki/OffTheRecordPlugin gotr] plugin is used to provide OTR encryption, and it depends on ''python-potr'', the modern OTR protocol implementation written on python by Kjell Bradden.
+
If you suspend your computer gajim stays connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.
  
== Installation ==
+
This can be achieved by creating a new systemd unit {{ic|gajim-suspend@.service}} that uses Gajim's [[D-Bus]] interface:
To install the plugin follow these simple steps:
+
  
# Install [https://aur.archlinux.org/packages.php?ID=56560 aur:pure-python-otr-git];
+
{{hc|1=/etc/systemd/system/gajim-suspend@.service|2=
# Install/update the gajim plugins from hg.
+
[Unit]
## To go through next steps, you need mercurial (a popular DVCS) installed: <pre>$ sudo pacman -S mercurial</pre>
+
Description=Suspend Gajim
## Go to gajim plugins directory:<pre>$ mkdir -p ~/.local/share/gajim/plugins/; cd ~/.local/share/gajim/plugins/</pre>
+
Before=sleep.target
## (at first time) Download all plugins: <pre>$ hg clone http://hg.gajim.org/gajim-plugins/ .</pre>
+
StopWhenUnneeded=yes
## (at next times) Update plugins to newer versions: <pre>$ hg pull; hg up; rm -f */*.pyo</pre>
+
 
# [Re]Start gajim;
+
[Service]
 +
Type=oneshot
 +
User=%I
 +
RemainAfterExit=yes
 +
Environment=DISPLAY=:0
 +
ExecStart=-/usr/bin/bash -c ". /home/%I/.dbus/session-bus/$(</var/lib/dbus/machine-id)-0 && /usr/bin/gajim-remote change_status offline"
 +
ExecStop=/usr/bin/bash -c ". /home/%I/.dbus/session-bus/$(</var/lib/dbus/machine-id)-0 && /usr/bin/gajim-remote change_status online"
 +
 
 +
[Install]
 +
WantedBy=sleep.target
 +
}}
 +
 
 +
The D-Bus remote control feature must be enabled for the systemd unit to work. It can be tested using
 +
$ gajim-remote check_gajim_running
 +
In case it returns "False" while Gajim is running, enable ''remote_control'' in the 'Advanced Configuration Editor' (Preferences -> Advanced -> 'Advanced Configuration Editor'), then restart Gajim.
 +
 
 +
Then [[enable]] the service.
 +
 
 +
== Off-the-Record Messaging ==
 +
 
 +
[[Wikipedia:Off-the-Record Messaging|OTR (off-the-record) messaging]] is strong end-to-end encryption protocol for instant messaging ([http://www.cypherpunks.ca/otr/ read more]). OTR hasn't any XMPP XEP, because OTR is of cross-protocol nature. Gajim does not support OTR out of the box.
 +
 
 +
Install the {{AUR|gajim-plugin-otr}} package.
 +
 
 +
=== Configuration ===
  
== Configuration ==
 
 
At first time, you also need to activate OTR plugin:
 
At first time, you also need to activate OTR plugin:
 
# Go to menu Edit => Modules;
 
# Go to menu Edit => Modules;
Line 30: Line 52:
 
# Close dialogs to save the changes.
 
# Close dialogs to save the changes.
  
== Troubleshooting ==
+
== OMEMO Support ==
  
'''Q''': "Off-the-record encryption" is not shown in ''Modules''.
+
[http://conversations.im/omemo/ OMEMO Multi-End Message and Object Encryption] is an XMPP Extension Protocol (XEP) for secure multi-client end-to-end encryption. It is an open standard based on Axolotl and PEP which can be freely used and implemented by anyone and recently got an experimental [https://github.com/kalkin/gajim-omemo plugin] for Gajim.
  
'''A''': Be sure, that ''~/.local/share/gajim/plugins/gotr/'' is not empty and '''python-potr''' installed on latest version.
+
In order to use OMEMO in Gajim, just install the {{AUR|gajim-plugin-omemo}} package which will also install all the required dependencies.
  
'''Q''': There are no ''Modules'' item in gajim menu.
+
=== Configuration ===
  
'''A''': Go to Help => About. The gajim version should be 0.15 or something like 0.14.0.1-b9cb32f5badd, where "b9cb32f5badd" is any commit id, if gajim-hg is used. If not, update gajim as said earlier.
+
At first time, you also need to activate OMEMO plugin:
 +
# Go to menu Edit => Modules;
 +
# Activate the "OMEMO Multi-End Message and Object Encryption" plugin;
 +
# Close dialogs to save the changes.
 +
# Use the checkbox on the bottom of each chat tab to enable or disable OMEMO encryption. (if you don't see a checkbox you might have "Make message windows compact" enabled in the general settings)
 +
# Click on "Get Device Keys".

Latest revision as of 21:24, 7 May 2016

Gajim is a full featured and easy to use Jabber/XMPP client.

Installation

Install the gajim package.

Auto logout on suspend

If you suspend your computer gajim stays connected for about 15 minutes. To prevent message loss, it is needed to set your status offline before suspending or hibernating. The status message won't be changed.

This can be achieved by creating a new systemd unit gajim-suspend@.service that uses Gajim's D-Bus interface:

/etc/systemd/system/gajim-suspend@.service
[Unit]
Description=Suspend Gajim
Before=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
User=%I
RemainAfterExit=yes
Environment=DISPLAY=:0
ExecStart=-/usr/bin/bash -c ". /home/%I/.dbus/session-bus/$(</var/lib/dbus/machine-id)-0 && /usr/bin/gajim-remote change_status offline"
ExecStop=/usr/bin/bash -c ". /home/%I/.dbus/session-bus/$(</var/lib/dbus/machine-id)-0 && /usr/bin/gajim-remote change_status online"

[Install]
WantedBy=sleep.target

The D-Bus remote control feature must be enabled for the systemd unit to work. It can be tested using

$ gajim-remote check_gajim_running

In case it returns "False" while Gajim is running, enable remote_control in the 'Advanced Configuration Editor' (Preferences -> Advanced -> 'Advanced Configuration Editor'), then restart Gajim.

Then enable the service.

Off-the-Record Messaging

OTR (off-the-record) messaging is strong end-to-end encryption protocol for instant messaging (read more). OTR hasn't any XMPP XEP, because OTR is of cross-protocol nature. Gajim does not support OTR out of the box.

Install the gajim-plugin-otrAUR package.

Configuration

At first time, you also need to activate OTR plugin:

  1. Go to menu Edit => Modules;
  2. Activate the "Off-the-record encryption" plugin;
  3. Click on plugin settings button;
  4. Generate your OTR key using "Generate key";
  5. Take a look on other settings;
  6. Close dialogs to save the changes.

OMEMO Support

OMEMO Multi-End Message and Object Encryption is an XMPP Extension Protocol (XEP) for secure multi-client end-to-end encryption. It is an open standard based on Axolotl and PEP which can be freely used and implemented by anyone and recently got an experimental plugin for Gajim.

In order to use OMEMO in Gajim, just install the gajim-plugin-omemoAUR package which will also install all the required dependencies.

Configuration

At first time, you also need to activate OMEMO plugin:

  1. Go to menu Edit => Modules;
  2. Activate the "OMEMO Multi-End Message and Object Encryption" plugin;
  3. Close dialogs to save the changes.
  4. Use the checkbox on the bottom of each chat tab to enable or disable OMEMO encryption. (if you don't see a checkbox you might have "Make message windows compact" enabled in the general settings)
  5. Click on "Get Device Keys".