[HN Gopher] GTK4 Matrix Client
___________________________________________________________________
GTK4 Matrix Client
Author : ushakov
Score : 87 points
Date : 2022-04-10 16:34 UTC (6 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| unicornporn wrote:
| Like almost every client out there it has no support for e2ee. I
| was happy to find https://nheko-reborn.github.io (Qt based).
| Arathorn wrote:
| 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.
| JCWasmx86 wrote:
| Or an alternative GTK4 Matrix client:
| https://gitlab.gnome.org/GNOME/fractal written in Rust, although
| a bit of WIP
| ushakov wrote:
| thanks for sharing, i know fractal but didn't knew they
| upgraded to GTK4
| smoldesu wrote:
| 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.
| CameronNemo wrote:
| 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.
| JCWasmx86 wrote:
| 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
| CameronNemo wrote:
| The featured go gtk4 client also seems wip. Doesn't even
| support e2ee, which fractal does support.
| torstenvl wrote:
| 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.
| megous wrote:
| gtk apps can be run on the server via broadway.
| karmanyaahm wrote:
| With remote computing (running the OS and even webapps remotely
| https://www.cloudflare.com/products/zero-trust/browser-
| isola...) becoming more and more popular, I'd imagine it's a
| case of better safe than sorry.
| Arathorn wrote:
| 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 :)
| k8sToGo wrote:
| 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.
| IceWreck wrote:
| This still needs some dev (lacks E2EE and Notifications) but
| looks good otherwise.
|
| Its written in Go and it looks like the author generates their
| own gtk4 to go bindings. https://github.com/diamondburned/gotk4
| Arathorn wrote:
| This looks really promising. I'd love to know why the author
| wrote their own SDK rather than using gomautrix or similar (and
| so getting E2EE for free)
| jimmygrapes wrote:
| 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).
| feanaro wrote:
| > 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.
| jimmygrapes wrote:
| 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.
| stevenicr wrote:
| 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.
| Arathorn wrote:
| 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 :)
| ccakes wrote:
| 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.
| CameronNemo wrote:
| Doesn't support e2ee, so why would I use it over fractal?
| GekkePrutser wrote:
| 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.
| JCWasmx86 wrote:
| Element has an IRC mode, at least for the messages
| GekkePrutser wrote:
| 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.
| viccuad wrote:
| 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.
| the_duke wrote:
| You can sort of create or your own threaded channel list by
| using spaces.
|
| That use case was actually mentioned in the spaces
| announcements.
|
| Of course the UX for spaces isn't exactly great either atm.
| GekkePrutser wrote:
| 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.
| feanaro wrote:
| I'm curious, why don't spaces work for you?
| foresto wrote:
| 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.
| akselmo wrote:
| Quaternion might be something you like:
| https://matrix.org/docs/projects/client/quaternion
| GekkePrutser wrote:
| Thanks I'll try that!
| unicornporn wrote:
| Have they implemented e2ee yet? https://nheko-
| reborn.github.io has.
| ognarb wrote:
| 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.
|
| Oblivious some help would be welcome. Here is the guthub
| repo https://github.com/quotient-im/libquotient/
| unicornporn wrote:
| Very good news, thanks for the update.
| throwmeariver1 wrote:
| 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.
| reayn wrote:
| 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.
|
| 1. https://matrix.org/docs/projects/client/weechat-matrix
| GekkePrutser wrote:
| 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.
| jszymborski wrote:
| I could be wrong because I never used them myself, but
| isn't that Spaces feature supposed to address this at least
| in part?
| WhatIsDukkha wrote:
| So yes this is a big issue.
|
| What we are actually waiting for the fix?
|
| 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.
| feanaro wrote:
| Just for everyone else reading, the modern Matrix Rust stack
| referred to here is the matrix-rust-sdk:
| https://github.com/matrix-org/matrix-rust-sdk
| BlueTemplar wrote:
| Wouldn't Thunderbird be pretty dense ?
| jimmygrapes wrote:
| 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.
| ognarb wrote:
| NeoChat support this. You can right click on a room in the
| list to open it in a new window.
___________________________________________________________________
(page generated 2022-04-10 23:00 UTC)