Skip to content

gajim/gajim

Repository files navigation

[[TOC]]

Gajim

A fully-featured XMPP chat client.

Gajim aims to be an easy to use and fully-featured XMPP client. Just chat with your friends or family, easily share pictures and thoughts or discuss the news with your groups.

Requirements

Runtime Requirements

Optional Runtime Requirements

  • D-Bus running to have gajim-remote working
  • sentry-sdk for Sentry error reporting to dev.gajim.org (users decide whether to send reports or not)
  • libspelling and hunspell-LANG where lang is your locale eg. en, fr etc
  • libsecret for GNOME Keyring or KDE support as password storage
  • GUPnP-IGD for better NAT traversing
  • NetworkManager for network lose detection
  • GeoClue for sharing your location
  • GSound for sound on Linux

For Video and Audio Calls

For Voice Messages

Build Requirements

To build Gajim a PEP517 build frontend like pip (https://pip.pypa.io/en/stable/) or build (https://pypa-build.readthedocs.io/en/stable/) must be used.

The build frontend takes care of installing all python build requirements. Beware gettext is not a python library and cannot be installed by the build frontend.

Building

Building the metadata files and translation

$ ./make.py build -h

usage: make.py build [-h] [--dist {unix,flatpak,flatpak-nightly,win}]

Afterwards metadata files can be found in dist/metadata folder.

Building the wheel

This is only necessary if you need the wheel, otherwise you can skip to the Installing section.

Using build

python -m build -w

Using pip

pip wheel --no-deps --use-pep517 -w dist .

Installing

Installing with pip

pip install .

Installing the wheel

pip install dist/name_of_wheel.whl

Installing the metadata files (Unix only)

$ ./make.py install -h

usage: make.py install [-h] [--dist {unix,flatpak,flatpak-nightly}] [--prefix PREFIX]

options:
  -h, --help            show this help message and exit
  --dist {unix,flatpak,flatpak-nightly}
                        Distribution
  --prefix PREFIX       The path prefix for installation (e.g. "/usr")

Tests

  • python -m unittest discover -s test
  • python -m unittest ./test/gtk/gui_file.py (for testing GUI files)

Packages and install instructions

Packages

Flatpak

see README

Snapshots

Mac

see Wiki

Developing

To create a virtualenv you can execute

./scripts/dev_env.sh

Be sure all install requirements are available.

Afterwards activate the virtual environment with

source .venv/bin/activate

It is a good practice to run the development version with a user profile. This ensures that it does not interfere with other installations.

./launch.py --user-profile dev

Windows

see README

Miscellaneous

Debugging

Execute gajim with --verbose

Links

That is all, enjoy!

(C) 2003-2025 The Gajim Team https://gajim.org

We use original art and parts of sounds and other art from Psi, Gossip, Gnomebaker, Gaim and some icons from various gnome-icons (mostly Dropline Etiquette) we found at art.gnome.org. If you think we're violating a license please inform us. Thank you.

Contributors 98

Languages