I wish there was a good high density client for matrix. Like an IRC client.
All the ones I've seen emulate Whatsapp and signal. Big avatars, lots of spacing everywhere. This doesn't work well if you bridge lots of other networks with many channels. Discord, slacks etc.
For now I still bridge that kind of network to IRC, and I use matrix just for my personal chats. Because there's just no good client that doesn't become a huge mess with that many channels open.
Desktop Element's interface is also awkward for some of us who don't use many channels but simply need our screen space for other things.
Even in compact layout, with small fonts, with one sidebar hidden and the other in icons-only mode, it manages to make a 600-pixel-wide window feel cramped. About half of that width is filled with icons and empty space. The settings panel doesn't even fit in that size.
The jabber clients I used in the past were comfortable at a fraction of that size. I think part of that was because they didn't force everything (e.g. contact lists and conversations) into a single window, and part of it was that they didn't flood the display area with margins, oversized (often repeating) icons, and space reserved for unimportant things that in some rooms will never appear.
I tolerate the interface because I love what the network is accomplishing and I haven't found an alternative client that seems better overall. I might try Nheko if/when its e2ee matures.
One of the things I miss most in modern chat clients is the old MDI style interface where each channel could have its own sub window, allowing for tiling and repositioning of multiple chat contexts at once. I know weechat and some others have similar capabilities, but I'm thinking more like mIRC. This complaint extends to a lot of modern software, tbh.
Hydrogen[1] allows you to have multiple opened conversations, but it isn't super flexible. NeoChat has nice feature for this too, as someone else mentioned.
Right now its really hard for alternative clients to support E2E because they are forced to build the whole encryption stack up.
As a consequence the alternative clients have just not matured and have mostly lost steam.
The next gen of matrix mainline will be moving to a Rust based library stack that has an explicit goal of making straight forward bindings for 3rd party clients via a mostly standard C library interface (so yay for elisp, python, c++ etc) and of course the Rust libraries can be deployed to wasm for web and javascript.
I think we'll get a lot more mature clients that will be more useful, because yeah... the current matrix mainline client has "modern" disease pretty bad.
Terminal clients like weechat[1] might catch your attention, but I'm pretty sure what you're looking for just doesn't match up with modern UI conventions.
I can also personally vouch for weechat, it's extremely customizable and fun to use.
I don't think it's a matter of ui convention. Doing things the Whatsapp way does not work for such large amounts of chat channels. They're just doing it because people are used to it..
I think there's 2 kinds of usecases for matrix. One tries to just replace Whatsapp etc as a person to person chat network. It aims mainly at novice users. The other usecase tries to bridge as many chats into it as possible to have a central place of interaction. This is obviously for more advanced users. Still, the element team seems to aim for this usecase too with their Element One service.
The ui of element and the other high profile clients works great for the former but poorly for the latter.
I use gomuks by the way but I would like to see images (with a click if needed). Gomuks actually shows them but very low res.
I tried it when it first came to Elements but I didn't manage to set it up so that stuff from each bridge went into its own space. It seems to be more something for matrix communities on the wider network, not for local bridges. Perhaps it's improved now but it didn't work for me when I last tried it.
I should give it another try though. I'd kind of forgotten about it because after the first try I've hidden the entire vertical bar for it, to reclaim some screen space. So I haven't given it any thought lately.
It goes for nearly every team/chat application nowadays the information density is just too low. Webex is the worst offender if you have a thread in a channel it's basically unusable.
Good point but I don't really care about E2EE for my usecase. I mainly use it for my local bridges and my Matrix instance isn't even publicly accessible or linked to the rest of the matrix network. So for my use it really doesn't matter.
I think Nheko suffers from low-density UI the same as Element. Especially the room list. But unlike Element it does support tags properly which is indeed great.
A PR was merged recently to make reading encrypted messages in libquotient (the lib used by both Quatermion and NeoChat). Another one is in the work to send encrypted messages.
Yeah I know but the messages are exactly the part where I don't really need it. It's the channel list that becomes a mess.
It could really do with threaded channel lists too, so I can have my slack groups and discord servers with their channels underneath without bunching them all together without any organization.
Yeah I looked at spaces but it didn't seem to work for me. I couldn't set it up with my local bridges the way I want. And I don't want to micromanage everything.
The old tags worked very well for this but the problem is that element shows each tag as its own independently scrolling list. So if you have many of them you have lots of tiny scroll zones. That doesn't work at all. Also they seem to be wanting to deprecate tags, most of the management features have been removed from element.
Not an issue of spaces per se but with >1000 rooms/DMs, the Element Desktop UI can become very unresponsive, to the point of being barely usable, and sometimes freezes completely requiring killing the process. I haven't pinpointed the exact condition(s) that makes it freeze up/get very sluggish but even on good days it takes >5s to expand the "People" list.
This is on a modern desktop CPU with plenty of memory headroom. It never happened so far on a profile with less chats.
I hope that will improve when they switch out the Matrix implementation from JS to Rust, especially for the desktop version. (which is planned, I think)
When I tried it (when it had just freshly come out) I wasn't able to group channels of each bridge in their own space. Perhaps that's changed now as I hid the whole spaces tab when I first tried it and didn't try it again.
Tbh tags were fine, it was just the whole UI around it in Element that was just totally screwy. But the concept itself works ok (though I missed the ability to auto assign them based on the bridge).
I already achieve that by creating my own private spaces, where I distribute the rooms I am in as I see fit. Plus, I join the spaces of whatever topic I want to, too.
I appreciate that there are more clients for matrix being developed, but I really wish there was more effort put into making a better server. Dendrite and Conduit are making progress, but it's excruciatingly slow. Synapse works but feels extremely clunky to set up and maintain, and that's not even counting the resource usage (which is admittedly getting better, but still harsh).
Dendrite development is literally going faster than ever, with major releases every 2 weeks, and 0.8 out last Friday (https://github.com/matrix-org/dendrite/releases), and 83% CS API compliance and 95% SS API. (Edit: see also the commit graph: https://github.com/matrix-org/dendrite/graphs/contributors) The core team is depending on it to power the reference P2P matrix implementation as per https://arewep2pyet.com, plus we currently have dedicated funding for Dendrite, avoiding the team getting sidetracked by other stuff as they have been in the past.
Meanwhile Synapse is continuously getting more resource efficient too, with Fast Joins landing shortly - and Conduit looks to be making decent progress as well.
In other words, i think we’re about to enter a golden age of Matrix servers :)
Something I feel like is missing with both Synapse and Dendrite is some kind of tuning guide or config generator based resource availability/usage.
There are a ton of values to tweak which impact the server and room sizes you can federate with, I’ve never been able to figure out how to come up with sane values to set those that also allow joining common, larger community rooms like #matrix:matrix.org
I haven’t tried in a while so it’s possible that I missed something but for someone trying to set up a homeserver, even someone technical, it can be confusing and intimidating.
> Synapse works but feels extremely clunky to set up and maintain, and that's not even counting the resource usage (which is admittedly getting better, but still harsh).
What's clunky about Synapse setup? I can perhaps see setting up a worker (sharded) setup is a bit complicated, but a basic monolithic instance is pretty straightforward.
Also, how much resource usage are you seeing? My monolithic Synapse instance uses about 300-500M of memory usage and 5-15% CPU isn't at all bad and it's in a lot of rooms.
It's hard to put into words, which is why I said "feels" rather than "is" ;)
It might just be my own lack of skill, but I found myself initially getting overwhelmed at trying to hunt down which settings to change to ensure no federation or third party calls were made, since that was my usage scenario. Even then, a rogue "allow vector.im" snuck in here and there at first. My second go around a year or two later was much easier since I already knew what to look for, and had a better grasp of how to handle the ACME/DNS aspect of it all (which isn't the fault of the Matrix team at all, but was still a pain point). Some other pain points for me were grasping identity servers and trusted certificate providers and STUN/TURN and integrations, since there was a whole lot of learning necessary for me before I was comfortable just following the installation steps as-written.
I did try the Ansible playbook during another attempt, and while it worked pretty well there was still the same sense of "wow that's a lot of configuration". I also foolishly tried to apply it to a pre-existing server running nginx, which, while possible, adds some extra complexity to avoid breaking existing configs. YMMV, I am just not the brightest of fellas.
As far as resources go, a $5 VPS covered more than enough to handle even the older versions of Synapse for my use case, since I wasn't federating and have a fairly small number of users (under 100). I couldn't tell you whether federation or more usage would change that, but community reports (at the time) were that Synapse struggled. Much of that seems to have been addressed since then.
Overall I think if I were to start over, I'd stick to the Ansible playbook on a fresh server.
no op, but just went through my 6th synapse / element install..
A lot of the clunky is stuff like postgres settings - is the hbaconfig thing right? why is my default install of postgres oin deb 11 listening to public ips - why does it take 36 hours of chat replies to figure out that broken part..
why does certbot muck up my nginx - it's not matrix fault, or certbot's fault or nginx's fault - I just followed different parts of different tutorials for different pieces of the needed things and things broke.
I wish support / QnA was moved out of the chat rooms and into a QnA wordpress theme so people didn't get ignored at whatever hour and issues missed.
I tried ansible a bunch of times over times - some support happened, but I had to abandon it, even though it seemed to do 99% of the things..
I still can't get my element to allow 'explore rooms' guest joins - even though I had it working on my second install - and I double checked the settings - and I've asked for help 3 times in the room -
and then there's the maintenance things in need - I'm shredding my first successful one since I can't get postgres to vacuum a 350GB DB on the droplet I'm paying too much for, and to find that out was a joyous long process of lots to learn.
Anyway, I love it. It's the best. It's just clunky because there are so many other things that aren't easy, that aren't matrix.
and the maintenance and other addin things are not easy - like I wish adding sticker picker was like adding a wordpress plugin - I could never get that working with ,y 1.2.6 install - but that's not matrix fault - it's just a thing that was tried and not easy for me, and the support help was a little - so cool - but not enough - so never worked.
things like that.
I really need to get ahead of the maintenance thing to remove old stuff and stuff - hope that works okay. fingers crossed - or I'll just be shredding a chat server every 6 months and starting a fresh one - haha.
> why is my default install of postgres oin deb 11 listening to public ips
Because it isn't. I cannot comment on the other stuff but this simply isn't true. PostgreSQL on Debian (and upstream) only listens to 127.0.0.1 by default. If it listens to more it is likely something the you or the Matrix devs have done.
yeah - I am sure you are right - this one thing was a reason matrix was not working for me - and someone in the chat did help me figure that out by running netstat I think.
This was part of the clunky / multiple tutorial thing - I think to get it up and running I had 150 tabs open - 30 tabs for different "how to's" for nginx and certbot, 50 tabs open for postgres, 50 tabs open for ufw and iptables - 20 tabs with stack overflows and such on minor things. (This may be a slight exageration but not far off I'm thinking)
I think I was using 4 different matrix tutorials from different places to do the different things. So having non-default things happening and conflicts and all that - no surprise.
Some were tutorials for ubuntu or other OS's, many were made for Deb 9 or 10 - but that's just what I needed to get through all the hoops.
I'm considering exporting a list of the history / bookmarks I've gone through this last couple of installs to show the madness.
I've also (pretty sure) saved all the command line stuff from putty - obviously there are many mistakes, and not every command will be exported - but it's a rough guide to get started )and easier to search for commands in there like how to stop / restart synapse - which varies depending on OS and such I think - and this is without the maintain things, the mojinor thing, the sticker picker and other addins (yet) that should be a thing.
not doing the ngninx and certbot stuff in the right order led me to days of troubleshooting only to finally give up and use a completely different domain name in order to get it working for the element part - haha - good times.
I've learned a lot about little things, but still feel all the moving parts are clunky - and it's not matrix per se - but dang it's not a one-click install and config everything like a softalicious doing wordpress either.. of course it's better (postgres va mysql) - and nginx vs apache and all that.
I appreciate all the new clients but I really wish there was a usable alternative to element for me that works on Linux and Windows.
I mean, element is fine as a reference client, but I would so much prefer something that looks and behaves more like Quassel (and preferably not electron-based but I'm not judging if the RAM usage was fine).
But every other client I tried either a) doesn't look like what I want b) is Linux only c) doesn't even reliably work.
Doesn't look like they've added any features with the GTK4 build, just from scrolling through the recent commit history. Much like a lot of these recent GTK4/Libadwaita apps, it looks like they're just maintaining feature parity with the old version while removing the flexibility the older versions had (eg. more packaging options, better customization, none of the reviled "flat button" nonsense, more accessibility options for people with vision impairments, etc).
Kinda annoying, but at least the writing is on the wall that I need to find a new Matrix client.
The new version was completely rewritten from scratch to use the new matrix rust SDK. As a result it supports E2EE, while the old version does not support that.
The client fractal was rewritten for GTK4 (Called fractal-next) and some days ago, the GTK3 Fractal is now the legacy one and Fractal-Next is the new Fractal
I really dig the GTK's thick header bars and the widgets you can put there. Pretty sure Apple was the inspiration but it's a very elegant use of otherwise wasted space.
I recently made a simple app in Go with GTK and it was quite pleasant:
It is a bit of a tossup though. Some apps make good use of this space and some apps have a thick empty header bar which wastes more space. Overall I think it is good and hopefully apps adapt but it is definitely hit-and-miss at this point.
Off the top of my head, Matrix clients with full support for E2EE include:
* Element Web (via matrix-js-sdk)
* Element iOS (via matrix-ios-sdk)
* Element Android (via matrix-android-sdk2)
* ElementX iOS (via matrix-rust-sdk)
* Fluffychat (via Dart Matrix SDK)
* Fractal (via matrix-rust-sdk)
* Hydrogen (via hydrogen-sdk)
* Syphon (built into its Dart codebase)
* Thunderbird (via matrix-js-sdk)
* Cinny (via matrix-js-sdk)
* weechat-matrix (matrix-nio)
* weechat-matrix-rs (matrix-rust-sdk)
* nheko-reborn (mtxclient)
* mirage (matrix-nio)
* gomuks (gomautrix)
* ocrcc-chatbox (matrix-js-sdk)
...and a bunch of abandoned ones too, like Riot Android (matrix-android-sdk), Seaglass (matrix-ios-sdk) and Daydream (matrix-rust-sdk).
Meanwhile any Matrix client can speak E2EE if you connect it via the pantalaimon E2EE proxy (powered by matrix-nio).
In other words, the whole "almost every Matrix client out there has no support for E2EE" is really not true - there are loads of them, spanning many different platforms, built using different independent SDKs.
I'm curious as to what the purpose is of making a network client AGPL? I don't quite understand how the author wants this license to apply to this software.
Making client code AGPL normally means the author is making an ideological statement that “even if any of this could be run serverside, you must still release your changes”. (Or they are cargoculting a restrictive license from elsewhere :)
I looked at setting up a matrix server. It looks way too complicated. There is an Ansible script but it has a list of billion optional items. Too much choice is overwhelming.
All the ones I've seen emulate Whatsapp and signal. Big avatars, lots of spacing everywhere. This doesn't work well if you bridge lots of other networks with many channels. Discord, slacks etc.
For now I still bridge that kind of network to IRC, and I use matrix just for my personal chats. Because there's just no good client that doesn't become a huge mess with that many channels open.