xou816 / spot

Native Spotify client for the GNOME desktop
MIT License
2.29k stars 123 forks source link

Sidebar redesign #615

Open bragefuglseth opened 1 year ago

bragefuglseth commented 1 year ago

As discussed in #611, the current sidebar is a little weirdly organized. We want to improve the legibility and aesthetics of it. The user's favorited things are sorted into three library sections, and the playlist section shows playlist covers instead of the same icon over and over again.

In addition, the playlists should be organized in the order they have been played in recently. This seems to require some bigger changes to the app, though, so it's out of scope for this issue.

Initial mockup

mockup

Diegovsky commented 1 year ago

Would love to work on this. If someone else wants to do it, ping me and I'll assign you instead

Diegovsky commented 1 year ago

Libadwaita is getting new widgets! Among them, there's a Sidebar widget that Spot will need to adopt, as the current way of doing sidebars will be deprecated. This is still lies a little in the future, since the sidebar widget isn't in stable Libadwaita yet, I just thought I should make sure that you are aware of it.

I read the post you linked but it only talks about tabbed views? Not sure this applies to Spot currently. Also, any docs you can point me to?

bragefuglseth commented 1 year ago

The post includes this picture of the new widget (currently called Dual Pane View) in use: new-sidebar

It's also elaborated upon a little further in this Mastodon post.

No docs yet, as it's still in development. There will probably be made some explanatory blog posts and guides when the widgetry is closer to being finished.

camelCaseNick commented 1 year ago

Spotify uses the term Library for everything yours, including what they call Liked Songs just named Songs here under Library. I think, I would be beneficial to Spot to align more with Spotify's language.

camelCaseNick commented 1 year ago

Spotify has directory-like playlist grouping, including subdirectory capability. The mock-up does not reflect that. Should it? Or is it intentional to have a flat list?

xou816 commented 1 year ago

The API doesn´t expose the folder structure AFAIK

Diegovsky commented 1 year ago

Spotify has directory-like playlist grouping, including subdirectory capability. The mock-up does not reflect that. Should it? Or is it intentional to have a flat list?

Is this even used in their official clients? I have never seen that. Are you able to provide me any links for that?

Diegovsky commented 1 year ago

The post includes this picture of the new widget (currently called Dual Pane View) in use: new-sidebar

It's also elaborated upon a little further in this Mastodon post.

No docs yet, as it's still in development. There will probably be made some explanatory blog posts and guides when the widgetry is closer to being finished.

Looks super nice. Eagerly awaiting for it. For now, I'm going for a "custom" widget that wraps around the sidebar part. This would allow for seamlesly changing it to the dual view when it is launched.

bragefuglseth commented 1 year ago

Spotify uses the term Library for everything yours, including what they call Liked Songs just named Songs here under Library. I think, I would be beneficial to Spot to align more with Spotify's language.

We could change the label to "Liked Songs". The only disadvantage is that it would look a little out-of-place in Spot specifically: Why are only songs displayed with the "liked" prefix? Spotify's terminology is a little weird in general, but I see the benefits of following it. I wouldn't change the label of this personally, as I think it's understandable enough that these are the user's liked songs, but if the general consensus here is that we should do it, it's not that important to me :sweat_smile:

I don't see any big issues with having the playlists in their own sidebar section. This is how the official Spotify desktop client does it as well, in fact it doesn't even have a label for the section :woozy_face:

Screenshot from 2023-02-27 18-04-35

bragefuglseth commented 1 year ago

Spotify has directory-like playlist grouping, including subdirectory capability. The mock-up does not reflect that. Should it? Or is it intentional to have a flat list?

Is this even used in their official clients? I have never seen that. Are you able to provide me any links for that?

I remember it! I had a folder filled with Lo-fi hip hop playlists. The folders aren't present in the current client downloaded from Flathub, though. I think Spotify removed the functionality for it after switching to the web interface for their desktop apps.

Diegovsky commented 1 year ago

That's a shame. I haven't used spotify for that long so I wouldn't know. I would love to have the ability to do that :)

alexandre-eliot commented 1 year ago

I have updated Spotify recently and it seems to me like the directory-like playlist grouping functionality is still active ( running on Elementary OS ). image image

bragefuglseth commented 1 year ago

Huh, ok. It still isn't exposed in the API, unfortunately, so it would have to be an in-house solution

Diegovsky commented 1 year ago

That is funny. I have never heard of it before but it is good to know it exists

Diegovsky commented 1 year ago

Btw, I am gonna take a while to have time to work on this. And all of the things I'm supposed to do. If anyone wants to take over, feel free to @ me. Would be glad to mentor/help/advise and review.

bragefuglseth commented 1 year ago

Adw.NavigationSplitView has landed in the upcoming 1.4 release of Adwaita. Any work on implementing this now should probably make use of the widget.

Diegovsky commented 1 year ago

Ack. I'll probably work on this sometime on july as that is when I my semester ends

bragefuglseth commented 1 year ago

Great!

XGZepto commented 1 year ago

It seems everything (Flap, Leaflet, etc) is migrating to Breakpoints after Libadwaita 1.4, which could potentially solve some adaptive layout for spot (and make the redesign thing easier?)

camelCaseNick commented 1 year ago

@XGZepto That is exactly what the two comments above are talking about. Adw.NavigationSplitView is a new widget to replace the old ones (and is breakpoint capable). In some respects, it Spot can benefit of a more coherent behaviour then.

Diegovsky commented 11 months ago

Thank you for the advice @camelCaseNick , this will surely help me a lot since I'm not very experienced with adw and gtk yet :)

camelCaseNick commented 11 months ago

@Diegovsky, if that's the case, feel free to reach out to me with Spot related GTK and Adwaita questions.