Development News October 2020

Gajim development news

Development News October 2020

Gajim development news

This October brings better message styling, XMPP link handling for Windows, and first improvements to get Voice/Video calls working again.

Changes in Gajim

XMPP addresses are not just contacts or group chats. They can also contain query components to instruct clients to do things with them. For example xmpp:chat@example.tld?join would make the client try to join a group chat, and xmpp:contact@example.tld?message;body=Hello would instruct the client to open a chat with contact@example.tld and pre-fill the message input with ‘Hello’. For this to work, it needs to be supported by the client, of course. Some queries from XEP-0147 (XMPP URI Scheme Query Components) are already supported by Gajim. This month, we added XMPP-URI query support for Gajim on Windows. While installing, you can now decide if you want Gajim to open XMPP links when clicking on them in your web browser.

This month brings some changes to Gajim’s implementation of XEP-0393 (Message Styling). In consequence of these changes, the _underline_ style has been removed, and a new ~strikethrough~ style has been added, making Gajim standard compliant and thus compatible with other clients. Note that not all styles defined by this standard are supported yet.

Gajim now features a ‘Mark as Read’ button for notifications. If you receive messages you don’t necessarily need to answer, you can just dismiss them without opening a chat window.

Last but not least, there have been some improvements to Voice/Video calling. Gajim has had support for Voice/Video calls for quite some time, but the code has also been broken for a while now, because it is not getting actively maintained. We took some first steps (friendlier user interface, basic audio/video transmission), but these are highly experimental. Also, this feature is based on older standards, which makes it incompatible with Conversations for the time being (for example missing support for XEP-0320).

What else happened

  • You can now choose whether you want to have a ‘Send Message’ button in the chat window via Gajim > Preferences
  • A Copy button has been added to the group chat info page, which will insert an invite link to the group chat into your clipboard
  • Some regressions with non-english keyboard layouts have been fixed
  • Gajim’s command for opening the Start Chat window (gajim --start-chat) has been fixed
  • Drag and drop for files and contacts in group chats has been fixed

Plugin updates

A bug has been fixed which prevented Gajim’s URL Image Preview plugin from instantly showing previews for voice messages. Also, many plugins have been adapted to changes in python-nbxmpp.

Changes in python-nbxmpp

In an ongoing effort, python-nbxmpp’s XMPP request handling is being converted to Tasks (using Python Generators). This simplifies the flow of many operations and makes code easier to read and understand. A lot of work went into adapting Gajim to these changes while refactoring large parts of the code base.

GSSAPI support in python-nbxmpp has been fixed, which allows Gajim to use various authentication providers for user account credentials.

In preparation of Gajim’s VCard/User Profile rework, support for VCard4 (XEP-0292) has been added. Furthermore, support for Nested Roster Groups (XEP-0083) has been added.

As always, feel free to join to discuss with us.