Matrix Live 🎙
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
This week was a little on the quieter side again, with some of us away on holiday and others away with illness. Nevertheless, this week
developsaw a variety of activity. Some personal highlights:
- Shay's effort to document Synapse's numerous config options landed. This is a huge and comprehensive effort that'll help administrators to understand all the options they have to configure Synapse.
- Further progress from Rich on the fast room joins project. In some tests we've seen a 5x speed-up over the status quo!
- A subtle bugfix from Erik which corrects incorrect counts in one of the Admin API endpoints.
- The remainder of the poetry work has landed. There were a few last-minute complications in CI to smooth out, but we've now finished the migration. Synapse's docker images and debian package now come with a fixed set of dependencies (even transitive ones) in a way that lets us support multiple Python versions and interpreters.
We're looking forward to shipping these in Synapse 1.58, whose RC is scheduled for Tuesday the 26th of April.
As ever, I'd like to express thanks to our community of users, server operators and contributors. Thanks are also due to @callahad: today is his last day of managing the Synapse team. We're all going to miss him and wish him well: thank you for everything you'd done over the last year and a half.
Dept of Bridges 🌉
Heisenbridge is a bouncer-style Matrix IRC bridge.
Release v1.12.0 🥳
- Make MAXLINES and PASTEBIN option available to every room & global defaults (thanks @BtbN)
- Fix 'NoneType' is not iterable error (thanks @BtbN)
- Upgrade to Mautrix 0.16
Not much to see here. A small contribution release which is always a nice thing when people come around and help 🤗.
Dept of Clients 📱
Sailtrix is a matrix client for SailfishOS
Summary of development this week
- Sailtrix is fixed on Sailfish 4.4, which added sandboxing to all apps
- Sorting is fixed in the favorites tab
- The create room dialog is fixed
- Some validation is added to the login page
- Sharing with other apps and bluetooth is added for newer Sailfish versions
- SSO seems to be working, still in testing
Everything related to Element but not strictly bound to a client
- As a follow on from our previous launches, the team is building “live location sharing”. This will allow you to automatically share where you are in the world with others for a period you choose (15 minutes, 1 hour, or 8 hours), instead of sending a single static location.
- We ran our first async community testing session this week. Thank you all who joined in! We found 13 issues so far, which is good going.
- We have some new features landing for the search experience on Web, join us for testing from Thursday!
- You can join us at #element-community-testing:matrix.org to find out more!
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- Threads is in Beta! The team is hard at work smashing bugs and improving notifications so that we can remove the beta label and get everybody access to our new feature!
- If you’re using Threads, don’t forget to give us your feedback.
- This week the team discussed how our Web product looks and feels to new users. While we use our own products all the time, it can be good to take a step back and ensure that our product decisions benefit all users, including the newbies. Watch this space for more info in the coming weeks as we continue to trial things that we hope will make onboarding to Element easier.
- In labs (you can enable labs in settings on develop.element.io or on Nightly)
- Video rooms are coming together nicely, with the addition of lobby screens and room list stickiness to wrap up the design implementation
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- The newest version of the app (1.8.13) is ready! In this release we’ve made a bunch of improvements and bug fixes, check it out here.
- Our favourites include: Force touching room previews no longer update your read receipts, there’s a congratulations screen for new users when creating an account, and we’ve reduced the number of home page reloads.
- Also new in product are presence indicators! From your home page or DMs you’ll be able to see if a user is present or away. Note; this is only supported if your homeserver has it enabled.
- Upcoming; We’re working on adding ‘mention pills’ when tagging users in a room.
- Please note; We’ll soon be removing support for iOS 12 and iOS 13
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- The team is working on fixing bugs and making improvements to flows like “ignore user”. We’ve also made some changes to the way we format code.
- Element Android 1.4.12 is ready to be released but currently on hold in the Play Store due to rules around User Generated Content (UGC). We’re chatting with Google and the new update should be available soon.
Dept of Non Chat Clients 🎛️
Populus Viewer (website)
A Social Annotation Tool Powered by Matrix
We've added two major user-facing features to populus viewer:
- A two-up view in the pdf viewer, allowing you to view and annotate two pages at once on a wider screen
- An audio viewer, complete with audio annotation, so that you can annotate temporal segments of an audio recording
I'm especially excited about the latter - being able to discuss audio recordings will be a great teaching tool, and I'm hoping it might also be useful for things like people who want to talk about podcasts together (for purposes of editing, or just for fun), and people who want to annotate recordings of public talks of various kinds. The last use case would also be pretty well served by video annotation - so that's now rising on the agenda. I've created an MSC, here where I'll be filling in the details of a proposed format for interoperable audiovisual media annotations. As always, if you've got questions, want to follow development progress, or just want to talk about the future of social annotation on Matrix, come join us at #opentower:matrix.org.
A KRunner plugin to list joined rooms and possibly other things from nheko.
nheko-krunner has finally been released! Version 0.1.0 contains several handy features such as searching your rooms, joining new rooms, and starting and switching to direct chats. Furthermore, if a room has unread notifications, nheko-krunner will let you know by tacking on a notification count to the room name (e.g.
This Week in Matrix (TWIM) (1). Currently this feature is not disable-able, but I plan to dive into writing KCMs (KConfig Modules) soon so that I can add a toggle for this.
Hopefully a few people find this handy, and remember that if you don't use KDE, nheko still has a handy D-Bus API that you can use to write integrations with other software.
Dept of SDKs and Frameworks 🧰
Matrix Client-Server SDK for Rust
Jonas Platte says
Over the last weeks, we've been doing a lot of refactoring in preparation for the 0.5.0 release, but we also
- Added support for retrieving room account data
- Made it easier to create a client while being offline
- Fixed a rare bug with SSO login (
localhostdidn't always resolve, so we switched to
- We made some progress on sliding sync and adding an FFI interface for the main
Matrix Dart SDK (website)
Matrix SDK written in pure Dart.
We haven't done any regular posts about it in a while, but the SDK sees almost weekly releases. (We did release version 0.8.20 last week) If you forgot about it, the Matrix Dart SDK is the SDK FluffyChat, the Famedly clients and a few others use. Let me summarize some of the changes for those who haven't kept up:
One of the killer features is probably WebRTC support 🚀. It handles all the signalling for you, which makes integrating call support into your Flutter or Dart Matrix client fairly simple. Currently it supports version 1 of the call protocol, which is still an MSC and implements a few of the other MSCs. Experiments with group calls are still in progress.
We also switched databases a few times and tuned it more (we posted about FluffyBox last year). The database backend should now be a lot more stable and more performant, while also using less memory.
Continuing with stability, we worked a lot on how the timeline is stored and structured, leading to a much more robust experience. The SDK is also now completely nullsafe 🎉, which gets rid of a lot of annoying error modes. There were some fixes to E2EE here and there, but mostly the experience has been really solid and didn't need much work.
Some of the more recent developments include widget support as well as improving the file upload experience. The SDK now inserts a dummy event for a pending upload, images are thumbnailed and resided in a different isolate and uploads are automatically retried after a connection failure. We are also working on improving the push support, making it easier to fetch events from a push.
And I'm currently working on bringing fragmented timeline support. Nico told me it would be pretty (not) easy to do... and I have to say, he was right. Good first issue 🙃
See you next week ;)
Dept of Ops 🛠
I've created a NixOS module, nix-matrix-appservices, that can simplify the bootstrap and maintenance of matrix appservices on nixos. With it, appservices can be spun up easily with registration and tokens handled by the module. Most mautrix and mx-puppet bridges have been tested to work and they can be setup in a couple lines of nix code. There are plenty of options you can make use of to configure more complex appservices. You can find the the code, matrix room(gitlab badge), and usage information here: https://gitlab.com/coffeetables/nix-matrix-appservices
Synapse Maintenance Container – Docker container with tools for synapse & postgres database maintenance
New since v0.3.x
- autocompressor have only one setting
- add a golang tool
stui- synatainer terminal ui
- replace the vacuum shell script with stui
stuiis a typical golang binary, it's also available as stand alone version from the release page
For now it can only do a full vacuum and show some rugged formatted database info
[docker run -it --rm registry.gitlab.com/mb-saces/synatainer:latest] stui vacuum-db --help [docker run -it --rm registry.gitlab.com/mb-saces/synatainer:latest] stui db-info
The doc have a lot of space for improvements…
Start the container without command and let do its magic :)
What it does by default:
- purge all rooms without local members
- run the state autocompressor (500/100)
- delete old remote media (>90 days)
- delete old message history from public joinable rooms (>180 days)
- vacuum the database
Compose example: https://gitlab.com/mb-saces/synatainer/-/snippets/2264828
If you are looking for a docker container with just the auto compressor for linux amd64/arm64 in it, her you go: https://gitlab.com/mb-saces/rust-synapse-compress-state
Matrix server setup using Ansible and Docker
Thanks to Julian-Samuel Gebühr (@moan0s) - moanos [he/him], matrix-docker-ansible-deploy can now help you set up matrix-registration-bot - a bot that is used to create and manage registration tokens for a Matrix server.
See our Setting up matrix-registration-bot documentation to get started.
See our Setting up borg backup documentation to get started.
Dept of Interesting Projects 🛰️
A privacy focused social media based on MATRIX
Henri Carnot announces
just did release V.1.5.5 today, this is the last update since a few months ago.
Some of the changes are:
- feat: compliance to the latest version of MSC3639: Matrix for the social media use case
- feat: added images support for posts. You can now send multiple images in a post and display them in a gallery view.
- feat: New emoji picker, you can now select and react to message in one continuous press.
- feat: Comments nesting, (using threads)
- feat: Image comment (read only :()
- feat: Dark theme support
- feat: New settings page (added a lab section :D, seems you need to have one if you want to build a proper Matrix client)
- feat: proper emoji support for desktop. Thanks fluffychat :)
- feat: Initial story support
- feat: various UI enhancements.
Concerning the messaging feature:
- feat: Initial poll support
- feat: read only spaces support
- feat: room list search box
- feat: chat settings dialog
- feat: read receipts list dialog
- feat: reaction list dialog
- feat: now use rounded avatar. Let's be consistent with other clients.
- feat: better display for replies and
- feat: Localization support thanks to the Matrix Dart SDK
And some work already in for multiple profiles support, and profile as space (just use a public space to store your profile rooms).
If you are interested, come say hi in the room.
PS: You can also help us to design the underlying MSC, especially, we need some opinions on how to name things (the profile rooms) the room !!
Dept of Ping 🏓
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!