Five months have passed since the release of Gajim 1.2.2. Many new features have been developed during this time, including a complete redesign of both Gajim’s Preferences window and configuration backend, an all new Profile window, support for Chat Markers, a new user interface for voice/video calls, and much more.
A huge amount of code has been cleaned up around Gajim’s configuration backend. This was necessary in order to move from a configuration based on text files to a new settings backend powered by SQLite. Gajim is now able to store settings efficiently, and some quirks around default values have been solved. After all these changes under the hood, it was time to redesign the Preferences window. The redesign enables us to display settings in a tidy and clear fashion, which should make it easier for you to handle all of Gajim’s configuration possibilities.
Gajim’s Notification settings for event handling have been split up. You can now decide if you want notifications to be shown in general, and if you want new messages to be opened directly (without a notification icon in the contact list). All settings around sending Chat States (e.g. ‘Composing…’) have been moved from the Preferences window to the Accounts window, completing the migration of account-related settings. Gajim uses a ‘Sync Threshold’ setting to decide how many messages should be synchronized when joining a chat. If you set a custom Sync Threshold previously, please make sure to check the setting after upgrading Gajim, since it could not be migrated.
A long anticipated feature has finally found its way to Gajim: Chat Markers (XEP-0333). You already know the check mark which Gajim shows as soon as a message has been delivered (XEP-0184). Now, as soon as your contact reads your message, you’ll notice a double check mark replacing the single check mark, marking the message as ‘read’. This is of course on the condition that your contact’s chat client actually sends Chat Markers. Gajim lets you choose whether you want to send these markers via Account Settings > Privacy > Send Read Markers. As soon as you read a message on another device (e.g. your phone), Gajim will remove the now obsolete notification. By default, this works for 1:1 chats and private group chats (tested with Conversations and Dino).
Gajim’s Profile window received a complete rework. This includes a new backend using up to date standards (XEP-0292 vCard4 Over XMPP), as well as a completely rewritten dialog for displaying and editing vCards.
A big advantage over the old Profile window is that you can add (almost all) elements more than once. For example, you can add an email address for your workplace, and additionally a private one. Or multiple organizations, or even more PGP keys, … All these elements are added dynamically, there is no static user interface here.
Selecting your own profile picture is much more fun if you can crop it directly using integrated tools. This is now possible using the new picture selector, which enables you to select the detail you want to show, using a fixed aspect ratio.
Group Chat Invitations
Receiving a group chat invitation can sometimes be ambiguous. ‘Do I really want to join this chat, or should I decline the invitation?’ In order for you to make an informed decision, Gajim now shows some information about the chat (group chat’s picture, name, and description) before joining. Furthermore, many people want to join public group chats using a different nickname from the one they use for private group chats. Gajim now offers to choose a nickname directly before joining.
Audio & Video
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 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).
- Gajim’s URL Image Preview is now able to preview audio files
- The Syntax Highlighter plugin now features a ‘Paste as Code’/‘Paste as Code Block’ entry for the chat input
- It is now possible to install the ‘Ayatana Appindicator integration’ plugin via Flatpak
- Setting for automatic history cleanup
- Chat-specific ‘Group Chat Settings’ page
- ‘Mark as Read’ button for message notifications
- ‘Send Message’ button in chat windows
- Support for vCard4 (XEP-0292)
- Windows: support for XMPP link handling
- Added a preview when pasting images from the clipboard
- Gajim will use direct messages in non-anonymous group chats instead of PMs (this is configurable)
- Message styling: removed
_underline_style and added
~strikethrough~style, making Gajim standard compliant
- Removed notification for contact sign in/out
- Removed ‘Auto copy’ workaround for Ctrl+C usage in the chat window
- If Gajim fails to join a group chat, it now offers a Retry button (and also ‘Forget Group Chat’)
- Changed default: Pressing the Escape key will not close chat windows
- Linux: Emoji button now opens GTK’s native Emoji chooser (with categories and recently used emojis)
- Improved A/V codec selection
- Fixed some regressions with non-english keyboard layouts
- Fixed command for opening the Start Chat window (
- A/V menu entries are now updated (enabled/disabled) correctly when receiving the contact’s capabilities
- Fixed GSSAPI support
- Some shortcuts now use Primary (Ctrl/Cmd) instead of Alt (which is often used by Window Management): Change Subject (
<Primary><Shift>S), Emoji Chooser (
- Fixed a bug where dropping selected text on a chat window would fail
- Fixed ‘Show status changes’ setting being ignored for group chats
- Fixed a bug where removing a plugin would fail
- And much more: Have a look at the full changelog
- On Windows, we had to disable translations temporarily. This is due to a bug in a package Gajim relies on. Hopefully we’ll be able to ship the next version with translations again!
- Zeroconf (serverless messaging) has not been re-implemented yet
- Client certificate setup is not possible yet