More functionality added included playlist management.

This commit is contained in:
Storm Dragon
2025-12-15 22:25:07 -05:00
parent 555ca0bba9
commit 5507aa8faa
6 changed files with 800 additions and 41 deletions
+9 -2
View File
@@ -2,11 +2,18 @@
Accessible Navidrome desktop client built with PySide6. Keyboard-first controls, live region announcements, and XDG-compliant configuration keep the app friendly for screen readers and shared systems.
This project is vibe coded. If you have problems with fully AI generated code, move along, nothing to see here. For people with a brain, keep reading, you will be impressed.
## Features
- Browse artists, albums, playlists, and genres from your Navidrome server
- Keyboard-driven playback controls with live announcements
- Queue management (play now, next/previous, clear/remove)
- Track-change announcements (toggle in View → Announce Track Changes)
- Context menus on library/search trees (right click or Shift+F10/Menu) for play, queue, favorite
- Search dialog mirrors the tree (artists/albums/songs/genres) with expand/collapse, Enter to play, and context menus
- Discover section with recently added/played, frequently played, random albums, server “Now Playing”, and “Similar to current track”
- Favorites section listing all starred songs; press Enter to play all or open individual tracks
- Add-to-playlist from songs/albums/artists/genres/favorites via context menu (choose existing or create new)
- Desktop integrations via MPRIS (playback control, metadata, notifications)
- Config, data, and cache saved under XDG paths (`~/.config/stormux/navipy`, etc.)
- Does not log credentials; server secrets live in `servers.json`
@@ -31,7 +38,7 @@ Logs are written to `~/.local/share/stormux/navipy/navipy.log`.
## Configuration and Data Paths
- Config: `~/.config/stormux/navipy/settings.json` and `servers.json`
Honors `$XDG_CONFIG_HOME`. Reads legacy `~/.config/navipy` if present.
Honors `$XDG_CONFIG_HOME`. Default path is `~/.config/navipy`.
- Data (logs, runtime files): `~/.local/share/stormux/navipy/` (`$XDG_DATA_HOME` respected)
- Cache: `~/.cache/stormux/navipy/` (`$XDG_CACHE_HOME` respected)
@@ -40,7 +47,7 @@ Logs are written to `~/.local/share/stormux/navipy/navipy.log`.
- Navigation: `Z` previous, `B` next, `Ctrl+Left/Right` previous/next, `Alt+S` shuffle, `Alt+R` repeat
- Announcements: `Alt+C` announce current track (live region), `Ctrl+T` announce track (dialog), `Ctrl+P` announce position
- Volume: `Ctrl+Up/Down` or `0/9` to adjust
- Library/Search: `Ctrl+O` connect, `F5` refresh, `Ctrl+F` search
- Library/Search: `Ctrl+O` connect, `F5` refresh, `Ctrl+F` search, `Shift+F10` or Menu key for item context menu
## Playback Persistence
- Volume, shuffle, and repeat preferences persist in `settings.json`