Help Wizard

Step 1

NEXT STEP

Wayland support

Wayland support

Hi,

Can you release a linux package with ozone support built so that we can use the client under Wayland? There have been posts requesting this in the past because it is highly anticipated.

 

It shouldn't be that complicated it seems:

https://www.collabora.com/news-and-blog/blog/2019/05/08/cef-on-wayland-upstreamed/

https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/ozone_overview.md

 

Best,

Reply
76 Replies

I see 1.2.25.1011 is available, I was able to install it just fine on Mantic (23.10), and I see it has Chrome 118 in it. After enabling Wayland via the desktop shortut, the same three issues I noticed on the prior Spotify build under Lunar (23.04) still exist:

1) I still get the Windows XP framing
2) While the Settings menu looks good, no pulldowns inside of Settings work. I see the pulldown flash in the very upper left of my usable desktop for about ~50 ms, however long the open & close animation takes. 

3) The running dock icon still isn't recognized as Spotify

However it runs natively under Mantic and that's the best xmas present I could have asked for, after using the web client the last few weeks. Thank you!!


PS the web client isn't horrible, kudos to that team, they do a very good job; the fatty client is just a better experience if you have a device that can run it. 

 

cliffniff_0-1701623617359.png

If there was a way to remove this blue frame, it would be perfect. Also hopes CSD comes to linux just like in windows.

Hopefully the 1/6th layoff Spotify did today (on top of the 8% earlier this year in two other layoffs) didn't touch any of the spotify devs! 

What a load of garbage - cutting another 1/6th of the company to reduce 1/50th of the operating expenses at best. 

I'm too struggling to find a solution to remove this chromium window decoration and titlebar.

Great to see the flurry of activity here recently! The only major remaining issue keeping me using XWayland for Spotify is the weird border, presumably caused by Gnome intentionally dropping support for server-side decorations. This has been mentioned a few times above, but I don't see any response from Spotify developers: is it a recognised issue with a known fix?

 

PS. For some Electron apps like VSCode, I can force Wayland support by adding the lines `--enable-features=WaylandWindowDecoration` and `--ozone-platform-hint=auto` to `~/.config/electron25-flags.conf`. And later versions of Electron are adding support for environment variables which will make this even easier. There's no surprise that this doesn't work for Spotify since it doesn't strictly use Electron, and I think bundles its own version of CEF anyway. But I'm wondering whether there's any equivalent? Otherwise I guess I can just copy and modify the `.desktop` file.

For what it's worth, Spotify uses client side decorations on Windows and macOS so I'd imagine proper support for Wayland would come with that.

 

Gnome also has ways to control application without decorations. While holding down the Super key, left click and drag a window to move it and middle click and drag to resize it.

pgomes, it looks like CEF is trying to use the fallback theme for window decorations? https://github.com/chromium/chromium/blob/main/ui/linux/linux_ui_factory.cc#L110

 

Looks like Chromium added the ability to pass --ui-toolkit from CLI, so maybe spotify --ui-toolkit gtk would make it look normal once Spotify upgrades to CEF version 118.0.5955.0+ that supports it (https://github.com/chromium/chromium/commit/09e3fa46487ad43113ae03d9e5ca9ba1aa8ae756).

Hey ZVTNexus, I'll try to release a new version with 118+ soon. I update you here

Version 1.2.31 is out with CEF 121

Thanks!

 

Also I was looking at why there's no WMClass associated with the Spotify app when launched through Wayland, it doesn't seem to ever set it's app ID.

WAYLAND_DEBUG=1 spotify --ozone-platform=wayland

```

[ 5830.953] -> xdg_toplevel.set_app_id("")
[ 5830.955] -> xdg_toplevel.set_title("Spotify")

```

The app ID needs to be set so the compositor can associate the window with the relevant desktop file, and grab the app's name and icon.

 

 

We are already aware of this. Chromium sets is in a cumbersome way, so we are checking alternatives


@ZVTNexus wrote:

pgomes, it looks like CEF is trying to use the fallback theme for window decorations? https://github.com/chromium/chromium/blob/main/ui/linux/linux_ui_factory.cc#L110

 

Looks like Chromium added the ability to pass --ui-toolkit from CLI, so maybe spotify --ui-toolkit gtk would make it look normal once Spotify upgrades to CEF version 118.0.5955.0+ that supports it (https://github.com/chromium/chromium/commit/09e3fa46487ad43113ae03d9e5ca9ba1aa8ae756).



But is this even relevant here? This looks like it's only for native dialogs in case of system integration. Like print-dialog.

Yeah it wasn't. It made the title in the window decoration change fonts though. 

I'm not even sure what provides this decoration. CEF should only be the "embedded" part inside the window, not a provider of the decoration. This usually is done by a native framework. But this doesn't look like GTK or Qt.

 

Please correct me if i'm wrong!

Open bug at Chromium.org Issues if there is some Chrome problem, but maybe some weird setup with some Chrome Dev help is maybe needed 🙂

I dont think this is chromium problem.

 

Chromium is the technology used by CEF, but CEF is only responsible to the content of the window. It's called "Chromium Embedded Framework" because you use it to embed browser content into your framework, like Qt, .Net, GTK, … . It's not used to draw the whole window with it - for this purpose there is electron.

 

So it would be good to know from a Spotify person what is used to create the window decoration.

Because it highly possible that this can't be fixed by some change in chromium.

 

 

-----

 

Not really related, but for people that suffer right now[1] because of this limitation, Spotube[0] as alternative "sort-of-spotify client" works very well and can run wayland native.

*merged with last comment ↑*

Suggested posts