None would write a TWIM post on the last day of the year! None? No, a small independent developer doesn't want to submit to taking time off!
I wish you all a wonderful and happy new year! Because some people are busy on their time off, I collected some of the TWIM entries since the last post a few days ago! Enjoy the read and let's hope the next year will have as many exciting Matrix projects as this one had!
PS: If you are wondering what the future may bring or what happened last year, don't forget to read The Mega Matrix Holiday Special 2021!
Dept of Bridges 🌉
Heisenbridge is a bouncer-style Matrix IRC bridge.
Heisenbridge is a bouncer-style Matrix IRC bridge.
v1.8.0 v1.8.1 v1.8.2v1.9.0 🥳
- Spaces support 🌃
- Sort NAMES reply nicks 🔤
UNPLUMBnetwork command to force unplumbing without being in the room
- Proper SASL external with CertFP with mechanism override option (see notes)
- Disconnect and cleanup from networks that have no rooms open ♻️
- Reply (and reject) DM requests to ghosts with
- Try to keep IRC users in the room at all costs if they are on the IRC channel
- Fix assumption of all IRC replies to have arguments
- Prevent accidental namespace changes to cause mayhem
- Finally convert from homegrown Matrix API stuff to Mautrix
- Bump Mautrix requirement to 0.12=>0.14
- Conduit support was broken in 1.8.x but fixed again in 1.9.0, sorry
Finally there's network level spaces support with a new
SPACEcommand. This creates a new bridge controlled space for the network and automatically manages rooms in and out. There's an issue/feature with Element that all rooms that have been converted to DMs with
/converttodmwill appear in all bridge spaces. The workaround is to convert them back to regular rooms.
CertFP SASL has been updated to do SASL external flow by default. If you are upgrading and have used CertFP with OFTC you need to run
SASL --mechanism=nonefor it to connect again.
Abandoned networks where the user has left all rooms including the network room will now automatically disconnect and cleanup. This is more in line what people would expect and prevents idle connections from hanging around.
Matrix Webhook Receiver ↗
An add-on for the matrix-appservice-webhooks bridge. Webhooks are essentially web interfaces for applications to "push" data to. The bridge can receive messages in a certain format, which is nice if the notifying app can be configured. Often it cannot.
- Advanced Templating! It is now possible to set
msgtypebased on arbitrary values from the webhook JSON via Jinja2. Shoutout to __qg__ for suggesting this and giving their feedback!
- compatibility with matrix-appservice-webhooks forks that read
- allow mxc:// URL avatars
- improvements to the GUI, including automatically resizing text areas and msc:// avatar URL preview
- improvements to templates/examples including making use of above features
- more documentation, including Tips & Tricks and Related Projects
- ability to properly set no avatar
- work around upstream's newline issue when not using a template
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
Nheko now is a lot more efficient. We now use one Threadpool instead of 3, got rid of more than 60% of the allocations when scrolling through messages, layout half as much content when scrolling, blurhashes decode in 10% of the time and jdenticons allocate ~10% as much temporary buffers. We also deleted around 1000 lines of unused code.
Additionally edits now replace existing notifications, tastytea added a manpage and fixed blurry or incorrectly sized custom emoji, you can now send custom emotes via the inline completer using ~ and completers now show a scrollable list with more Elements than before. Advanced users can also now opt into an insecure client side secrets storage via a hidden setting.
Dept of Non Clients 🎛️
Matrix Wrench ↗
Matrix Wrench is a web client to tweak Matrix rooms.
Matrix Wrench is a web client to tweak Matrix rooms. After formerly calling it Matrix Navigator or Matrix Screwdriver, I finally settled on the name Matrix Wrench.
Version v0.2.0 comes with a Network Log which displays
curlequivalents for all network requests. It also allows to easily add and remove room aliases.
Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups.
f0x tells us
there's a pink theme and irc styling for matrix-streamchat now
Dept of SDKs and Frameworks 🧰
matrix-bot-sdk has had a v0.6.0-beta.3 release with beta support for crypto! It even includes documentation!
The crypto is considered beta quality at the moment: good enough to use for somewhat unimportant bots, but not fully recommended for production just yet. With that being said, I'm interested in bugs you run into - please use the issue tracker if you run into crypto not working.
Tutorials for the crypto setup are at https://turt2live.github.io/matrix-bot-sdk/tutorial-encryption.html
Note for appservice support to work then you'll need a Synapse with these PRs enabled (may require manual merge too):
For non-linux platforms, the rust-sdk will try to build itself which means you might need a working Rust stack. The Rust SDK repo itself has more information:
Bots and appservices don't automatically support encryption, but adding encryption _should_ be easy. The Rust SDK dependency is required in either case, sorry.
Dept of Guides 🧭
Join Matrix! ↗
A beginner-friendly guide to Matrix.
Austin Huang shares
A new Matrix guide has come into town: https://joinmatrix.org
In the hopes to expand Matrix's reach to the non-technical population, this guide is intended to give quick directions on how to use Matrix, as well as clear comparison between Matrix and other dominant platforms.
The pages are available on GitHub. Open to contributions!