Nheko Versions Save

Desktop client for Matrix using Qt and C++20.

v0.11.3

1 year ago

Bugfix

  • Fix redundant null byte inserted with the emoji completer

v0.11.2

1 year ago

Highlights

  • Improved Markdown input ๐Ÿ—’๏ธ
    • You can now enter strike-through and spoilers using ~~ and || respectively.
    • Single line-breaks now also create a line-break in the formatted message.
    • Code tags now preserve whitespace.
  • User search in the invite dialog ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ (Malte E)
    • Can search either locally or consult the user directory on your server.

Features

  • Allow disabling animations before login.
  • Set the window role to "imageoverlay" on X11. (Thulinma)

Improvements

  • The Nheko binary should now be slightly smaller.
  • You can now build Nheko against a system install of the blurhash and cpp-httplib libraries. (vitaly)
  • You can now enable scrollbars for the room and community lists in the settings. (balsof)
  • Add a generic video icon when there is no thumbnail. (LorenDB)
  • Pause video when switching rooms. (LorenDB)
  • Add a fancy delegate when encryption is enabled. (LorenDB)
  • Standardise command format messages. (phyto)
  • Automatically fetch keys for undecrypted messages after verification.
  • Remove all notifications on exit on Linux. (ShootingStarDragons)
  • Document markdown features and /cmark command in the man page. (tastytea)
  • Speedup the user completer.
  • Allow closing menus on Wayland by clicking the window. (ShootingStarDragons)
  • Merge Debian/Ubuntu Dependencies in the README. (enigma9o7)
  • Update zsh completions. (tastytea)
  • Skip empty requests for cross-signing keys when user only has one device. (Jason)
  • Hide image overlay when saving a file. (ShootingStarDragons)
  • Make it more obvious that the add reaction button is not an emoji.
  • Build only the gstreamer qml plugin in flatpak.
  • Update Ubuntu dependency list for building from source. (tastytea)

Translations

  • Estonian (Priit)
  • Ukrainian (NullPointerException)
  • Indonesian (Linerly)
  • Chinese (Poesty Li)
  • Esperanto (Tirifto)
  • French (MayeulC, CB, Glandos, Rick)
  • Dutch (Thulinma)
  • Italian (DynamoFox, Elia Tomasi, Joseph Curto, Quanterxotur)
  • Russian (Evgeny, SOT-TECH)
  • Finnish (Lurkki)

Bugfixes

  • You can now forward stickers again.
  • Edits shouldn't "jump" out of threads anymore.
  • Focus text input when quick switcher is closed. (LorenDB)
  • Fix rare freeze with an empty list in a completer.
  • Don't fail the plugins check on GStreamer 1.22 during a video call.
  • Allow nested ()/[] brackets in URLs. (mauke)
  • Make br tags work properly again.
  • Don't double free call devices. (Jason)
  • Work around multiple destructor calls on Clang. (Jason)
  • Html in sidebar.

Notes

You may want to build against the most recent mtxclient (0.9.2) for additional bugfixes. cpp-httplib and blurhash are still bundled by default and shipped with the source tarball. Explicitly disable the bundling for those packages to build against system versions.

These mtxclient updates are included in the release artifacts below.

v0.11.1

1 year ago

Hotfix Release

  • Fixes issue where CPU usage could be excessive even when nheko was idle or minimized. (See #1284)
  • Add failed state for queued (pending) messages

v0.11.0

1 year ago

[0.11.0] -- 2023-01-12

Highlights

  • Search in your timeline ๐Ÿ”
    • Works in encrypted rooms.
    • Search is entirely local.
    • It might be a bit slow on some systems, since it needs to paginate the room to search instead of relying on the server.
  • Pushrule support! ๐Ÿซธ๐Ÿซท
    • Notifications should now be faster and not rely on the server.
    • Notifications should work properly in encrypted rooms.
    • MSC3664 is supported for pushrules for reply (needs server support).
    • Mentions get highlighted in the timeline.
    • Decrypting notifications can be disabled for improved privacy.
  • Threads ๐Ÿงต
    • Threads are a simple way to structure large rooms.
    • Start a new thread from any event.
    • Focus on a specific thread by clicking on the colored thread button next to any event from this thread.
    • Replies automatically land inside the thread.

Features

  • Remember where you left off using the new unread indicator! ---
  • Navigate to space when selected in quick switcher or via link.
  • (Re-)Add an AppImage build. (Zhymabek Roman)
  • Render and send confetti! ๐ŸŽ‰ (LorenDB)
  • Focus text field on most key presses.
  • Show link to next room for tombstone events.
  • macOS: Only play notification sound when pushrule says so.
  • macOS: Builds for Apple Silicon.
  • macOS: Allow quick replies from notifications.
  • Completer for /commands.
  • Allow opening room settings from room list. (LorenDB)
  • Allow setting the status message via the dbus API. (LorenDB)
  • Allow swapping Enter and Shift-Enter. (LordMZTE)
  • Preliminary support for VoIP v1. (Rohit)
  • Allow applying permission changes in spaces recursively.
  • Allow modifying permissions of users not in the room.

Improvements

  • Prompt before deleting the database when the error could be resolved by the user.
  • Improve logging in particular for sync or registration errors.
  • Speedup quick switcher.
  • Prune image cache in the background.
  • Store all secrets encrypted in the database (apart from the pickle).
  • Speedup fetching olm sessions from the database.
  • Increase database resiliency at the cost of a lot of performance.
  • Rename spaces to communities.
  • Handle some rate limiting better in some cases.
  • More fine grained control over logging. (Forest)

Translations

  • Ukrainian (NullPointerException)
  • Indonesian (Linerly as always <3)
  • Portugese (Brazil) (Daimar, zerowhy, Terry)
  • Estonian (Priit also a valued regular)
  • Finnish (Lurkki, you might know them too!)
  • Chinese (Chen Shaoji, Poesty Li, ling, Eric)
  • Russian (SOT-TECH, Evgeny, Carmina16, Mihail Iosilevich, Artem, Herecore, Alexey Murz, glebasson)
  • Occidental (Carmina16)
  • Polish (Romanik)
  • Dutch (Thulinma)
  • French (GitEz-code, Guillaume Girol, lascapi)
  • Esperanto (Tirifto)

Bugfixes

  • Fix regional indicators. โ€Œ๐Ÿ‡ฆโ€Œ-โ€Œ๐Ÿ‡ฟโ€Œ
  • Pasting from Safari on macOS.
  • Potential crash when closing the room directory.
  • text selection in the raw message dialog.
  • Pagination after a timeline clear.
  • Entering newlines on Windows.
  • Work around crash in QQC2 in alias dialog.
  • Fix forwarding between encrypted rooms.
  • Blurry icons on HiDPI screens. (q234rty)
  • Fix CMark warning when configuring. (FINALLY!)
  • Blurry thumbnails. (again?!?)
  • Upload box thumbnail size. (foxb612)
  • Previews getting sorted above normal rooms in space view.
  • Excessive summary calls.
  • Usage type buttons for Sticker/Emoji packs.
  • Old server lookups overwriting new ones, possibly preventing any login.
  • Crash in member list.
  • Stripping fallbacks of plain text bodies.
  • Different greens.
  • Spoilers in replies.
  • Invites without state.

Notes

We bumped the required mtxclient version to 0.9.0 and the required coeurl version to 0.3.0. Supported Matrix API versions are now 1.1 to 1.5.

Nheko now also uses the particles qml module.

Downloads

We provide an installer for Windows as well as a "portable" variant, that won't be able to open matrix: links from your browser.

For Linux we provide flatpaks, however usually you should download them from Flathub. There is also an AppImage, but that does not support voice calls and in general will have some limitations. In any case, distro packages usually are the best option if they are up to date.

For macOS we now provide separate builds for apple silicon and intel macs. If you are packaging these, you might need to adapt your download paths!

v0.10.2

1 year ago

[0.10.2] -- 2022-09-22

Security release

  • Fixes potential secret poisoning by the homeserver
  • A crash when validation malicious html

Thanks to the matrix.org security team for disclosing this issue.

An update is highly recommended. Otherwise you can temporarily protect against this issue by not verifying your own devices and not pressing the request button in the setting.

v0.10.1

1 year ago

[0.10.1] -- 2022-09-07

Highlights

  • Community editing support ๐Ÿคผ
    • You can now create communities.
    • You can add and remove rooms to and from communities in various ways.
  • Prettier joins โœจ
    • You can now see the avatar, title, topic and member count of the room you are trying to join.
    • You can see if a room requires knocking or can be joined directly.
    • Requires MSC3266 support from your server.

Features

  • Add a discrete edit button to room profiles. (Hiers)
  • Don't escape the summary tags on sending.
  • Focus message area when pressing Escape. (Forest)
  • Barebones spoiler support on desktop platforms.
  • Enable encryption for DMs started from a profile by default.
  • Enable option to disable notification sounds and badges on macOS.
  • Speed up the completion trie. (nenomius)

Translations

  • Polish (Romanik, luff)
  • Dutch (Thulinma)
  • Finnish (Lurkki)
  • Estonian (Priit)
  • Indonesian (Linerly)

Bugfixes

  • Fix crash on empty private receipts sent by some servers.
  • Don't set a transient parent for child chat windows.
  • Validate roomid, state_key, event_id and userids sent by the server.
  • Fix empty widgets showing up in the widget list.
  • Clean up linter config. (Forest)
  • Use the right palette colors for reactions. (Forest)
  • Fix groups sidebar's grammar. (Forest)
  • Fix version position. (Zirnc)
  • Properly validate urls in image tags.
  • Case insensitive member search.
  • Fix crash on global profiles.
  • Fix crash on incomplete identity keys.
  • Fix message notification format on Windows.
  • Fix room members menu opening profiles for the wrong room.

Notes

Requires mtxclient 0.8.1 and fixes a few crashes that can be abused by remote users.

(Binaries have been rebuilt on 2022-09-10 to fix a crash in the mtxclient dependency)

v0.10.0

1 year ago

[0.10.0] -- 2022-07-22

Highlights

  • Notification counts ๐Ÿ’ฏ (LorenDB, d42)
    • You can now see notification counts in more spaces, like your task bar or in the community sidebar.
    • For better work-life balance you can hide the notification counts on a per space basis.
    • For notification counts in the task bar your desktop environment needs to support the Unity protocol.
    • Notifications are also preserved across restarts now.
  • Moderation ๐Ÿ‘ฎโ€โ™€๏ธ
    • You can now change the permissions and aliases of a room.
    • Permissions are shown in the Memberlist
    • A new /redact command to redact an event or all messages by a user.
    • You can now provide a reason when inviting, knocking, kicking and banning users.
  • Faster startup โšก
    • On at least some systems startup should now be instant even with thousands of rooms.
  • Encryption improvements ๐Ÿ›ก๏ธ
    • Support for the most recent changes to Matrix E2EE including fallback keys, no longer relying on the sender_key.
    • Compatibility and stability improvements when dealing with different base64 encodings and when verifying users and devices.
    • Fetch the whole online key backup at the klick of a button.
  • Integration with external apps ๐Ÿ—บ๏ธ (LorenDB)
    • Nheko now has a D-Bus API, which you can enable in the settings menu.
    • This allows applications like KRunner or Rofi to list and switch between rooms.

Features

  • Create a room link from a room. (brausepulver)
  • Support rendering policy rules.
  • Show notification counts for spaces (with options to disable them per space). (LorenDB)
  • Keep notification counts across restarts.
  • Support the new call events (but not the signaling yet). (r0hit)
  • Add a dbus API, which allows external applications to list and switch rooms in Nheko. (LorenDB)
  • Support editing room aliases.
  • Support editing room permissions.
  • Allow redacting all locally cached messages of a user using /redact @userid:server.tld reason.
  • Request full online key backup when toggling the online backup button.
  • Support the knock_restricted join rule.
  • Allow cancelling uploads using escape. (r0hit)
  • Send images on enter.
  • Close image viewer when clicking on the background.
  • Speedup startup by not loading messages for the room preview.
  • Make settings slightly narrower.
  • Show unread counts in the taskbar (if the Unity protocol is supported). (d42)
  • Indicate if a room has no topic in the settings. (LorenDB)
  • Simplify Fedora build instructions. (DaKnig)
  • Support e2ee fallback keys.
  • Allow opening rooms in separate windows.
  • Support more image formats in flatpak.
  • Show powerlevels in the memberlist.
  • Use less exotic emoji shortcodes. (Bulby)
  • Support sorting and filtering the memberlist. (LorenDB)
  • Make initial spinner half transparent. (LorenDB)
  • Fancier rendering for image pack changes. (tastytea)
  • Allow accessing member list and room settings for spaces. (LorenDB)
  • Add zsh completions. (tastytea)
  • Fancy rendering for Powerlevel changes. (MTRNord)
  • Make sender_key in encrypted messages optional.
  • Close current room using Ctrl-W. (LorenDB)
  • Allow knocking on failed room joins.
  • Allow knocking via matrix.to urls.
  • Allow specifying reasons for every room membership change.
  • Make room name and topic editing inline.
  • Add a jump to bottom button. (Malte)
  • Port room creation to qml. (Malte)
  • Streamline direct chat creation. (Malte)

###Translations

  • Russian (Alexey Murz Korepov, Artem, Herecore, balsoft, librehacker, glebasson, Mihail Iosilevich)
  • Chinese (Nekogawa Mio, Poesty Li, Reiuji Utsuho, hulb, ling, RainSlide, hosxy)
  • German
  • Dutch (Jaron Viรซtor)
  • Finnish (Lurkki, Aminda)
  • Indonesian (Linerly)
  • Estonian (Priit)
  • French (Symphorien, Glandos, Eldred)
  • Serbian (Miroslav)

Bugfixes

  • Fix verification requests not stopping properly when initiated from this instance.
  • Don't send matrix.to markdown links in replies.
  • Make the database work on 32bit systems again. (MayeulC)
  • Add missing window decoration to room directory dialog on macOS.
  • Don't crash on empty image packs.
  • Fix spacing of encryption indicator in the room tite if it contains widgets.
  • Emojis during verification should no longer be clipped.
  • Don't ping the whole room when replying to users with a localpart of room.
  • Make icons sharp on all platforms. (q234rty)
  • Work around synapse not sending the original resolution when requesting large thumbnails to make large thumbnails less blurry. (brausepulver)
  • Fix weak symbols from private object destructor. (Jason)
  • Fix failed uploads not cancelling properly.
  • Edits now properly update in replies again.
  • Improve text paste experience. (Syldra)
  • Pins should now properly update when the events are fetched.
  • Support latest iteration of the hidden read receipts MSC.
  • Fix cursor movement with some themes. (Syldra)
  • Properly handle glare during verification.
  • Set an Element Android compatible height for custom emotes.
  • Don't crash because of reusing items in completer on some platforms.
  • Fix the privacy screen on popped out windows.
  • Properly scale animated images.
  • Don't clip pinned messages.
  • Use correct powerlevels for direct chats.
  • Properly close cursors before committing txn.
  • Don't fail if a different client used the wrong base64 encoding when setting up SSSS.
  • Spaces usually aren't DMs. (LorenDB)
  • Don't send invalid aliases to the server on room creation. (Apurv)
  • Fix invite dialog.

Notes

This release requires Matrix API v1.1-v1.3. Please make sure your server is up to date.

This release limits the maximum connections per host to 8. For best performance we recommend your server supports http/2 so that slow requests don't slow down other parts of the app (like sending messages).

Nheko now has KRunner and Rofi plugins (developed by LorenDB and LordMZTE respectively).

v0.9.3

2 years ago

Highlights

  • New upload UX
    • Queue multiple uploads by pasting or dragging multiple files.
    • Videos will now properly have a thumbnail as well as images.
    • Duration, width and height is now also properly included so that clients can resize appropriately.
    • Thumbnails are excluded if they are bigger than the original image. (tastytea)
  • Improvements for mobile devices (Malte E)
    • You should now be able to scroll by touching anywhere with no random dead zones.
    • Preedit text can now be used in a completer and is properly sent
    • If an input method is active, pressing Enter will not send the current message.

Features

  • Optionally always open videos and images in an external program. (math)

Improvements

  • Build macOS releases against Qt 5.15.3 to resolve missing spaces after some punctuation.
  • Send the shortcode as the body for stickers without a body.
  • Elide long usernames in the timeline. (Malte E)
  • Cleanup the reply popup. (Malte E)
  • Use standard buttons where possible. (tastytea)
  • Various improvements to the bubble layout. (Malte E)
  • Enable online key backup by default.
  • Update the bundled gstreamer in our Flatpaks.

Translations

  • Indonesian (Linerly)
  • Estonian (Priit)
  • Finnish (Priit)
  • Esperanto (Tirifto)

Bugfixes

  • Fix hovering the action menu.
  • Try to avoid using unknown UIA flows.
  • Don't Components actively in use.
  • Fix screensharing.
  • Fix device id when doing SSO logins.

v0.9.2

2 years ago

[0.9.2] -- 2022-03-09

Highlights

  • Message bubbles (Malte E) ๐Ÿ’ฌ
    • Give a colorful and space saving background to messages.
    • Optionally shrink the usernames to save even more space.
    • Your messages are on the opposite side of messages sent by other users.
  • Basic widgets ๐Ÿ—”
    • Widgets in a room are shown below the topic.
    • Open them in your browser to view them.

Features

  • Autocompleter for custom emotes using ~. Note that this currently inserts raw html into the message input.
  • Support running Nheko without a secrets service using a hidden setting.
  • Add zooming and panning to the image overlay.
  • Add a manpage. (tastytea)
  • Offline indicator. (LorenDB)
  • Proper previews for unjoined rooms in spaces (on supported servers).
  • /reset-state /command to reset the state of a single room.
  • Allow hiding some events from the timeline. (tastytea)
  • Hidden read receipts. (Symphorien)
  • Open room members dialog when clicking the encryption indicator.
  • Click to copy room id. (Malte E)
  • Allow specifiying a reason for message removal, bans and kicks. (tastytea)

Improvements

  • Speed up blurhash and jdenticon rendering.
  • Use fewer threads for image decoding reducing memory use.
  • Document secret service installation on Arch. (Marshall Lochbaum)
  • Make edits replace previous notifications for the same message on Linux.
  • Add alternatives for Alt-A as a shortcut on systems where that is already used.
  • Apply clang-tidy suggestions. (MTRNord)
  • Make custom emotes twice as high as the text to improve legibility. (tastytea)
  • Ensure high quality scaling is used for custom emotes. (tastytea)
  • Reduce allocations for the timeline by around a factor of 2.
  • Render messages half as often, when displaying them for the first time.
  • Increase maximum number of items in completers to 30.
  • Run the gstreamer event loop also on macOS and Windows.
  • Make presence update dynamically.
  • Cleanup the raw message dialog.
  • Make settings responsive.
  • Improve Login and Registration pages.
  • Add custom stickers & emotes to Q&A.
  • Improve scrolling on touch screens. (Malte E)
  • Reduce size of state events.
  • Update OpenSUSE install instructions. (LorenDB)
  • Use newer flatpak runtime.
  • Fallback to using the shortcode in custom emotes, when there is no title set. (Ivan Pavluk)
  • Improve a lot of hovering behaviours.
  • Make spinboxes in scrollable pages unscrollable. (Malte E)
  • Fix deprecation warnings in gstreamer code. (Scow)
  • Make room directory fit mobile screens. (Malte E)
  • Make room search accessible on mobile. (Malte E)
  • Fix calls on mobile.
  • Add arch binary repo. (digital-mystik)
  • Improve long topics in the room settings. (Malte E)
  • Fix typos. (ISSOtm)
  • Improve the message input on mobile devices. (Malte E)

Translations

  • Indonesian (Linerly)
  • Spanish (Lluise, Diego Collado, Richard, Edd Ludd, Drake)
  • Catalan (Edd Ludd)
  • French (ISSOtm)
  • Estonian (Priit)
  • Dutch (Thulinma)
  • Chinese (hulb)

Bugfixes

  • Wrap member events.
  • Fix rendering of some emoji.
  • Fix crash when accepting invites.
  • Don't fail startup on servers without presence.
  • Fix grayscale images in notifications when using dunst.
  • Clear sticker search. (tastytea)
  • Limit width of username and roomname in the respective settings.
  • Application name on Wayland.
  • Memory leak when closing dialogs.
  • Fix editing pending messages.
  • Fix missing Windows runtime. (MTRNord)
  • Fix a long standing issue where the font was set to a random one instead of the system default.
  • Allow clicking on images in replies to scroll to that image again.
  • Don't force https, when logging into a http only server.

v0.9.1-1

2 years ago

[0.9.1-1] -- 2021-02-24

  • Rebuild against newer mtxclient to fix an incompatibility with Matrix v1.1 and newer.

If you use the binary packages for macOS or Windows, you will need this update. Otherwise you can just wait for your distribution to update the mtxclient package instead.