-
DinoX v2.3.3
StableAll checks were successfulBuild / Validate Manual Selection (push) Has been skippedBuild / Release Preflight (push) Successful in 9m2sBuild / Mirror AppImage Runtimes (push) Has been skippedBuild / Core Build (push) Successful in 55m39sBuild / Build AppImage (push) Successful in 1h44m40sBuild / Build Flatpak (push) Successful in 1h1m5sreleased this
2026-10-29 20:36:21 +01:00 | 12 commits to master since this releaseDinoX v2.3.3
Modern XMPP client with extended features.
Choose your Linux download
- Ubuntu 24.04 / Linux Mint 22.x (64-bit Intel/AMD): use the
.deb, AppImage or Flatpak. - **Debian 13 (Trixie), use AppImage or Flatpak. The Ubuntu-built
.debrequires different system libraries.
What's New
Highlights
- New optional appearance: DinoX Design gives the app a green theme, including settings, confirmation and error dialogs, password prompts and call windows. The classic appearance remains available. The mint-green DinoX icon now appears throughout the app and in the system tray.
- 28 complete translations plus English: The translations now cover settings, dialogs and the OMEMO and OpenPGP plugins. Previously missing texts and a fault that loaded outdated translations have been corrected. DinoX uses English when a language is not supported.
- Chat history fixes: “Load messages now” can retrieve available messages again after the local history has been deleted, including in private groups. Previously read and locally deleted OMEMO messages cannot be recovered from the server archive alone; DinoX now explains this once per reload.
- Editable group badges: Group badges, called “Hats” in DinoX, can now be renamed and recolored with a color picker. Existing assignments are preserved, and saving or closing the editor returns to the badge overview.
- AppImage and Windows builds: The AppImage includes a missing component needed for secure connections. Windows builds now save the complete console output to a log file, prevent builds with Administrator rights and have a complete release guide in German and English.
Appearance and group management
- DinoX Design is available under Preferences → General → Appearance. Classic and DinoX Design both work with the System, Light and Dark choices and custom accent colors. Existing profiles keep the classic appearance. High-contrast mode retains the system's accessibility colors.
- The application icon now uses the same mint-green DinoX symbol as the website, including Linux desktop packages, the Windows executable and tray icons. All icon sizes come from the same vector image.
- Conversation menus now have separators between related actions, both in the chat list and in the menu at the top of a conversation.
- Group badges (Hats) can be edited from the list of available badges or from an existing assignment. The color picker shows a live preview. Renaming a badge preserves its custom color, and changing its name or color preserves its assignments. DinoX confirms changes after the server accepts them and updates the overview without closing it. Badge colors support 360 hues with readable text, and the new controls are translated.
- Destroying a room now clears its local joined state, bookmark and record of previously loaded server history after server confirmation. This also works through server administration for rooms the account has not joined, and with servers that omit a normally expected presence marker. Saved messages remain on the device, and a delayed reply cannot undo a newer join. Both confirmation dialogs now explain that destroying a room does not erase messages on participants' devices; removal of the server archive depends on the server's settings.
- Removing a contact and its history now waits for the server to confirm the contact's removal. A rejected request or an outdated reply no longer deletes local messages. The action affects only the selected account and conversation, even when a group, direct chat or private group message uses the same address.
Message history
- Reloading after local deletion works again in direct chats and groups, including after leaving and rejoining a group. DinoX requests the chosen history period from the server. For groups, only the selected room's record of previously loaded history is reset. Automatic synchronization still respects local deletion. Deleting history while a reload is running, message expiry and emergency deletion still prevent those messages from being saved again. The wording now distinguishes local deletion from a request to retract your own messages.
- Private group archives are now assigned to the correct group conversation, even if an old direct-chat entry exists for the same room address. The requested history period and the final reload result therefore belong to the group. If the server reports that no archive is available, DinoX now shows that result, including when the reply arrives late.
- Old OMEMO messages that this device already decrypted cannot be restored from the server archive alone after local deletion. During a manual reload, DinoX reports these unavailable messages in one summary instead of filling the chat with a separate error for each one. Unencrypted messages can be restored while the server still holds them. The completion message now describes the result without promising that every message was recovered.
- New messages and offline delivery continue to use the existing receive and decryption paths for OMEMO, legacy OpenPGP (XEP-0027), modern OpenPGP (XEP-0373/0374) and unencrypted messages. Errors for newly received messages remain visible individually, including after a later manual reload. Existing key checks, duplicate-message protection, account separation and cancellation handling remain in place.
- Optional archive diagnostics record query metadata, local deletion limits and processing steps when explicitly enabled. They are off by default and exclude message contents, credentials and cryptographic session records. Enabling them does not change which messages are recovered or saved.
Languages
- The interface is available in English and 28 complete translations: Arabic (Modern Standard), Bulgarian, Catalan, Chinese (Simplified and Traditional), Czech, Danish, Dutch, Estonian, Finnish, French, German, Hindi, Hungarian, Italian, Latvian, Lithuanian, Norwegian Bokmål, Polish, Portuguese (Portugal and Brazil), Romanian, Russian, Slovak, Spanish, Swedish, Turkish and Ukrainian.
- The translations cover the main application and both encryption plugins, including accounts, DNSSEC/DANE and certificate warnings, account deletion, password prompts, archive recovery, calls, feeds, group badges, server administration, Botmother, MQTT and Tor. Desktop descriptions, software-center descriptions, screenshot captions and release summaries have also been completed. Regional Portuguese terminology and Traditional Chinese terminology were reviewed separately.
- Earlier translation errors have been corrected, including duplicated paragraphs, untranslated warnings, text left in another language and misleading terms for sign-in, contacts, commands, model names, delivery and read status, group roles and permissions, encryption, device trust and key fingerprints. Corrections also cover typing notices, location actions, stickers and backup warnings. German MQTT menu texts were reviewed, and existing German wording was retained as a reference.
- Missing settings and dialog texts are now included. The translation tools previously missed 30 messages, including account setup, proxy fields, search, password entry and plural counts. DinoX now also uses the existing translations for the account password prompt, the automatic language choice and MQTT alert priorities and operators. Stored MQTT rule values are unchanged.
- Bundled translations now load correctly even without a separate English translation file. Local builds previously could fall back silently to older installed translations. Main and plugin translations are now found in the build, portable package or explicitly selected translation directory.
- Language selection offers complete translations only. An unsupported saved or system language falls back to English. Incomplete translation files remain in the source tree for future work. The package checks compare shipped translations with the current source text, including every plural form and formatting placeholder. Hindi plural rules are consistent across all three translation files; Arabic uses its six plural forms.
- Arabic layout now follows the selected app language, even when the system has no Arabic GTK translation installed. Text fields with an explicitly assigned direction retain it. The website also has an Arabic version with right-to-left navigation and page layout.
- Translation and package checks have been extended. Latvian now has the previously missing OMEMO translation, and Slovak and Bulgarian have complete translations and their own language choices. The Flatpak checks include these additions across all three translation domains. Extraction now covers the missing UI and Tor texts, plural messages and UTF-8 plugin strings. Tests check the UI text markers and translation lookup; audio/video tests use translated labels, and the tab-scrolling test no longer depends on the length of a translated title.
Packages and builds
- AppImage secure connections no longer depend on the host having a compatible GIO TLS component. The package now contains the GnuTLS module, its required libraries and its module cache, and the launcher points to them. This fixes the error “TLS support is not available” reported in issue #34. Package checks verify that these files and settings are present.
- Windows build logs now contain the complete normal and error output, including cleanup and test failures. Each build writes a separate log outside the source folder and still returns a failing exit status if the build fails. The script refuses to run with Administrator rights before it starts cleaning, preventing files that a later normal-user build cannot remove. The German and English instructions explain how to recover from earlier Administrator builds.
- The Windows release guide now describes the whole sequence in one place: preparing the version, building the chosen source commit, reviewing logs and manual tests, creating and verifying the ZIP and checksum, tagging the tested source and uploading the package. Package output stays outside the source folder and is separated by version and source commit.
- Temporary Forgejo build artifacts for DEB, AppImage and Flatpak are retained for seven days. This limit does not apply to published release downloads.
Installation
Ubuntu 24.04 / Linux Mint 22 (.deb)
sha256sum -c dinox_2.3.3_amd64.deb.sha256 sudo apt update sudo apt install ./dinox_2.3.3_amd64.debRun in the download folder. APT installs the required runtime dependencies from your configured Ubuntu/Mint repositories.
This package is not a Debian Trixie binary; use AppImage or Flatpak there. Do not force installation or add Ubuntu repositories to Debian.AppImage
sha256sum -c DinoX-2.3.3-x86_64.AppImage.sha256 chmod +x DinoX-2.3.3-x86_64.AppImage ./DinoX-2.3.3-x86_64.AppImageThe matching
.AppImage.sources.tar.xzfile is a separate compliance download.
It is not required to install or run DinoX.Flatpak
sha256sum -c dinox-2.3.3-x86_64.flatpak.sha256 # Required runtimes are resolved automatically from the bundle metadata. flatpak install --user ./dinox-2.3.3-x86_64.flatpak flatpak run im.dinox.dinoxBuild from Source
( set -e sha256sum -c dinox-2.3.3.tar.gz.sha256 tar xf dinox-2.3.3.tar.gz cd dinox-2.3.3 # Install the normal distribution development packages from docs/internal/BUILD.md. test "$(uname -m)" = x86_64 bash scripts/prepare-linux-source-build-deps.sh export DINOX_LIBWEBRTC_RUNTIME_ROOT=$PWD/.vendor-deps/libwebrtc-m152-linux-x86_64-runtime export DINOX_LOCAL_LIBOMEMO_C_ROOT=$PWD/.vendor-deps/linux-source-deps export PKG_CONFIG_PATH=$DINOX_LOCAL_LIBOMEMO_C_ROOT/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} ./scripts/check-libwebrtc-linux-runtime.sh "$DINOX_LIBWEBRTC_RUNTIME_ROOT" meson setup --wipe --buildtype=debugoptimized --prefix=/usr build -Dlocal-libomemo-c-root="$DINOX_LOCAL_LIBOMEMO_C_ROOT" -Dplugin-mqtt=enabled -Dplugin-rtp=disabled -Dplugin-google-webrtc=enabled -Dgoogle-libwebrtc-wrapper=enabled -Dgoogle-libwebrtc-runtime-root="$DINOX_LIBWEBRTC_RUNTIME_ROOT" -Dgoogle-libwebrtc-test-oracle=false -Dgoogle-libwebrtc-tests=false -Dlocation-sharing=enabled -Dplugin-http-files=enabled -Dplugin-ice=enabled -Dplugin-omemo=enabled -Dplugin-openpgp=enabled -Dplugin-notification-sound=enabled ./scripts/build.sh ./build/main/dinox --version # For Tor/obfs4/WebTunnel, first follow the optional private Tor runtime section in BUILD.md. DINOX_TOR_DATA_DIR="$PWD/.vendor-deps/linux-tor-runtime/share/tor" ./build/main/dinox )Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
- Ubuntu 24.04 / Linux Mint 22.x (64-bit Intel/AMD): use the