this post was submitted on 17 Aug 2023
70 points (98.6% liked)

Linux

47290 readers
1059 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

all 41 comments
sorted by: hot top controversial new old
[–] [email protected] 19 points 1 year ago (1 children)

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

[–] [email protected] 7 points 1 year ago (1 children)

Why the switch to XMPP btw?

[–] [email protected] 16 points 1 year ago (3 children)

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

[–] [email protected] 4 points 1 year ago

Thanks for sharing, I’ll check out XMPP too - last time I checked was 10 years ago :D probably a lot has changed

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] [email protected] 3 points 1 year ago (1 children)

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

[–] [email protected] 2 points 1 year ago

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.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

I look forward to the day that Synapse is deprecated in favor of Dendrite or Conduit.

[–] [email protected] 9 points 1 year ago

neochat has been my go to

[–] [email protected] 9 points 1 year ago

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

[–] [email protected] 8 points 1 year ago (1 children)

If you are an Emacs user, then I suggest you try out Ement.el!

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

Emacs is such a weird Texteditor i must say.

[–] [email protected] 2 points 1 year ago

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!

[–] [email protected] 8 points 1 year ago

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.

[–] [email protected] 6 points 1 year ago

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.

[–] [email protected] 6 points 1 year ago (2 children)

Try gomuks. It's cli written in go. Highly configurable and if your terminal supports images, it'll show them too.

[–] [email protected] 2 points 1 year ago

This client is cool! Thanks for the suggestion!

[–] [email protected] 2 points 1 year ago

Thanks. I'm halfway through installing all of you people's recommendations. I'm a bit disappointed in the way encryption is handled in matrix. I'm again running into issues. gomuks gives me its fingerprint but element doesn't do that kind of verification any more. Guess I have to try more client until I find one that combines all kinds of verifications and I can get encryption set up and connected between them.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

There's matrix-cli, but i don't know anything about it.

[–] [email protected] 4 points 1 year ago

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.

[–] [email protected] 3 points 1 year ago

Cinny on the desktop.

[–] [email protected] 2 points 1 year ago (1 children)

for the curious, how much RAM do you have?

[–] [email protected] 2 points 1 year ago (2 children)

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.

[–] [email protected] 4 points 1 year ago

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

[–] [email protected] 2 points 1 year ago (1 children)

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.

[–] [email protected] 3 points 1 year ago (1 children)

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

[–] [email protected] 2 points 1 year ago (3 children)

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.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] [email protected] 2 points 1 year ago (2 children)

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.

[–] [email protected] 3 points 1 year ago

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.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago)

Yeah. That's the correct one. You can also do that with other apps that rely on a background connection to some server. I also don't use google and their cloud messaging. So that's the way around it.

Regarding the verification: It's an additional layer of security for you. To make sure all the devices logged in into your account actually belong to you. Otherwise someone with access to your computer or password (or matrix-server(?)) could in theory read your messages. To prevent that, they make you verify it's actually you who registered that additional device. I think Element has an option to not sync encryption keys with unverified devices. So you could end up with malfunctioning encryption. But in case it's working fine for you, you can skip the verification. You're just missing out on the extra security this way.

[–] [email protected] 3 points 1 year ago (1 children)

so turn off notifications??

[–] [email protected] 2 points 1 year ago

Yes, for social type stuff. I'm disabled. Interruptions are very counter productive for me. If I have the strength to work on something, the last thing I need is some excuse for distraction. It will only be a short time before I will need to take a break, and will inevitably see whatever pending dot notifications I am interested in checking. Or I'll just check them manually if I care. I don't mind when notifications are from individuals sending direct messages. I don't want any other form of notifications by default. I'm fine with something like a dot notification on the app only, like if there is a direct comment reply to something I posted on a general thread, but this is not a phone call, sms or equivalent type of priority to me. It is peripheral, and something that has limited import. It shouldn't demand my attention with a sound in the real analog world, or shove itself in my face the moment I view a device. Like a student in a classroom, it should quietly raise its hand and wait for its turn if time allows.

[–] [email protected] 3 points 1 year ago

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

[–] [email protected] -5 points 1 year ago (1 children)

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.

https://matrix.org/ecosystem/clients/

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

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?

[–] [email protected] -4 points 1 year ago (1 children)

You just click on the links and go to their pages... This is literally such little effort dude.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago)

I was specifically asking for recommendations by actual humans. I didn't write a lengthy essay about all of my previous life but I'm pretty aware of that list and even tried several clients but never found anything I fell in love with.

You sometimes simply (and politely) ask other people. And you learn. The main benefits are: You get real-world info. There are several clients out there that are only good 'in theory' but are lacking in every day use. And second, if you get the answer that everyone is happy with something and you're the only one with a certain problem, you get to learn that you do something wrong or have a weird use-case.

You don't get that info from that list. And how would I even do this? Start a spreadsheet with the 19 mentioned clients, have 20 features I need and go through the source code to see what's implemented for every client that hasn't a proper list on their github Readme? How long would that take me? And then install all the 20 clients and measure their resource usage or infer it from the programming language/framework? No, no. Sometimes asking people is just the way. And word-of-mouth is exceptionally good when you're directly speaking with people and recommending them some distro or good piece of software out of the hundreds of possible choices.

I'm sorry for being a bit rude myself. My main point was just to explain myself.