Difference between revisions of "Gajim"

From ArchWiki
Jump to: navigation, search
(Installation: Add section title.)
(Off-the-Record Messaging: explain situation of the Off-The-Record plugin)
 
(24 intermediate revisions by 14 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) ==
+
== Enabling DBus remote control Support ==
  
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.
+
As of version 0.16.6, DBus support is disabled, in order to activate it, enable ''remote_control'' in the 'Advanced Configuration Editor' (Preferences -> Advanced -> 'Advanced Configuration Editor'), then restart Gajim.
  
== Installation ==
+
== Show/hide roster  ==
To install the plugin follow these simple steps:
+
  
# Install [https://aur.archlinux.org/packages.php?ID=56560 aur:pure-python-otr-git];
+
If you would like to be able to show/hide the roster using a script or your wm, you can use the following command from the terminal.
# Install/update the gajim plugins from hg.
+
$ gajim-remote toggle_roster_appearance
## To go through next steps, you need mercurial (a popular DVCS) installed: <pre>$ sudo pacman -S mercurial</pre>
+
## Go to gajim plugins directory:<pre>$ mkdir -p ~/.local/share/gajim/plugins/; cd ~/.local/share/gajim/plugins/</pre>
+
## (at first time) Download all plugins: <pre>$ hg clone http://hg.gajim.org/gajim-plugins/ .</pre>
+
## (at next times) Update plugins to newer versions: <pre>$ hg pull; hg up; rm -f */*.pyo</pre>
+
# [Re]Start gajim;
+
  
== Configuration ==
+
==Auto logout on suspend==
At first time, you also need to activate OTR plugin:
+
 
# Go to menu Edit => Modules;
+
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 {{ic|gajim-suspend@.service}} that uses Gajim's [[D-Bus]] interface:
 +
 
 +
{{hc|1=/etc/systemd/system/gajim-suspend@.service|2=
 +
[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 DBus Support
 +
 
 +
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.
 +
 
 +
=== Installation / Configuration ===
 +
# Go to "contact-window" menu "Edit => Plugins";
 +
# If not activated out of the box, activate the "Plugin Installer";
 +
# In "plugins-window", switch to the "Available" tab;
 
# Activate the "Off-the-record encryption" plugin;
 
# Activate the "Off-the-record encryption" plugin;
 
# Click on plugin settings button;
 
# Click on plugin settings button;
Line 30: Line 59:
 
# Close dialogs to save the changes.
 
# Close dialogs to save the changes.
  
== Troubleshooting ==
 
  
'''Q''': "Off-the-record encryption" is not shown in ''Modules''.
+
=== gajim-otr version confusions ===
  
'''A''': Be sure, that ''~/.local/share/gajim/plugins/gotr/'' is not empty and '''python-potr''' installed on latest version.
+
There are two differently developed/deployed versions of gajim-otr.
 +
One was developed at [https://github.com/python-otr/gajim-otr github] but soon got merged into [https://dev.gajim.org/gajim/gajim-plugins/commits/master/gotr gajim's own plugin-repository]. [https://dev.gajim.org/gajim/gajim-plugins/wikis/home This repository] is used for the development of many plugins, those plugins then get installed via. "Plugin Installer" from [ftp://ftp.gajim.org/ ftp.gajim.org] at the "view => plugins menu". github/gajim-otr shall not be used, due the fact it's source is outdated and [https://github.com/python-otr/gajim-otr/wiki not maintained].
  
'''Q''': There are no ''Modules'' item in gajim menu.
+
== OMEMO Support ==
  
'''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.
+
[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.
 +
 
 +
In order to use OMEMO in Gajim, just install the {{AUR|gajim-plugin-omemo}} package which will also install all the required dependencies.
 +
 
 +
=== Configuration ===
 +
 
 +
After installing the OMEMO plugin, you have to enable it in Gajim Plugin Manager in order to use it:
 +
# Go to menu Edit => Plugins;
 +
# Activate the "OMEMO Multi-End Message and Object Encryption" plugin;
 +
# Close dialogs to save the changes.
 +
# Please refer to the official documentation for [https://github.com/omemo/gajim-omemo#running running instructions]

Latest revision as of 16:27, 13 January 2017

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

Installation

Install the gajim package.

Enabling DBus remote control Support

As of version 0.16.6, DBus support is disabled, in order to activate it, enable remote_control in the 'Advanced Configuration Editor' (Preferences -> Advanced -> 'Advanced Configuration Editor'), then restart Gajim.

Show/hide roster

If you would like to be able to show/hide the roster using a script or your wm, you can use the following command from the terminal.

$ gajim-remote toggle_roster_appearance

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

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.

Installation / Configuration

  1. Go to "contact-window" menu "Edit => Plugins";
  2. If not activated out of the box, activate the "Plugin Installer";
  3. In "plugins-window", switch to the "Available" tab;
  4. Activate the "Off-the-record encryption" plugin;
  5. Click on plugin settings button;
  6. Generate your OTR key using "Generate key";
  7. Take a look on other settings;
  8. Close dialogs to save the changes.


gajim-otr version confusions

There are two differently developed/deployed versions of gajim-otr. One was developed at github but soon got merged into gajim's own plugin-repository. This repository is used for the development of many plugins, those plugins then get installed via. "Plugin Installer" from ftp.gajim.org at the "view => plugins menu". github/gajim-otr shall not be used, due the fact it's source is outdated and not maintained.

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

After installing the OMEMO plugin, you have to enable it in Gajim Plugin Manager in order to use it:

  1. Go to menu Edit => Plugins;
  2. Activate the "OMEMO Multi-End Message and Object Encryption" plugin;
  3. Close dialogs to save the changes.
  4. Please refer to the official documentation for running instructions