# RSPlayer is a daemon driven CLI music player with scrobbling written in rust ## Installation ### GNU/Linux ``` git clone https://codeberg.org/salmonik/RSPlayer.git cd RSPlayer ./install.sh ``` ### FreeBSD Requirements: ``` alsa-lib alsa-plugins ``` `install.sh` does all of the above on FreeBSD and additionally installs an rc.d service. Enable it with: ``` sudo sysrc rsplayer_enable=YES sudo sysrc rsplayer_user=salmon # the user that runs the rsp CLI sudo service rsplayer start ``` FreeBSD notes: - If you have multiple sound cards, pick the output with: `sysctl hw.snd.default_unit=N` (persist in /etc/sysctl.conf). install.sh will: - compile RSP (make sure you have rust properly installed!) - install shell autocompletions (zsh, bash and fish supported) - install user systemd/rc service and activate it ## Usage configuration is generated at startup in $XDG_CONFIG_HOME/rsplayer/config.toml - most important values there are: - listenbrainz_token (last.fm scrobbling not yet tested) - display_format (supports $ARTIST $ALBUM and $TRACK) - music_paths (for DB usage) - scan_interval (same as above) - sample_rate ("auto" follows each track's own rate, or e.g. 48000 to force one) all other values can be changed in runtime using commands as for commands: RSP will be installed as rsp, in this fragment, rsp will be ommited these commands should only be used in testing or by the init system (systemd/rc.d): - `start-daemon` Start the daemon - `stop-daemon` Stop the daemon - `restart` Restart the daemon (kill existing and start new) these are normal commands: - `play` Play a track, album, or artist - `pause` Pause playback - `resume` Resume playback - `toggle` Toggle play/pause - `stop` Stop playback - `next` Skip to next track - `previous` Skip to previous track - `seek` Seek within the current track (absolute, `+30`/`-30`, or `1:30`) - `volume` Set volume (0-100) - `shuffle` Shuffle mode - `queue` Show the current queue - `status` Show player status - `scan` Scan music paths to populate database - `settings` Settings management - `ctl` Interactive shell with history and tab completion (like bluetoothctl) - `help` Print this message or the help of the given subcommand(s)