subsonic-tui/README.md
Sagi Dayan 48661005be
initial commit
Signed-off-by: Sagi Dayan <sagidayan@gmail.com>
2024-09-01 16:30:56 +03:00

91 lines
4.5 KiB
Markdown

# Subsonic TUI
**NOTE ⚠ !!: This is under heavy development! Do not fork just yet. Im still force pushing to main!**
A Subsonic client and player written in go.
subsonictui (Name in progress) is a simple and easy to use player for Linux, Mac and (yes...) Windows.
<p align="center">
<img src="./assets/screenshot.png" alt="Screenshot">
<img src="./assets/screenshot-miniplayer.png" alt="Screenshot mini player">
</p>
> Note: Screenshots blurred for (I dont know) copyright issues?
## Features
- [x] Browse Artists/Albums/Playlists
- [x] Artist view
- [x] Playlist view
- [x] Miniplayer on small screen
- [x] Album view
- [x] Search
- [x] Playback
- [x] Scrobble (configurable)
- [x] Play album
- [x] Shuffle album
- [x] Add album to queue
- [x] Add song to queue
- [x] Play Next/Prev
- [x] Stop/Pause
- [x] Generate artist radio
- [x] Generate song radio
- [-] Desktop integration
- [x] Linux (MPRIS)
- [ ] Windows
- [ ] MacOS
- [ ] Playlist management
- [ ] Add song to playlist
- [ ] Create playlist from queue
## Keybindings
| Key(s) | Action |
|------------------------------------------------------------------------------|-------------------------------------------------|
| <kbd>`</kbd> | Focus on Main pane |
| <kbd>1</kbd> | Focus on Atrists pane |
| <kbd>2</kbd> | Focus on Albums pane |
| <kbd>3</kbd> | Focus on Playlists pane |
| <kbd>4</kbd> | Focus on Queue pane |
| <kbd>Arrow keys</kbd> or <kbd>h</kbd> <kbd>j</kbd> <kbd>k</kbd> <kbd>l</kbd> | Navigation in a pane. Shift for switching panes |
| <kbd>g</kbd> | Jump to first item in a list of a pane |
| <kbd>G</kbd> | Jump to last item in a list of a pane |
| <kbd>n</kbd> | Next song |
| <kbd>N</kbd> | Prev song |
| <kbd>q</kbd> | Exit |
| <kbd>r</kbd> | While on a song - Start Song radio |
| <kbd>s</kbd> | Playback - Stop |
| <kbd>p</kbd> | Playback - Toggle Play/Pause |
| <kbd>c</kbd> | Stop, clear queue |
| <kbd>/</kbd> | Search |
| <kbd>?</kbd> | Help |
## Config
`subsonictui` stores a config file at:
- Linux: `$HOME/.config/subsonictui/config.yaml`
- macOS: `$HOME/Library/Application Support/subsonictui/config.yaml`
- Windows: `C:\\Users\%USER%\AppData\Roaming\subsonictui\config.yaml`
## Development
### Build Dependencies
subsonictui uses [Beep](https://github.com/faiface/beep), that uses [OTO](https://github.com/hajimehoshi/oto) under the hood, so you will need OTO dependencies.
Mainly on Linux you will need `alsa-devel`.
To Build the project:
```
$ make build
```
## Special Thanks
subsonictui is built on top of a few projects. I would like to thank them here
- [go-subsonic](https://github.com/delucks/go-subsonic)
- [OTO](https://github.com/hajimehoshi/oto)
- [Beep](https://github.com/faiface/beep)
- [tview](https://github.com/rivo/tview)
- [tcell](https://github.com/gdamore/tcell)
- [MPRIS server](https://github.com/quarckster/go-mpris-server)
Thank you for creating wondeful software that everyone can use. Including myself.