My laptop is getting old and i can’t have Element eat up half of my RAM. There are many more clients out there but which one is good? aka "the best? ;-)
My requirements: lightweight, encryption 100% supported, active development/community. runs neatly 24/7 in the background.
Should also support the latest features, let me customize when to get notifications: priorities / muted chatrooms. And ideally also look clean and run on the Pinephone. But that’s optional.
I don’t care which desktop environment or cli.
What do you use?
Have you tried Nheko? I switched to XMPP some time ago, but when I used matrix Nheko was my goto. Also gomuks is another choice, runs in terminal
Why the switch to XMPP btw?
Better native client support for the most part, but xmpp servers also show themselves better (faster, more stable…) than matrix.org I think more matrix users should consider using smaller instances tbh
Thanks for sharing, I’ll check out XMPP too - last time I checked was 10 years ago :D probably a lot has changed
I look forward to the day that Synapse is deprecated in favor of Dendrite or Conduit.
I think more matrix users should consider using smaller instances tbh
Matrix on smaller instances suck because of how bad the protocol is. It “re-plays” the entire history of the channel on first join because channels need to be consistent between all instances because Matrix isn’t just a mediocre chat protocol but a generic data protocol that’s been beaten into the shape of a mediocre chat protocol.
It tries contacting every instance in a channel for their keys. Even the dead ones. And yes it takes exactly as long as you think it does for them to time out. Dendrite solves this by asking matrix.org for everyone else’s keys by default.
But because channels are completely synchronized at least you get to easily migrate channels between instances just by assigning an alias and telling people use the alias to join instead.
Woah, didn’t know that! I remember searching for older messages in Matrix be really bad. I only use IM software for 1to1 conversations, so I probably don’t know the worst of the protocol.
Dendrite solves this by asking matrix.org for everyone else’s keys by default.
Sounds a bit too centralized for me
Sounds a bit too centralized for me
You can turn it off however that makes join times to any channel with history (say… the dendrite release announcements channel for example) unbearably slow to join.
I was using NeoChat for a while, but IIRC it doesn’t support encrypted historical messages, so you’d have to get it set up and keep element around for searching history…
NeoChat has the benefit of supporting OIDC which my server uses exclusively, otherwise I would have given Fractal a look as well.
There is a desktop Fluffychat client written in Flutter I believe.
Don’t know about the options you need, I just use it on my laptop because it isn’t element.
i am currently testing https://iamb.chat/ it’s a bit unique in how it does things but promising of you’re into TUI and vim
Try gomuks. It’s cli written in go. Highly configurable and if your terminal supports images, it’ll show them too.
This client is cool! Thanks for the suggestion!
neochat has been my go to
If you are an Emacs user, then I suggest you try out Ement.el!
Emacs is such a weird Texteditor i must say.
At this point, it would be insane to classify it as a text editor only. I personally refer to it as the “Emacs distribution”; a distribution that happens to have its own integrated text editor and other useful tools. But a more accurate description is, Emacs is an e-lisp interpreter and because of this it’s a very extensible tool!
There’s matrix-cli, but i don’t know anything about it.
I don’t think it will meet all your requirements (besides being light-weight), but I’ve been using weechat-matrix for a week and it’s been fine. Without this, I wouldn’t use matrix at all.
Cinny on the desktop.
for the curious, how much RAM do you have?
8GB on my laptop but shared with a modern browser with 500 tabs open, an editor(/IDE), mail-client and whatever gnome likes to waste resources on (gnome-shell, gnome-software in the background etc). that accumulates to a bit less than 5GB. Plus whatever i currently need open to work on. And a computer needs a bit spare to buffer/cache things.
The pinephone has 3GB of RAM.
It’s not nothing. But also not enough to have every other application written in Flutter.
Sounds like matrix client should be the least of your concerns actually. My RAM usage rarely goes beyond 2gb with xfce and firefox. Switching to NetSurf like above comment pointed out is a bit of overreaction actually, Firefox with Ublock Origin and a handful of tabs open will do just well
Did gou look into what takes up the most memory? You could downgrade from the modern browser with 500 tabs to netsurf with 500 bookmarks, perhaps, or similar. Many modern websites don’t work there, though.
Instead of Gnome, I’m using Sway, at the moment it’s taking up 236MB resident.
Do you need that mail client to run 24x7? It’s better for mental health to check mail when you decide (once in the morning), not when some rando wants to sell you cannabis oil (best cure for any ailment!) - or you might find something tiny that checks for email and shows a desktop notification, so you know to launch your mail client.
Alacritty likes to munch memory, Foot takes up much less, but Foot doesn’t render some colors correctly, for whatever reason.
Shop around, there are more options than just changing the Matrix client.
Yeah, I know. And I’m scaling down with all of those, too (eventually). It’s just … I have to start somewhere. And I’ve decided Element is the first to go. Gnome is kind of nice. And works well on a touchscreen. And I sometimes need WebRTC, mic/camera and video in my browser.
I can use a more lightweight browser for my daily use and maybe get organized and close tabs and use bookmarks. I like the concept of tiling window managers, so maybe I’m going for something like Sway next. I’ve had used Xfce for a bit, but that also uses quite a lot of RAM (for something that claims to be lightweight?). And changing from KDE/Gnome comes with quite a lot of choices for alternative programs and new little helpers to get accustomed to. From the little thing that shows me the time in the US and the weather in front of my own door to the calculator to the default mail client. It’s a bit more complicated and just takes a bit of time.
Using mail 24/7 was a bit of an exaggeration. I’m using it in a healthy way. But It is useful to get for example the notification that a parcel is getting delivered today, to talk to companies and people who don’t own a proper messenger. At least I’m okay with the 5 spam mails while everybody around me is getting constant notifications because some friend sent some deep motivational quote on WhatsApp.
Thank you all for the suggestions. Now I have to have a closer look at each of them. It’s just, I’ve been annoyed a bit lately. I think 8GB should be plenty and enough to not worry about RAM and just use any application and open as much as you like.
An easy start would be Firefox + tree style tabs + auto tab discard, that way you can have your 500 tabs and keep only N loaded (you choose N).
Only using Android for socials and only tried element. I want something different. Element has a settings overload, but no way to remove the status bar icon. I hate that so much I just leave it disabled in settings unless I need to use it.
what do you mean by status bar icon? if you mean the persistent notification, it’s so element isn’t killed by android and can receive push notifications without google play services
Yeah. I like my home screen like Gnome’s DE; nothing on it whatsoever. I only want my 3 button navigation, clock, WiFi status and battery. Absolute fine grain control over my notifications is very important to me. I’m extremely burned out on notifications used for user attention manipulation on the google framework. I an on Graphene with no google services. I only want notifications if they can be default opt-in and primarily peer to peer for things like DM. I don’t want any visual indicator for such background services. Basically, I expect SMS like functionality; out of sight, out of mind until needed.
I think the way to handle this is to long-press on that notification and turn it off. This way the notification is there in theory so your app doesn’t get killed in the background and you don’t get a notification shown either. I did that with all the persistent notifications from several apps (including Element) and my phone looks clean. But don’t disable all the notification categories. Just the persistent background one so that you’ll still get notified of messages and so on.
Interesting. Thanks for the info. I turned off the listening notification. Hopefully this is the one you meant. I hadn’t thought about settings for the device itself.
I don’t entirely understand the verification notice and all. I don’t understand the context of verification. I generally avoid making any external internet connections (finger printing) between my phone and other hardware. They are on separate VPNs and firewalls. I get the message about no verification every time I open element. I don’t know what it is trying to verify exactly. I imagine it is a copy of the keys and hashes, but like, I don’t want to connect social across devices and I am given no options or context details. I don’t mind backing up or storing keys, but I’m not installing the software on my workstation or punching holes in that firewall.
Anyone with access to your homeserver can change your password and log into your account. That’s why by default, when someone logs into account, their session is unverified and doesn’t have access to encryption keys. To verify it and sync encryption keys, you have to mark it as trusted from another device you own (which sends the encryption keys from the old device), or if it’s the first session it becomes the only trusted device (and generates new encryption keys).
Note that the homeserver owner can always reset all of your sessions and encryption keys, then log in as the first session. They won’t be able to read your past encrypted messages obviously, but they will be able to impersonate you. To prevent that, you can additionally perform the same verification process for the devices of those you chat with - that way they will also know which devices you marked as trusted.
thing is what you want is impossible (background services with no notification). However, Android has per-app notification settings where you can toggle notification categories, so the app can request to not be killed by showing a persistent notification, and you won’t see it because you’ve hidden it
so turn off notifications??
The matrix website has an extensive list of matrix clients out there. Idk why this question is still asked when the answer is very easily found.
Two of the top answers here are missing from that list and, to be frank, that list does not really contain any useful information. For example, where do I see on that list which clients can display images?