Skip to content

General configuration

Rmpc uses ron format for its configuration file. The file can be located at:

  • $XDG_CONFIG_HOME/rmpc/config.ron
  • $HOME/.config/rmpc/config.ron
  • Specific path specified by the --config flag

Bootstrapping a config file

Config file can be bootstrapped by running the following command:

rmpc config > ~/.config/rmpc/config.ron

Config file structure

Below is a list of properties that can be changed.

address

address: "<ip>:<port>" | "/path/to/socket"

The address to connect to. Address can be either an IP address with a port or a UNIX domain socket path.

The order of precedence is as follows:

  1. --address and --password passed to rmpc as command line arguments
  2. $MPD_HOST and $MPD_PORT environment variables
    • If $MPD_PORT is not provided and $MPD_HOST starts with ~ or /, it is assumed to be a path to a unix socket
    • If $MPD_PORT is not provided and $MPD_HOST is an IP address and, the default port of 6600 is used
    • Password can be provided via $MPD_HOST in the password@host format.
  3. The address and password values from config file
  4. And finally, if none of the above are provided, the default of 127.0.0.1:6600 is used

Address and password from different sources cannot be mixed and matched.

password

password: "<string>"

Provide MPD with password upon connecting. Set to None or omit completely if your MPD is not configured to use a password.

cache_dir

cache_dir: None | Some("<string>")

Directory for rmpc’s cache files. Used for files downloaded for youtube and might be used for more in the future.

lyrics_dir

lyrics_dir: None | Some("<string>")

Directory where rmpc should search for lrc files. Please see the lyrics page for more information.

theme

theme: None | Some("<string>")

Theme file to use. If set to None or absent, the default theme is used. More info at:

album_art

album_art: <other>

Various options for album art display. By default should not be needed to be specified. More info at album art page

keybinds

keybinds: <keybinds>

Keybinds to use. The default keybinds are used if this property is absent. More info at:

volume_step

volume_step: <number>

Determines the step when changing volume with the volume up and down keybinds. Default is 5%.

scrolloff

scrolloff: <number>

Minimal number of screen lines to keep above and below the cursor. Cursor will always be in the middle of the screen if set to value bigger than half the viewport height. Default is 0.

wrap_navigation

wrap_navigation: <bool>

Whether to wrap around on Up/Down action in queue/browser panes upon reaching bottom/top. Default is false.

enable_mouse

enable_mouse: <bool>

Enables mouse support. Currently only seeking the currently playing song by clicking on the progress bar at the bottom of the screen and switching tabs is supported. Enabled by default.

status_update_interval_ms

status_update_interval_ms: None | Some(<number>)

Interval in milliseconds to update the status when a song is playing. Status means song progress, current bitrate, etc. Default is 1000ms. If set to None or absent, the progress bar at the bottom of the window is hidden as it serves no purpose at that point.

select_current_song_on_change

select_current_song_on_change: <bool>

If set to true, the current song is selected in the queue table when it changes. Defaults to false if not present.

on_song_change

on_song_change: ["notify-send", "song changed!"]

Execute given command when the song changes. First element of the array is the command to execute and the rest are the arguments passed to the command. Nothing will be executed if left empty. Can be used to send notifications when the song changes.

search: <search>

Configures what tags are searchable on the Search pane. Also sets whether the search should be case insensitive by default and what kind of search mode to perform. More detail in the Search section. If not specified, the default values are used.