aome510 / spotify-player

A Spotify player in the terminal with full feature parity
MIT License
3.38k stars 147 forks source link

[Feature]: Ability to further customize layout #535

Open NickTheWilder opened 1 month ago

NickTheWilder commented 1 month ago

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

apprehensions commented 1 month ago

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

DOD-101 commented 4 weeks ago

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?

arvvnd commented 4 weeks ago

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!

DOD-101 commented 4 weeks ago

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.

arvvnd commented 4 weeks ago

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.

aome510 commented 3 weeks ago

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 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.