Commit c49644f7 authored by Weblate's avatar Weblate
Browse files

Update translations

parent 8140383c
Pipeline #9578 failed with stage
---
title: Development
subtitle: Code, Design, Translations
type: page
comments: false
---
## How to reach us
[![Gajim](https://conference.gajim.org:5281/muc_badge/gajim@conference.gajim.org)](xmpp:gajim@conference.gajim.org?join)
Come join us at [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) with an XMPP client of your choice. Discuss new features, report bugs, or just have a chat. You can also [view the chat history](https://conference.gajim.org:5281/muc_log/gajim/) directly in your browser. You could also [subscribe to our mailing list](mailto:gajim-devel-subscribe@gajim.org) (low-traffic), or just [browse the archives](https://lists.gajim.org).
## How you can help
Development happens on [our Gitlab](http://dev.gajim.org/gajim/gajim). Contributions are welcome! Learn more about [how to contribute](https://dev.gajim.org/gajim/gajim/-/wikis/development/IWantToStartHacking). We invite you to discuss about new features or fixes. In case you found a bug, do not hesitate to [report it](https://dev.gajim.org/gajim/gajim/issues/new).
### Translations
Translations are community driven. You don't need to understand code to be able to translate Gajim. Help is welcome! If you're interested, you can read about [how to translate](https://dev.gajim.org/gajim/gajim/wikis/development/DevTranslate), get involved and [start translating Gajim](https://translate.gajim.org/projects).
### Donations
* [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7XNKP6HNWC2P4&source=url)
* [Flattr](https://flattr.com/@Asterix)
## Development
### Code repository
We use git and Gitlab to manage the development. [Gajim](https://dev.gajim.org/gajim/gajim), [Plugins](https://dev.gajim.org/gajim/gajim-plugins), [python-nbxmpp](https://dev.gajim.org/gajim/python-nbxmpp), and this [website](https://dev.gajim.org/gajim/website) you are viewing right now each have their own project.
It's not hard to set up a development environment. If you experience problems while following our guides for [Linux](https://dev.gajim.org/gajim/gajim/blob/master/README.md) or [Windows](https://dev.gajim.org/gajim/gajim/blob/master/win/README.md), don't hesitate to contact us.
### Authors
The project is lead by:
* Philipp Hörist ([lovetox](https://dev.gajim.org/lovetox))
* Yann Leboulanger ([Asterix](https://dev.gajim.org/asterix))
---
title: Download
subtitle: Gajim is available for Windows, MacOS, and Linux
type: page
comments: false
---
{{< release_info release_label="Latest stable release" beta_label="Current Beta">}}
{{< os_header os="windows">}}
You can either install Gajim on your system or use the portable version. Gajim Portable allows you to take everything with you in just a single folder. Please note that since Gajim 1.3.3 support for Windows 7 has been dropped.
{{< download_btn_windows label="Download" recommended="Recommended download">}}
### Beta and Nightly
{{< download_btn_windows beta="True" label="Download Beta">}}
If you are curious, you can also try the [latest nightly](https://gajim.org/downloads/snap/win/) of Gajim. But be advised, nightlies can be unstable. Make sure to have a backup of your profile folder. Note that migrating back is not possible without complications.
{{< os_header os="macos">}}
Gajim works on MacOS, but there is no package yet. To install Gajim on MacOS, follow [this guide](https://dev.gajim.org/gajim/gajim/-/wikis/help/Gajim-on-macOS).
{{< os_header os="linux">}}
Gajim is available on [many distributions](https://repology.org/project/gajim/versions). Have a look at the [install instructions](#install-instructions).
### Flatpak
Gajim is also available on [flathub.org](https://flathub.org/apps/details/org.gajim.Gajim) and ready for [manual flatpak install](https://dev.gajim.org/gajim/gajim/tree/master/flatpak) as well.
{{< download_btn_flatpak version="stable" label="Install Gajim" >}}
{{< download_btn_flatpak version="nightly" label="Install Gajim Nightly" >}}
Make sure to follow the [setup guide](https://flatpak.org/setup/) before installing.
### Install instructions
#### Ubuntu and Debian
Available in [Ubuntu packages](https://packages.ubuntu.com/search?keywords=gajim) and [Debian packages](https://packages.debian.org/de/buster/gajim).
{{< highlight shell >}}
sudo apt install gajim
{{</ highlight >}}
Gajim plugin packages are available for [Ubuntu](https://packages.ubuntu.com/search?suite=default&section=all&arch=any&keywords=gajim-&searchon=names) and [Debian](https://packages.debian.org/search?lang=de&searchon=names&keywords=gajim-). We recommend to install Gajim plugins on Ubuntu/Debian via packages, in order to resolve dependencies automatically.
To install Gajim’s OMEMO plugin for example:
{{< highlight shell >}}
sudo apt install gajim-omemo
{{</ highlight >}}
#### Fedora
Available in [Fedora packages](https://apps.fedoraproject.org/packages/gajim).
{{< highlight shell >}}
sudo dnf install gajim
{{</ highlight >}}
#### openSUSE
Available in [openSUSE packages](https://software.opensuse.org/package/gajim).
{{< highlight shell >}}
sudo zypper install gajim
{{</ highlight >}}
To install Gajim's OMEMO plugin:
{{< highlight shell >}}
sudo zypper install gajim-plugin-omemo
{{</ highlight >}}
#### Arch Linux
Available in [Arch Linux packages](https://www.archlinux.org/packages/?name=gajim).
{{< highlight shell >}}
sudo pacman -S gajim
{{</ highlight >}}
Gajim plugins are available via [AUR](https://aur.archlinux.org/packages/?O=0&SeB=nd&K=gajim&outdated=&SB=n&SO=a&PP=50&do_Search=Go).
#### FreeBSD
Available in FreeBSD via [FreeBSD ports](https://www.freebsd.org/cgi/ports.cgi?query=gajim).
{{< highlight shell >}}
cd /usr/ports/net/gajim/ && make install clean
{{</ highlight >}}
#### Gentoo
Available in [Gentoo packages](https://packages.gentoo.org/packages/net-im/gajim).
{{< highlight shell >}}
sudo emerge gajim
{{</ highlight >}}
#### Source packages
If there is no package for your distribution, you should be able to install Gajim using the source package.
{{< download_btn_src version="stable" label="Gajim Stable" >}}
{{< download_btn_src version="beta" label="Gajim Beta" >}}
{{< download_btn_src version="nightly" label="Gajim Nightly" >}}
#### Nightly package from git (Debian, Ubuntu)
When running on Ubuntu, you need at least Ubuntu 19.10 (python3-css-parser package is required).
1. Remove Gajim:
{{< highlight shell >}}
sudo apt remove gajim
{{</ highlight >}}
2. Add the GPG key:
{{< highlight shell >}}
wget -q https://gajim.org/gajim.key -O - | sudo apt-key add -
{{</ highlight >}}
3. Add the repository:
{{< highlight shell >}}
sudo sh -c "echo deb https://ftp.gajim.org/debian unstable main > /etc/apt/sources.list.d/gajim.list"
{{</ highlight >}}
4. Update the repository:
{{< highlight shell >}}
sudo apt update
{{</ highlight >}}
5. Install Gajim (stable branch nightly):
{{< highlight shell >}}
sudo apt install gajim-nightly
{{</ highlight >}}
6. Or install Gajim (current development nightly):
{{< highlight shell >}}
sudo apt install gajim-default-nightly
{{</ highlight >}}
### Old releases
If you want to dig through Gajim’s history or you just liked the older version better, have a look at the [old releases](https://gajim.org/downloads/).
---
title: Gajim
subtitle: Gajim, a fully-featured XMPP chat client
comments: false
---
{{< start_block label_win="Download for Windows" label_mac="Install on MacOS" label_linux="Install on Linux" label_other="Other platforms" >}}
{{< row >}}
{{< feature_item icon="fa-project-diagram" header="Decentralized Messaging" text="Connect to your contacts using a server of your choice. Gajim works well with other [chat clients](https://xmpp.org/software/clients.html) and supports multiple accounts.">}}
{{< feature_item icon="fa-users" header="Stay Connected" text="Share pictures, videos, and files with friends and groups. User profiles, status updates, and chat history management included.">}}
{{< /row >}}
{{< row >}}
{{< feature_item icon="fa-shield-alt" header="End-to-End Encryption" text="Chat securely using [OMEMO](https://dev.gajim.org/gajim/gajim-plugins/-/wikis/OmemoGajimPlugin), [PGP](https://dev.gajim.org/gajim/gajim-plugins/-/wikis/pgpplugin), or [OpenPGP](https://dev.gajim.org/gajim/gajim-plugins/-/wikis/OpenPGPplugin).">}}
{{< feature_item icon="fa-box-open" header="Extensible" text="Wikipedia and Wiktionary integration, automatic spell-checking, and much more via plugins.">}}
{{< /row >}}
{{< row >}}
{{< feature_item icon="fa-code" header="Open Source" text="Gajim is free [open-source software](https://gajim.org/development/).">}}
{{< feature_item icon="fa-globe-europe" header="International" text="Available in [29 languages](https://dev.gajim.org/gajim/gajim/-/wikis/development/devtranslate).">}}
{{< /row >}}
---
title: Gajim 1.1.0
subtitle: Version 1.1.0 of Gajim has been released
date: 2018-11-06
author: asterix
tags: ['Release']
---
What's new since 1.0.3:
* Emoji updates
* Design updates for many dialogs and windows
* Support for PKIX over secure HTTP (POSH)
* Improvements with MAM for MUC (group chat history)
* Have a look at the [full changelog](https://dev.gajim.org/gajim/gajim/blob/gajim-1.1.0/ChangeLog)
---
title: Gajim 1.1.1
subtitle: Version 1.1.1 of Gajim has been released
date: 2018-12-24
author: asterix
tags: ['Release']
---
What's new since 1.1.0:
* This is a bugfix release, several minor bugs were fixed
* Have a look at the [full changelog](https://dev.gajim.org/gajim/gajim/blob/gajim-1.1.1/ChangeLog)
---
title: Gajim 1.1.2
subtitle: Version 1.1.2 of Gajim has been released
date: 2019-01-15
author: asterix
tags: ['Release']
---
What's new since 1.1.1:
* This is a bugfix release, several minor bugs were fixed
* Have a look at the [full changelog](https://dev.gajim.org/gajim/gajim/blob/gajim-1.1.2/ChangeLog)
---
title: Gajim 1.1.3
subtitle: Version 1.1.3 of Gajim has been released
date: 2019-04-23
author: asterix
tags: ['Release']
---
What's new since 1.1.2:
* This is a bugfix release, several minor bugs were fixed
* Have a look at the [full changelog](https://dev.gajim.org/gajim/gajim/blob/gajim-1.1.3/ChangeLog)
---
title: New website
subtitle: gajim.org got an update
date: 2019-08-24
author: wurstsalat
---
It was about time to give gajim.org a new look. The new website is powered by [Hugo](https://gohugo.io/), which brings many improvements:
* Simple page editing via markdown
* Easy integration and deployment with Gitlab
* Native syntax highlighting
---
title: Development News October 2019
subtitle: Gajim development news
date: 2019-11-06
author: wurstsalat
bigimg: [{src: "/img/news/development-news.jpg"}]
tags: ['Development']
---
**This is the first post of a news series about Gajim's development. In these posts I (wurstsalat) will try to summarize a month of development around Gajim. Sometimes these posts will also cover python-nbxmpp and XMPP in general. October's development brought improvements to MacOS, Jingle File Transfer, Delivery Receipts, and more. Feel free to join [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) to discuss with us.**
<!--more-->
## Changes in Gajim
The journey of bringing Gajim to MacOS continues: Thanks to *sebastiaanlokhorst* we now use PyInstaller to build the app (see [#9713](https://dev.gajim.org/gajim/gajim/issues/9713)), which brings us one step closer to a Gajim release for MacOS. Efforts are made to automate the build process, so that there can be automated MacOS builds similar to how Windows builds are generated.
While Dino received Jingle File Transfer support during GSoC (thanks to *hrxi*), some interoperability tests were performed between Dino, Conversations, and Gajim. The feedback provided by hrxi lead to some Jingle File Transfer bug fixes ([#9692](https://dev.gajim.org/gajim/gajim/issues/9692), [#9784](https://dev.gajim.org/gajim/gajim/issues/9784)) contributed by *asterix*.
Gajim has been displaying delivery receipts for a long time now. Delivery receipts are displayed by a small check mark icon at the end of a message in the chat window. *lovetox* has made some changes to how these icons are displayed. This also involved a lot of code refactoring and bug fixing around how message receipts are processed. As a result, a display bug where corrected messages would show two message receipt icons ([#9278](https://dev.gajim.org/gajim/gajim/issues/9278)) was fixed. On top of that, the new icon displaying logic enables Gajim to show message errors directly in the tooltip of the corresponding message icon ([#8527](https://dev.gajim.org/gajim/gajim/issues/8527)). Previously, message errors were simply printed to the chat window without message context.
The new group chat roster makes use of some PyGObject functions requiring at least PyGObject (that is python3-gi) 3.32.0. This version is not yet available in some distributions (e.g. Debian 10). Adding PyGObject >=3.32.0 as a requirement also resulted in a refactoring of Gajim's dependency checks.
What else happened:
* Chat: FuzzyClock feature has been removed
* XML console: Account selector for sending XML has been added
* History window: pressing Escape will now close any open search results before closing the window
* Type 'normal' messages (e.g. single messages) will now always be treated like regular chat messages
* Bug fix for auto-scroll with encrypted messages ([#9443](https://dev.gajim.org/gajim/gajim/issues/9443))
* Bug fix for message correction when no ChatControl is open
## Changes in python-nbxmpp:
In a constant effort to separate GUI and protocol/library tasks, *lovetox* continued to refactor both Gajim and python-nbxmpp. In this process, a lot of code is moved from Gajim to python-nbxmpp and vice versa. The goal is to modularize code for future developments and to simplify communication between the two.
In this month, python-nbxmpp received support for the following XEPs. Note: These were already supported by Gajim, but now python-nbxmpp is able to handle these on its own.
* Chat State Notifications ([XEP-0085](https://xmpp.org/extensions/xep-0085.html))
* Security Labels in XMPP ([XEP-0258](https://xmpp.org/extensions/xep-0258.html))
* Attention ([XEP-0224](https://xmpp.org/extensions/xep-0224.html))
* Last Message Correction ([XEP-0308](https://xmpp.org/extensions/xep-0308.html))
* Out of Band Data ([XEP-0066](https://xmpp.org/extensions/xep-0066.html))
* Message Delivery Receipts ([XEP-0184](https://xmpp.org/extensions/xep-0184.html))
* Chat Markers ([XEP-0333](https://xmpp.org/extensions/xep-0333.html))
Furthermore, python-nbxmpp received a bug fix for invalid JIDs in incoming messages ([#85](https://dev.gajim.org/gajim/python-nbxmpp/issues/85)).
---
title: Development News November 2019
subtitle: Gajim development news
date: 2019-11-25
author: wurstsalat
bigimg: [{src: "/img/news/development-news.jpg"}]
tags: ['Development']
---
**This is the second post of a news series about Gajim's development. In these posts I (wurstsalat) will try to summarize a month of development around Gajim. Sometimes these posts will also cover python-nbxmpp and XMPP in general. November's development brought improvements to group chats, theming, drag and drop actions, OMEMO, and more. Feel free to join [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) to discuss with us.**
<!--more-->
## Changes in Gajim
### Group chats
The group chat window received a great number of design changes. Besides the new participants list mentioned in [October's development news](https://gajim.org/post/2019-11-06-development-news-october/), most of the group chat related dialogs have been replaced by 'pages' overlaying the chat window. The idea first came up when we were looking for a place to display group chat infos (which can be quite a lot). An example of how these infos are displayed in the future can be seen in the screenshot below.
{{< figure src="/img/news/group-chat-info.png" width="800px" caption="Group chat info of gajim@conference.gajim.org" caption-position="none">}}
Over the past few months, more and more dialogs have been migrated to this new approach. From within the chat window users are now able to:
* change their nickname
* change the group chat's subject
* kick/ban users
* enter passwords/captchas
* destroy the group chat
* rename the group chat (locally)
Gajim is now capable of displaying the group chat's name (the one the creator chose) ([#5406](https://dev.gajim.org/gajim/gajim/issues/5406)) within the contact list, tabs, and the banner area above the chat. If the user chooses a different name (which is now possible from the contact list as well as from within the group chat ([#9783](https://dev.gajim.org/gajim/gajim/issues/9783)), it will be used instead.
### Drag and drop, themes, server infos
During the past months there have been many drag and drop improvements for Gajim. It is now possible to invite a contact to a group chat by drag and drop. Dropping a file on the contact list now starts a file transfer to the contact the file was dropped on.
Many users were complaining about the Theme window's usability. We tried to simplify the workflow by automating the manual steps we previously required users to do ([#9886](https://dev.gajim.org/gajim/gajim/issues/9886)). If a user wants to change a theme setting (e.g. font size) it's now a simple click on 'Add Setting' which will a) add a new theme, b) switch to that newly added theme, and c) add the desired setting. This also enables users to see a live preview of their intended changes. Removing a currently active theme will now automatically fall back to the default theme without asking to switch first.
In Gajim 1.0, a Server Info dialog has been introduced. This dialog helps users to assess the capabilities of the service they are using by listing features supported by the server. In addition to the list of features, we now also show connection infos (e.g. transport security, chosen cipher, used proxy) ([#6096](https://dev.gajim.org/gajim/gajim/issues/6096)). The server's certificate can also be viewed from the Server Info dialog. Some servers offer contact addresses for support, feedback, or admin questions. These contact addresses are now displayed as well ([#9848](https://dev.gajim.org/gajim/gajim/issues/9848)).
In an effort to unify the dialogs Gajim is showing when it needs the user's confirmation or input, the old dialog system gets replaced step by step. Many old dialogs have been removed or replaced already, resulting in a more consistent appearance.
Gajim's code for internally setting shortcuts has been improved. This brings us one step closer to offer customizable shortcuts in the future. Also, we added Ctrl+E to open the Plugins window and Ctrl+Shift+X to view the XML console. Many of the shortcuts available in Gajim are listed in About > Shortcuts.
Gajim's Flatpak version also had some updates this month, including a bug fix for opening links and an update for plugins and their dependencies. Both automatic status messages and screensaver detection have been reworked for the Flatpak version.
In order to be able to fix bugs it is often necessary for developers to gather debug logs. It is possible to display such a debug log when Gajim is being started via terminal (using the right parameters). Because this is a bit technical and because we would like to enable every user to gather these logs, Gajim has a preference setting (Preferences > Advanced) to store debug logs in a file. To further simplify these steps we added a button to quickly navigate to the folder containing stored debug logs.
In this month a lot of code has been cleaned up. This includes the removal of unused code, as well as fixing many [linting](https://en.wikipedia.org/wiki/Lint_(software)) errors, making the code more comprehensible.
### What else happened
* Removed ReStructured text (rst) to XHTML conversion feature
* Removed setting for custom 'open with' applications (system's default we be used instead)
* Removed remains of SI file transfer code (this method is deprecated)
* Removed the ability to choose a resource when opening a chat using the context menu ([#8471](https://dev.gajim.org/gajim/gajim/issues/8471))
* Gajim's logs database (where chat history is saved among others) received some performance improvements and will now store both message and XHTML data
* Opening files from within Gajim has been reworked
* A certificate's issue/expiry date is now displayed in the user's locale
* Gajim's XML console now features a search bar (Ctrl+F to search, F3 to search next)
* Bug fix for private messages wrongly appearing in a group chat's chat window ([#9488](https://dev.gajim.org/gajim/gajim/issues/9488))
* Gajim now uses bare JIDs when sending messages to a group of contacts ([#9738](https://dev.gajim.org/gajim/gajim/issues/9738))
* When blocking a group of contacts, the correct dialog will be shown ([#7524](https://dev.gajim.org/gajim/gajim/issues/7524))
* Fixes for import warnings ([#9874](https://dev.gajim.org/gajim/gajim/issues/9874))
### Plugin updates
This month brought many bug fixes for Gajim's OMEMO plugin. Receiving a message which was not encrypted for the user's device will now trigger an error message ([#452](https://dev.gajim.org/gajim/gajim-plugins/issues/452)). A bug where an archive (MAM) message could not be mapped to a JID ([#457](https://dev.gajim.org/gajim/gajim-plugins/issues/457)) and an error in the plugin's configuration dialog (happening if no account is available) have been fixed. Moreover, Gajim will now detect all group chat configuration changes and will be more consistent about OMEMO capable group chats ([#445](https://dev.gajim.org/gajim/gajim-plugins/issues/445)). In addition to viewing an OMEMO encrypted file, it is now also possible to open the folder containing the file ([#430](https://dev.gajim.org/gajim/gajim-plugins/issues/430), [#425](https://dev.gajim.org/gajim/gajim-plugins/issues/425)).
## Changes in python-nbxmpp
While working on Gajim's account removal dialog, python-nbxmpp received support for In-Band Registration ([XEP-0077](https://xmpp.org/extensions/xep-0077.html)) and further bug fixes for stanza handling.
One of the benefits of using XMPP is freedom of choice. Users are free to choose which server they would like to use (or even host one by themselves), and they can choose from [many available clients](https://xmpp.org/software/clients.html). Sometimes this freedom of choice also comes with clients not behaving after protocol specifications. Gajim has to deal with that, of course. One of these cases where a client was sending malformed stanzas has been fixed recently ([#89](https://dev.gajim.org/gajim/python-nbxmpp/issues/89)).
---
title: Development News December 2019
subtitle: Gajim development news
date: 2020-01-07
author: wurstsalat
bigimg: [{src: "/img/news/development-news.jpg"}]
tags: ['Development']
---
**This is the third post of a news series about Gajim's development. In these posts I (wurstsalat) will try to summarize a month of development around Gajim. Sometimes these posts will also cover python-nbxmpp and XMPP in general. December's development brought improvements to HTTP file transfers, contact list tooltips, and more. Feel free to join [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) to discuss with us.**
<!--more-->
## Changes in Gajim
The replacement of Gajim's old message dialog system (see [November's development news](https://gajim.org/post/2019-11-25-development-news-november/)) has been completed this month. We are still in the process of removing dialogs where they are not necessary, but this is already a good step forward. To give an example for an unnecessary message dialog: when a contact confirms your subscription request, a message dialog with a single OK button would appear to inform you about that event. Instead, Gajim will now issue a simple notification (which is less intruding).
For a long time now, you could hover a group chat in Gajim's contact list and it would display a tooltip with basic information about that chat. In the past that tooltip used to display the group chat's topic as well (and it did not shorten the text). We decided to replace the topic with the group chat's description, if given. The topic can still be viewed by opening the group chat's information page. Additionally, limits for text length have been set for every information, resulting in a compact tooltip.
For some actions, Gajim needs an assistant-like process to guide users through multiple steps of input. Gajim now features an extensible assistant for this purpose. Two workflows have already been migrated to the new assistant: password change and account removal. When removing an account for example, users may choose if they want to remove it locally or entirely, meaning both locally and from the server. This is a dynamic process where steps may go wrong (e.g. server does not offer account removal, connection lost, ...) or additional user input would be required. Using the new assistant enables Gajim to show options, progress, errors and so on within a single window without using additional dialogs. The next action to be migrated will be the account creation wizard, a crucial part of [user onboarding](https://wiki.xmpp.org/web/Easy_Onboarding).
For file transfers via HTTP File Upload ([XEP-0363](https://xmpp.org/extensions/xep-0363.html)), as well as other HTTP downloads and uploads, Gajim has been using python threads for a long time. This hasn't proven to work in every case, sometimes resulting in GUI freezes. In order to make HTTP transfers work asynchronously, Gajim now makes use of the 'libsoup' library. While working on this, the code around file transfers has been simplified as well. In the future this should also enable users to set up proxies for HTTP connections (e.g. URL image preview, plugin installer).
### What else happened
* Fixed bugs in message input where long messages with no line breaks were not fully visible ([#8980](https://dev.gajim.org/gajim/gajim/issues/8980), [#9574](https://dev.gajim.org/gajim/gajim/issues/9574))
* Fixed bug in serverless messaging ([#9926](https://dev.gajim.org/gajim/gajim/issues/9926))
* 'Start Chat' and 'Create Group Chat' menu items are now disabled when the user is not connected
* Closing a chat with unread messages will now show a dynamic dialog message, taking history settings into account
* Improved Audio/Video source selection in preferences
In an ongoing effort to improve code quality by tightening pylint rules, many linting warnings and errors have been fixed.
### Plugin updates
Gajim's URL image preview plugin has been adapted to HTTP file transfer changes. This also included a complete rework of the plugin, which also fixed [#456](https://dev.gajim.org/gajim/gajim-plugins/issues/456) and [#320](https://dev.gajim.org/gajim/gajim-plugins/issues/320). In the past, the plugin was able to display geo:-URIs (links to locations) on a map using either Google Maps or OpenStreetMap via Map Quest. Today, both services are rate-limited or require a payed membership, rendering the plugin's use of these services useless. When receiving a geo:-URI, the preview plugin will now display a clickable map icon which opens the web browser. Most browsers do support these links by opening a map service using the supplied coordinates.
Gajim's OMEMO plugin has been adapted to the HTTP file transfer changes as well, which also fixed [#467](https://dev.gajim.org/gajim/gajim-plugins/issues/467) and [#419](https://dev.gajim.org/gajim/gajim-plugins/issues/419).
Furthermore, two plugins received a complete rework: Clickable Nicknames ([#454](https://dev.gajim.org/gajim/gajim-plugins/issues/454)) and Message Box Size.
## Changes in python-nbxmpp
Support for HTTP File Upload (XEP-0363) has been added to python-nbxmpp.
---
title: Development News January 2020
subtitle: Gajim development news
date: 2020-01-27
author: wurstsalat
bigimg: [{src: "/img/news/development-news.jpg"}]
tags: ['Development']
---
**Welcome to the first Gajim development news post of 2020. January's development brought some improvements to Gajim's plugin installer, better timestamps in conversations, and more. Feel free to join [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) to discuss with us.**
<!--more-->
## Changes in Gajim
On Linux, Gajim is able to gather infos about the music currently playing on your device. These infos can be published for contacts using the Personal Eventing Protocol (PEP, [XEP-0163](https://xmpp.org/extensions/xep-0163.html)). Gajim's MusicTrackListener (the one that gathers infos) received an update and some parsing fixes.
The timestamps shown in conversations have been changed to a new default formatting, where date and time values are always displayed. This also 'fixes' a bug where fuzzy time descriptions like 'yesterday' or '2 days ago' were not calculated correctly (see [#9272](https://dev.gajim.org/gajim/gajim/issues/9272)).
As mentioned in [November's post](https://gajim.org/post/2019-11-25-development-news-november/), a group chat's features can be shown in the group chat info page. These features are now sorted consistently for better comparability.
### Plugin updates
Gajim features a window for plugin management (also reachable via Ctrl+E), where you can activate, deactivate, uninstall, and install plugins (via ZIP). In order to install plugins from the catalog of available plugins, the 'Plugin Installer' plugin is needed. This plugin is also able to check for plugin updates when Gajim is started. This month, the Plugin Installer has been reworked. It now makes use of 'libsoup' for asynchronous http connections, has a new config dialog, and received a lot of refactoring.
With the 'Length Notifier' plugin, Gajim is able to notify users when they exceed a specified message length while typing. This is useful when interacting with an SMS gateway or short message services like [Mastodon](https://joinmastodon.org/) or Twitter for example. The latest update enables the plugin to show the character count right next to the message input.
Similar to the music info publishing mentioned earlier, there is another way of letting your contacts know about which music you are currently listening to. The 'Now Listen' plugin (which got refactored this month) enables users to simply paste the track's artist and title (and more) to the message input by pressing Alt+N.
## Changes in python-nbxmpp
The code which is responsible for managing connections is in the process of a major rework. This should improve the connection speed when running Gajim on Windows for example. The rework is also a necessary step for connection handling in Gajim's new Account Creation Assistant.
---
title: Development News February 2020
subtitle: Gajim development news
date: 2020-02-26
author: wurstsalat
bigimg: [{src: "/img/news/development-news.jpg"}]
tags: ['Development']
---
**Welcome to February's development news post. This month's development brought a new look and flow to group chat invitations, some color improvements, and many bug fixes. Gajim Nightly is now also available as a Flatpak app.**
<!--more-->
## Changes in Gajim
As mentioned in [November's post](https://gajim.org/post/2019-11-25-development-news-november/), the next version of Gajim will feature a different way of presenting group chat related actions to the user. The group chat invite mechanism has been completely reworked in order to provide a simpler group chat handling. We also added a search bar to make it easier to find contacts you would like to invite. Of course it is also possible to directly enter an XMPP address to invite contacts who are not in your contact list. Next step will be a rework of the transition from a 1:1 chat to a group chat when inviting contacts to a single chat.
{{< figure src="/img/news/group-chat-invite.png" width="800px" caption="Gajim's new group chat invite page" caption-position="none">}}
Gajim *Nightly* is now available as a Flatpak app as well. The new Flatpak app is meant for those struggling with dependencies or for those who simply want a straightforward way of installing Gajim Nightly on their system. Be advised that nightlies can be unstable and backwards migration of your profile data may not always go well. Instructions for manually installing Gajim's Flatpak app can be found in the [Readme](https://dev.gajim.org/gajim/gajim/tree/master/flatpak), and (conveniently) there are two new Flatpak install buttons in the [Download section](https://gajim.org/download/) as well. If you like, you can also [migrate your profile data](https://dev.gajim.org/gajim/gajim/-/wikis/help/flathub) to the Flatpak app.
To be able to assess a client's capabilities and features (and those of servers as well), XMPP Compliance Suites are published every year. This year's XMPP Compliance Suite is described in [XEP-0423](https://xmpp.org/extensions/xep-0423.html), which defines multiple application categories, such as Core, Web, IM, and Mobile. Both Core and IM categories are relevant for Gajim. In the **Core Compliance Suite** Gajim qualifies for Advanced Client. In order to be qualified for Advanced Client in the **IM Compliance Suite**, Gajim is [missing](https://dev.gajim.org/gajim/gajim/issues/9971) just one group chat related feature.
### What else happened
* 'Invisible' status has been removed (this has [multiple reasons](https://dev.gajim.org/gajim/gajim/commit/46a00a6ae6ebbf12a366fc8f66b87898238e1b24))
* Global menu (appmenu) has been moved back to the menubar (GNOME)
* Resource locking has been removed ([#8971](https://dev.gajim.org/gajim/gajim/issues/8971))
* Performance improvements for the Start Chat dialog
* Theme colors: improved both dark and light theme contrast and unified various colors
* Themes window: default style values are shown when adding a new setting
* Gajim now uses GSound to play sounds on Linux
* Group chats in the contact list now show the chat's description instead of its topic
* Bug fix for DBus-related errors ([#9978](https://dev.gajim.org/gajim/gajim/issues/9978), [#9868](https://dev.gajim.org/gajim/gajim/issues/9868))
Furthermore, a lot of code refactoring and preparations have been done for the upcoming network connection rework.
### Plugin updates
This month brought fixes for Gajim's Flatpak plugins and some OMEMO compatibility improvements.
## Changes in python-nbxmpp
As mentioned in previous posts, the code which is responsible for managing connections is in the process of a major rework. This should resolve many network related issues. As soon as the first bunch of changes is added to python-nbxmpp, the process of fixing things starts. You can [track the progress](https://dev.gajim.org/gajim/gajim/issues/9987) if you're interested.
As always, feel free to join [gajim@conference.gajim.org](xmpp:gajim@conference.gajim.org?join) to discuss with us.
---
title: Development News March 2020
subtitle: Gajim development news
date: 2020-03-30
author: wurstsalat
bigimg: [{src: "/img/news/development-news.jpg"}]
tags: ['Development']
---
**This is the third development news post this year, and it’s covering big changes. Starting with this month, the new connection code is available in Gajim’s master branch. It allows better connection handling in difficult network situations and significantly improves connection speed. Building on top of these changes, we'd like to introduce Gajim’s completely rewritten account creation wizard. This month also brings some fixes for voice/video calls, which are the first steps to make this feature available again in the future.**
<!--more-->
## Changes in Gajim
The first thing to do after installing Gajim is to setup an account. Gajim’s account creation wizard hasn’t been touched in years, and it showed. As this is one of the very first steps a new user takes, it has to be as easy as possible. Initial work on the new account creation wizard began in June 2019. But before this project would be an actual improvement, the underlying network code had to be rewritten. A major part of the work has been completed this month, resulting in a completely new account creation wizard. It makes use of the new assistant which is also used for account removal and password changes.
{{< gallery caption-position="none">}}
{{< figure link="/img/news/account-creation-1.png" caption="Gajim's new account creation">}}
{{< figure link="/img/news/account-creation-2.png" caption="Gajim's new account creation">}}
{{< figure link="/img/news/account-creation-3.png" caption="Gajim's new account creation">}}
{{< /gallery >}}
Server suggestions ([#3833](https://dev.gajim.org/gajim/gajim/-/issues/3833)), links to the [conversations.im compliance tester](https://compliance.conversations.im/), and server auto completion should help in the process of registering a new account. Input errors will be shown directly instead of using disrupting error dialogs. Last but not least, the dataform (input for username, password, captcha, etc.) presented while registering on a server has been significantly improved (e.g. [#7589](https://dev.gajim.org/gajim/gajim/-/issues/7589)).
Voice/video chats have not been working in the past couple of Gajim releases. Now, first steps were made to fix voice/video chats, but there is a lot of work to do until it’s usable again. Currently, it is far from fully working or being user friendly, but it’s also a quite complex feature. The latest fixes also aim to make voice/video chats work if [Wayland](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)) is used. To help with missing dependencies, the preferences window will now show an info bar on the top ([#9839](https://dev.gajim.org/gajim/gajim/-/issues/9839)).
To be able to see if dependencies for optional features are missing, Gajim has a Features window (Help > Features). This window will now show if Gajim is able to play notification sounds and whether Gajim could determine the device’s location (if the user wants to publish it).
It sometimes happens that a group chat becomes unavailable for various reasons (e.g. permanently closed, discontinued service). In this case, Gajim will now show a button to remove that faulty group chat from your bookmarks ([#9970](https://dev.gajim.org/gajim/gajim/-/issues/9970)).