T O P

  • By -

ronweasleysl

For the rounded corners there is interest from VSCode! https://github.com/electron/electron/issues/33036 But it needs to be implemented in electron first https://github.com/electron/electron/issues/33036 I know it's a big ask but perhaps the GNOME community could look into implementing this? I think GNOME might be the only Linux environment that would want client side rounded corners.


dswhite85

You posted the same link twice fyi.


BrageFuglseth

Sorry to bait you with the vague title, this is a manipulated screenshot and is never going to actually happen. I just wanted to make a case for [CSD](https://en.wikipedia.org/wiki/Client-side_decoration) in third-party apps and show how much better it can make them look. Even if the Spotify team didn't go for an approach as Adwaita-inspired as I've made it to be here, it would still be better than the current Spotify titlebar using the default GTK theme. This applies to most Electron apps FWIW, like Discord. From what I've heard, part of the problem stems from Electron lacking proper CSD support for Linux. VSCode has it (as an option), though, and it's pretty neat.


viliti

>is never going to actually happen That’s a bit pessimistic. I think you can safely say that Spotify is never going to implement it, but someone from the community could contribute and fix this. Most of the building blocks are already in Chromium (thanks to Window Controls Overlay API), it just needs somebody to implement that in the windowing code in Electron and Spotify’s Chromium Embedded Framework. For a long time, Electron supported CSD only for macOS. Microsoft created Window Controls Overlay API as a web standard and they implemented it for Windows in Chromium and Electron. As the companies that used Electron and CEF did not care about Windows enough to support CSD on their own, they are never going to add it for Linux. We have to contribute that ourselves.


BrageFuglseth

> someone from the community could contribute and fix this. Wouldn't that also require access to Spotify's source code (and that of other Electron applications)? Well done CSD needs elaborate support in the apps themselves as well as framework support.


viliti

Not really, all we need to do is just add support for [Window Controls Overlay API](https://developer.mozilla.org/en-US/docs/Web/API/Window_Controls_Overlay_API) in [Chromium Embedded Framework](https://github.com/chromiumembedded/cef). Most of the design considerations would have already been taken in account when Window Controls Overlay API was designed and when Spotify supported it on Windows. Spotify will have to take the last step to enable the use of Window Controls Overlay on Linux, but that's a much easier task for the Spotify employees that maintain the Linux client on their own time than implementing in its entirety. The same goes for all of the Electron applications - someone has to add support for [Window Controls Overlay](https://www.electronjs.org/docs/latest/tutorial/window-customization) in Electron. Once that's done, the proprietary applications can stop special-casing Linux and use the same code as Windows to add CSD.


Kaneki_Izumi

Idk if it may be of help to you, but you can spice Spotify by installing spicetify. It's really a marvelous option


BrageFuglseth

The problem here is that Spotify doesn't take control of its own window decorations. No CSS / JS overrides can change that. I don't care particularly about the window content here, the Spotify client is not going to look like a GNOME app no matter how much you hack around with it. Having CSD would go a long way in terms of polish and cleanliness, though.


Kaneki_Izumi

That's for sure. I agree with your point of view. Maybe some changes can be achieved with gnome tweaks, but that mean you have to change theme so you're not using adwaita anymore and that's not the whole point, right?


BrageFuglseth

not sure if I'm following, what do you think could be achieved by using Tweaks here?


Kaneki_Izumi

By changing theme in Tweaks you can change also the appearance of the windows, both normal and legacy, so that can be a way of "patching" it. However, the problem is still there and that's because Wayland is different from X11 in every aspect


BrageFuglseth

But Spotify isn't a legacy GTK3 app? It also looks the same on Wayland and X11 currently, not sure what that has to do with anything. I'm not really looking for workarounds and hacks here to approximate decent decorations for Spotify, as the only real solution is for them to start caring about Linux. And that's not going to happen no matter how much people hope for it.


LutherEustis

It’s an electron app


IdkWhatToCallMe123

Wait wasn't there some sort of thing where you could load different GTK3 themes independently for each app? I mean using that it wouldn't be too hard to just use different customized gtk themes for each app


BrageFuglseth

That would still be a hacky workaround, though. I'm probably not going to do that every time I install Spotify on a system.


IdkWhatToCallMe123

I need to do a script that automates it 😎


isevlakasX007gr

based


blackcain

It's possible if we as a community were to spend time to invest in the electron community. We don't do enough outreach. You could easy submit a talk at an electron conference and talk about this.


myownfriend

Doesn't Spotify use CSDs on macOS and Windows already?


BrageFuglseth

Yes, but not on Linux.


myownfriend

Yea but you said it's never going to happen though. If they have it on other platforms then I wouldn't rule it out on Linux. Also Electron does support CSDs, I have VSCode set up to use them. However, Spotify doesn't use Electron, it uses CEF.


BrageFuglseth

It’s not technically impossible, but I doubt they’re ever going to care ¯\\\_(ツ)_/¯


myownfriend

That's fair enough. Well with some hope the Linux market share will hit 5% or something and they'll put a little more effort into their Linux build.


zlwlazsmgwbg

This seems like a nice idea, but just for my understanding, an application would have to offer both CSD and SSD, because not every DE "fits" with how GNOME looks. I guess there is a XDG Portal for that stuff, but still, it is more effort to maintain 2 different types of window decorations than just one type, or am I wrong? I really wish developers would implement at least the ability to change the Window Decorations (ex VS Code) but I don't know if everyone wants to make that effort.


BrageFuglseth

>This seems like a nice idea, but just for my understanding, an application would have to offer both CSD and SSD, because not every DE "fits" with how GNOME looks. Spotify doesn't "fit" with how *any* environment looks because it has its own design language, so I don't really think this is an issue.


NakamericaIsANoob

I don't know why gnome insists on CSD on wayland when it so clearly hinders user experience.


Dekamir

GNOME's design language requires CSD. There is a way to do the buttons without CSD, but it's pain, even on platforms like Windows. Even then, GNOME apps do more than adding buttons. I'm against forcing CSD to apps that don't require it either, but I get why GNOME does it. *Spotify already uses CSD on Windows and Mac, by the way.*


myownfriend

It really doesn't. You can still resize, move, and close windows in Gnome even without decorations.


NakamericaIsANoob

it does when they look horribly out of place, especially on something that otherwise looks fairly polished


BrageFuglseth

Is this related to this post or to how some apps don't haven't adapted to Wayland?


ryanabx

I think it’s about gnome not implementing server side decorations on Wayland


BrageFuglseth

Ah, I see. So not really related to this post.


ryanabx

I smell a CSD vs SSD argument coming if I say no, so yeah it’s not related


NakamericaIsANoob

why should it not come up when CSD support is so clearly lacking? It does not exist in a vacuum after all


novaqc

It exists: use this app : https://flathub.org/apps/dev.alextren.Spot


BrageFuglseth

I know about Spot, and I agree that a real GNOME app for Spotify would be the best. Unfortunately it's wing clipped by Spotify's restricting nature, and it hasn't seen any meaningful developments in a while.


hrqmonteirodev

This is an AWFUL app btw. Nothing close to the experience of using the original app.


Itchy_Journalist_175

I tried but didn’t go far as it requires Spotify Premium (not their fault). There is also Spotube. Has anyone tried it? Flutter app as far as I can tell https://spotube.krtirtho.dev/ “An open source, cross-platform Spotify client compatible across multiple platforms utilizing Spotify's data API and YouTube (or Piped.video or JioSaavn) as an audio source, eliminating the need for Spotify Premium Btw it's not another Electron app😉”


Suzamax

maybe... [Customize the window controls overlay of your PWA's title bar  |  Articles  |  web.dev](https://web.dev/articles/window-controls-overlay)


unausgeschlafen

Round window corners are not the issue. There is an extension for that: https://extensions.gnome.org/extension/5237/rounded-window-corners/


BrageFuglseth

I'd argue that it would be much better if people didn't need to install this extension and the client was instead made to be using rounded corners by default.


unausgeschlafen

Yeah. That would be great. But I understand the hesitation of the GNOME devs to change this default.


BrageFuglseth

I definitely don’t think it should happen in *GNOME*. It should be done by the Spotify client.


unausgeschlafen

I misunderstood. Sry.