element-hq / element-desktop

A glossy Matrix collaboration client for desktop.
https://element.io
GNU Affero General Public License v3.0
1.16k stars 266 forks source link

Menu overhaul and window decoration integration #773

Open fbruetting opened 5 years ago

fbruetting commented 5 years ago

Description

It would be really good if Riot could make use of the GTK header bar features and integrate buttons and maybe also other widgets of the custom top bar into the GTK header bar. Currently, it looks totally out of place on Gnome desktops. Yes, you would have double work as there is both GTK and Qt, but if every app now starts to create its own totally different menu layout, the Linux desktop would become a total mess! Please consider this!

I also filed the same bug report against other programs which don’t integrate, like for example MarkText. Just place Riot, MarkText and a GTK-native program like Gnome Builder next to each other and you would immediately recognize the chaos! This is really ugly and would never attract people to use Linux over say MacOS.

Here are my main issues with your current menu layout:

Please consider my points, next week I can sketch this up if this would help!

Version information

Thovthe commented 5 years ago

Look at Fractal if you want a GTK client, it's an official GNOME project. Riot doesn't use native toolkits except, possibly, on mobile.

fbruetting commented 5 years ago

I already tried, but there is quite a lot missing… Still, some of my points are about general UX and logic, which still could really be improved.

FrobtheBuilder commented 5 years ago

Clientside window decorations in Electron are pretty easy, you just hide the window border, set a draggable region and add window buttons to the top bar as web content. Plenty of other applications do it that way and I think that would be the best way forward. Though it wouldn't really match GTK styling, that's usually how Electron apps do it. It's also fairly OS agnostic if the buttons are just your own assets, and you can switch them out for say mac os with ones that look more like the stoplight. It would make the application look a lot more polished, in my opinion.

For example, take a look at how Rainway does it: image

And similarly, Parsec: image

ara4n commented 5 years ago

yup, we tried to squeeze it into 1.0, but ran out of time to make it look good. chromeless window will happen.

turt2live commented 5 years ago

worth noting that the light theme blends in awkwardly with windows: image

claell commented 2 years ago

@t3chguy, as you dealt with the duplicate, can you triage this issue? This doesn't have all proper labels applied and possibly some other parameters can be set for it.

ArtexJay commented 2 years ago

This comment is just for color correcting the titlebar to match the system: Cinny (an alternative desktop app for Matrix/Element) has a working native titlebar color that matches to the systems titlebar in my case Windows and it's theme (dark/light mode). This helps blend in the titlebar with the dark/light mode of the app and desktop system. This tells me this is totally do-able for Windows at least.

t3chguy commented 2 years ago

Of course it is doable, heck even supported by Electron. Just hasn't yet been done by the designers so won't be implemented without design

ArtexJay commented 2 years ago

Of course it is doable, heck even supported by Electron. Just hasn't yet been done by the designers so won't be implemented without design

would rather just have it default then, don't need any special design that I personally probably will not like

t3chguy commented 2 years ago

Designers are more likely to want something better integrated, like the examples at https://github.com/vector-im/element-desktop/issues/773

ArtexJay commented 2 years ago

Designers are more likely to want something better integrated, like the examples at #8749 (comment)

eh those look too blocky and ugly for my tastes and as long as the min,max,close buttons look normal and not like that then i'd be ok with it. If they did what Apple has done and what MS is pushing for whilst still having the app blend into the OS then i'm all for it. I've seen too many times when devs made their own titlebar design only for it look ugly or out of place on the OS, i'd include discord as part of that. One of the reason why i didn't like using discord's client.

fcwoknhenuxdfiyv commented 2 years ago

This comment is just for color correcting the titlebar to match the system: Cinny (an alternative desktop app for Matrix/Element) has a working native titlebar color that matches to the systems titlebar in my case Windows and it's theme (dark/light mode). This helps blend in the titlebar with the dark/light mode of the app and desktop system. This tells me this is totally do-able for Windows at least.

@ArtexJay I just looked at Cinny. It's not built with Electron but rather with Tauri https://tauri.app. I skimmed over the website and it looks like it could be a nice alternative to Electron as it uses system web libraries so the binaries are a lot smaller.

t3chguy commented 2 years ago

@fcwoknhenuxdfiyv in practice that does not seem to be the case: https://github.com/vector-im/element-desktop/issues/771 once you account for the native bits missing in this comment, see also other details like RAM usage and it being slow & laggy when running EW.

fcwoknhenuxdfiyv commented 2 years ago

@t3chguy I've been using it for a few days on Windows 11 and it's very responsive.

Cinny is currently using 215MB, Nheko 140MB and Element Desktop is using 260MB. On disk, Cinny is using 10MB, Nheko 130MB and Element Desktop uses 623MB!

What are the missing native bits to look out for? Cinny has notifications - granted not as pretty as Element Desktop.

t3chguy commented 2 years ago

Cinny is not Element though, it doesn't have the full featureset, you're comparing apples and grapes. The comparison in the linked comment is between Element Web in Tauri, and Element Desktop in Electron (Element Desktop is Element Web + Seshat + SQLCipher + Keytar)

Seshat + SQLCipher power encrypted message search Keytar powers system keyring access to store your data more securely (on secure enclave if your system supports that)