[GH-ISSUE #535] [Feature]: Ability to further customize layout #1245

Open
opened 2026-03-14 14:05:16 +03:00 by kerem · 6 comments
Owner

Originally created by @NickTheWilder on GitHub (Aug 7, 2024).
Original GitHub issue: https://github.com/aome510/spotify-player/issues/535

Describe the solution you'd like
I personally never use Albums & Artists in Spotify, only playlist to sort songs. It would be nice to be able to

  1. Remove columns
  2. Add different columns to replace them (seems more complicated but a nice to have)

Describe alternatives you've considered
Adjusting the layout of playlists/albums in the config to potentially hide the columns

ℹ️ FWIW the layout settings don't work for me, Win11 - PowerShell v7.4.4 - scoop v0.19.1
Current settings:

# omitted other settings above
[layout]
library = { playlist_percent = 75, album_percent = 12 }
playback_window_position = "Top"

Additional context
I'd start working on this if I had experience with Rust and open a PR but no experience here. Really enjoy what's going on so far.

Example to further describe what I'm talking about

Current view:
image

Proposed view: (or smth similar)
image

Originally created by @NickTheWilder on GitHub (Aug 7, 2024). Original GitHub issue: https://github.com/aome510/spotify-player/issues/535 **Describe the solution you'd like** I personally never use Albums & Artists in Spotify, only playlist to sort songs. It would be nice to be able to 1. Remove columns 2. Add different columns to replace them (seems more complicated but a nice to have) **Describe alternatives you've considered** Adjusting the layout of playlists/albums in the config to potentially hide the columns ℹ️ FWIW the layout settings don't work for me, Win11 - PowerShell v7.4.4 - scoop v0.19.1 Current settings: ```toml # omitted other settings above [layout] library = { playlist_percent = 75, album_percent = 12 } playback_window_position = "Top" ``` **Additional context** I'd start working on this if I had experience with Rust and open a PR but no experience here. Really enjoy what's going on so far. Example to further describe what I'm talking about Current view: ![image](https://github.com/user-attachments/assets/00cc9e86-5cce-4152-a525-d2815cc2b4a9) Proposed view: (or smth similar) ![image](https://github.com/user-attachments/assets/7c2e5107-27dc-4ded-8d59-9c06e8dfc669)
Author
Owner

@sewnie commented on GitHub (Aug 7, 2024):

Would love to see this, it bridges the gap between the official spotify client and the better TUI counterpart.

<!-- gh-comment-id:2273648317 --> @sewnie commented on GitHub (Aug 7, 2024): Would love to see this, it bridges the gap between the official spotify client and the better TUI counterpart.
Author
Owner

@DOD-101 commented on GitHub (Aug 13, 2024):

I'm looking into implementing this.

FWIW the layout settings don't work for me, Win11 - PowerShell v7.4.4 - scoop v0.19.1

That's strange. Are you on the latest git?

<!-- gh-comment-id:2287041456 --> @DOD-101 commented on GitHub (Aug 13, 2024): I'm looking into implementing this. > FWIW the layout settings don't work for me, Win11 - PowerShell v7.4.4 - scoop v0.19.1 That's strange. Are you on the latest git?
Author
Owner

@arvvnd commented on GitHub (Aug 14, 2024):

The playback settings don't seem to work for me either, but in my case I tried to change the playback_window_position = Bottom.
I run kitty on arch and I'm using the AUR package spotify-player-full-pipe.

inside my app.toml :

[layout]
library = { playlist_percent = 40, album_percent = 40 }
playback_window_position = "Bottom"
#playback_position = "Bottom"
playback_window_height = 6
#playback_window_height = 12

I launch spotify-player in kitty using the command spotify_player and connect to my own client ID. I am able to edit other settings on the app.toml file like theme, icons, etc., and observe these changes. However, when I edit the [layout] settings, nothing changes. I even changed playback_window_height from its default value of 6 to 12 to see if the [layout] settings would take effect, but the playback window size remained the same. After making changes to app.toml, I save the file, restart kitty, and open the player with the spotify_player command to check for changes.

I can open a separate issue if needed. I'm adding a comment here since the OP of this issue also mentions that their layout settings are not working. Also, I am not completely sure if it's a fault on my end or an actual bug. I can provide my entire app.toml file if anyone wants to review it!

<!-- gh-comment-id:2287906588 --> @arvvnd commented on GitHub (Aug 14, 2024): The playback settings don't seem to work for me either, but in my case I tried to change the `playback_window_position = Bottom`. I run kitty on arch and I'm using the AUR package `spotify-player-full-pipe`. inside my app.toml : ``` [layout] library = { playlist_percent = 40, album_percent = 40 } playback_window_position = "Bottom" #playback_position = "Bottom" playback_window_height = 6 #playback_window_height = 12 ``` I launch spotify-player in kitty using the command `spotify_player` and connect to my own client ID. I am able to edit other settings on the app.toml file like theme, icons, etc., and observe these changes. However, when I edit the [layout] settings, nothing changes. I even changed `playback_window_height` from its default value of 6 to 12 to see if the [layout] settings would take effect, but the playback window size remained the same. After making changes to app.toml, I save the file, restart kitty, and open the player with the `spotify_player` command to check for changes. I can open a separate issue if needed. I'm adding a comment here since the OP of this issue also mentions that their layout settings are not working. Also, I am not completely sure if it's a fault on my end or an actual bug. I can provide my entire app.toml file if anyone wants to review it!
Author
Owner

@DOD-101 commented on GitHub (Aug 14, 2024):

This Issue primarily focuses on implementing the requested feature. So there should be a separate issue if there are any bugs with the existing code.

That being said, it sounds like this isn't an actual bug in the code, at least in your case @arvvnd.
The problem is that spotify-player-full-pipe is built off of the latest stable release, and the changes to the layout config haven't yet been released. They are only available if you build from source on the master branch.

<!-- gh-comment-id:2288336259 --> @DOD-101 commented on GitHub (Aug 14, 2024): This Issue primarily focuses on implementing the requested feature. So there should be a separate issue if there are any bugs with the existing code. That being said, it sounds like this isn't an actual bug in the code, at least in your case @arvvnd. The problem is that `spotify-player-full-pipe` is built off of the latest stable release, and the changes to the layout config haven't yet been released. They are only available if you build from source on the master branch.
Author
Owner

@arvvnd commented on GitHub (Aug 14, 2024):

Thanks for the clarification @DOD-101 I guess it was indeed an error on my part. I prefer to install packages wherever possible and the playback window positioning is only a QoL upgrade(for me). I'm okay with waiting for the layout config update to spotify-player-full-pipe.

<!-- gh-comment-id:2288715301 --> @arvvnd commented on GitHub (Aug 14, 2024): Thanks for the clarification @DOD-101 I guess it was indeed an error on my part. I prefer to install packages wherever possible and the playback window positioning is only a QoL upgrade(for me). I'm okay with waiting for the layout config update to `spotify-player-full-pipe`.
Author
Owner

@aome510 commented on GitHub (Aug 17, 2024):

The library page in the official Spotify shows a side bar listing all playlists, albums, etc and a main window to display the selected item.

My idea to implement this feature for spotify_player is to add a "preview" window to the library page which renders a context window for the selected item. There are a few things to be considered:

  • this preview window should be configurable and opt-in/opt-out.
  • this preview window can be rendered vertically or horizontally w.r.t the main library page. For example, in the official app, the main display window is rendered horizontally.
  • should this window be not focusable (preview only)? In other words, user will need to ChooseSelected to go into the corresponding page
  • how to re-use codes in render_context_page to render the preview window?
    github.com/aome510/spotify-player@04f17631ce/spotify_player/src/ui/page.rs (L188)
  • how to handle long playlists, i.e. should it just load the first page of the playlist? Currently, the client does load all the pages of a playlist to render a playlist page (also true for artists, albums, etc). However, loading all data is not ideal for preview because it's slow.

This seems to be a complicated yet interesting feature to add into spotify_player. That said, I'll not work on this cause I don't really need one, but anyone feels free to pick it up. I'll try to assist as much as I can.

<!-- gh-comment-id:2294994168 --> @aome510 commented on GitHub (Aug 17, 2024): The library page in the official Spotify shows a side bar listing all playlists, albums, etc and a main window to display the selected item. My idea to implement this feature for `spotify_player` is to add a "preview" window to the library page which renders a context window for the selected item. There are a few things to be considered: * this preview window should be configurable and opt-in/opt-out. * this preview window can be rendered vertically or horizontally w.r.t the main library page. For example, in the official app, the main display window is rendered horizontally. * should this window be **not focusable** (preview only)? In other words, user will need to `ChooseSelected` to go into the corresponding page * how to re-use codes in `render_context_page` to render the preview window? https://github.com/aome510/spotify-player/blob/04f17631ce7bfdfe46954ce1711fc81b031832b3/spotify_player/src/ui/page.rs#L188 * how to handle long playlists, i.e. should it just load the first page of the playlist? Currently, the client does load all the pages of a playlist to render a playlist page (also true for artists, albums, etc). However, loading all data is not ideal for preview because it's slow. This seems to be a complicated yet interesting feature to add into `spotify_player`. That said, I'll not work on this cause I don't really need one, but anyone feels free to pick it up. I'll try to assist as much as I can.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/spotify-player#1245
No description provided.