ncurses Spotify client written in Rust using librespot. It is heavily inspired by ncurses MPD clients, such as ncmpc. My motivation was to provide a simple and resource friendly alternative to the official client as well as to support platforms that currently don't have a Spotify client, such as the *BSDs.
NOTE: ncspot is still in a very early development stage. Things will break and change. The feature set is still very limited. Also, as this is my first contact with Rust, some design decisions may need to be reworked in the future. Contributions welcome, but please be kind ;)
portaudio-dev, if you want to use the PortAudio backend)
- A Spotify premium account
- Set your login credentials (see configuration)
- Build using
cargo build --release
- The initial screen is the debug log. Press
F1for the queue and
F2to search for a track. More key bindings are described below.
- For debugging, pass a debug log filename, e.g.
ncspot -d debug.log
These keybindings are hardcoded for now. In the future it may be desirable to have them configurable.
- Navigate through the screens using the F-keys:
ddeletes the currently selected track
cclears the entire playlist
- Tracks and playlists can be played using
Returnand queued using
Shift-ptoggles playback of a track
Shift-sstops a track
Shift-rupdates the playlist cache
>play the previous or next track, respectively
You can also open a Vim style commandprompt using
:, the following commands
quit: Quit ncspot
toggle: Toggle playback
stop: Stop playback
next: Play previous/next track
clear: Clear playlist
The screens can be opened with
search can be supplied with a search term that will be entered after opening
the search view.
For now, a configuration file containing Spotify login data needs to be created manually, until a login-screen is implemented (https://github.com/hrkfdn/ncspot/issues/1).
The file needs to look like this:
username = "spotify_user" password = "spotify_password"
Please save it to
The color palette can be modified in the configuration. For instance, to have ncspot match Spotify's official client, you can add the following entries to the configuration file:
[theme] background = "black" primary = "light white" secondary = "light black" title = "green" playing = "green" playing_bg = "black" highlight = "light white" highlight_bg = "#484848" error = "light white" error_bg = "red" statusbar = "black" statusbar_progress = "green" statusbar_bg = "green" cmdline = "light white" cmdline_bg = "black"
More examples can be found in pull request https://github.com/hrkfdn/ncspot/pull/40.
By default ncspot is built using the PulseAudio backend.
To make it use the PortAudio backend (e.g. for macOS, *BSD, ..),
you need to recompile ncspot with the
cargo run --no-default-features --features portaudio_backend