92 lines
4.5 KiB
Markdown
92 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.
|
||
|
|