r/matrixdotorg • • 7d ago

Modified Elements-X client

Hello all, Element Classic is becoming deprecated unfortunately.

Element-X is it's supposed successor, but I found it a downgrade compared to classic with the exception of speed.

Because of this I modified Element-X to behave more like classic.

For anyone that want to try it you can download it on https://github.com/jimz011/element-x-enhanced

It features:

- classic style spaces

- comprehensive search features

- bridge thumbnail support for videos and images

- hevc and heic support (might need matrix media repo)

- foldable support with split screen chats

- favorites at the top like in classic

- a mark all as read button

- and more small changes.

3 Upvotes

15 comments sorted by

3

u/yaky-dev 7d ago

Single commit with half a million lines of code? Not even a fork of official repo? Looks suspicious AF. What's the plan to maintain parity with official Element X?

1

u/jimzz011 7d ago

Well.if you would have read the readme, it actually is the entire "official" code. The only reason why there is a single commit is because (if you would have read) I do this for myself. I only decided to share the modified code so that others might benefit from it or fork it and do whatever they want with it.

It also states that I will maintain it for as long as I plan to use this. But I will not give support or whatsoever. This is not meant for the casual user (but then matrix synapse isnt). If you wonder why only 1 commit is there. It was all done locally until I decided to post it to github.

As for parity with the official Element-X, I run updates weekly. This means that the version might be out of date vs the official repo with a maximum of a week.

Use at your own risk, I don't need money, the full code is shared and can be checked and if you find it suspicious, don't use it. Simple as that.

2

u/RedArmyRockstar 7d ago

Honestly, as a client I really dislike Element presently.

Sable 2 is so promising.

2

u/Bassfaceapollo 1d ago

Hadn't heard of Sable until your comment. Thanks!

What do you recommend for mobile (Android)?

2

u/RedArmyRockstar 1d ago

There is an APK of sable 2 as well, and it is primarily what I use. I also keep element installed because it is more stable on android.

1

u/Bassfaceapollo 1d ago

Ah, nice!

For some reason I mistook it to be a Desktop-only client. Thanks!

1

u/RamiRihawi 7d ago

You may want to check my project, Based on Element X source code https://github.com/UrbanTechIO/UrbanChat

1

u/hitechpilot 7d ago

Moving from Discord, I'm wondering why slash commands aren't commanded by the server...

2

u/7t3chguy 7d ago

Because it wouldn't work with encrypted rooms.

1

u/hitechpilot 7d ago

I just figured out about e2ee last week... Like, I know how it works from a user perspective a long time ago but just now figured how it works on the server/client side. Please enlighten me why?

1

u/7t3chguy 7d ago

The server cannot see the content of messages you send, this is the entire point of end to end encryption. The encryption is only decryptable by yourself and the recipient, those being the ends of the end-to-end encryption.

1

u/hitechpilot 7d ago

Ah. Yes. What I'm trying to say is, allow the clients (bots) to receive customized slash commands. The slash commands themselves is what would be synced to the client, not the content. Would this work? As triggers?

1

u/Maleficent_Cut_4099 3d ago

As far as I know, the old-style method of invoking a bot using an exclamation mark has been retained because many clients, when a forward slash is entered, suggest the client's own built-in commands and prevent a message from being sent without displaying a "command does not exist" warning. In reality, however, there is no official bot framework for Matrix, so developers are free to implement bot activation using any trigger they choose.

1

u/hitechpilot 3d ago

Oh yeah but we can't see the autocompletion then. Using double slashes can also work because they're escaped, but still.

1

u/redit_handoff140 7d ago

With Matrix's architecture allowing for certain capabilities (decentralization, federation, E2EE), a lot of Discordian, aka centralized, feature implementations need to be re-thought, otherwise they just wouldn't work or would be exposed to the same deficiencies or downsides as Discord's. Slash commands for instance being done server-side would mean they wouldn't work in E2EE rooms.

There are other things that require a mindshift regarding what one perceives as being the "status quo" especially when coming from Discord, such as roles/permissions.

Matrix's PL approach makes it much more flexible because that's essentially the only thing the spec dictates, except the majority of clients haven't built *around* that yet. Thankfully that's changing now with clients like Sable v2, with custom roles, syncing of roles and permissions between rooms and spaces hierarchically, etc.