NCMPC(1)
π§ ncmpc β ncmpc Documentation (NCMPC(1)) π
β¨ NAME β¨
ncmpc β ncmpc Documentation
πΈ DESCRIPTION πΈ
Okay so bestie, ncmpc is a command-line client for the Music Player Daemon (http://www.musicpd.org/) β aka MPD β and it's literally the terminal bestie for controlling your music. π
By default, ncmpc connects to the local MPD instance. A different MPD instance can be selected using the command line options --host and --port, or by setting the environment variables MPD_HOST and MPD_PORT:
ncmpc --host=musicserver --port=44000
You can connect to a "local" socket by setting the host to a file path (e.g. "/run/mpd/socket"). Abstract sockets can be used with a "@" prefix (e.g. "@mpd"). π¦
To use a password with MPD, set MPD_HOST to password@host or use the command line option --password. Values from the command line override values from the environment. No cap. β¨
π SYNOPSIS π
ncmpc [options]
π OPTIONS π
-?,--helpβ pops up the help. β¨-V,--versionβ shows version information and the build-time configuration.-c,--colorsβ turns colors on. π-C,--no-colorsβ turns colors off.-m,--mouseβ turns mouse support on. π--host=HOSTβ the MPD host to connect to.--port=PORT,-p PORTβ the port to connect to.-P,--password=PASSWORDβ usePASSWORDwhen connecting.-f,--config=FILEβ read configuration fromFILE.-k,--key-file=FILEβ read key bindings fromFILE.
π§ CONFIGURATION π§
When ncmpc starts it tries to read the user's configuration file, $XDG_CONFIG_HOME/ncmpc/config (usually ~/.config/ncmpc/config). If no user configuration file is found then ncmpc tries to load the global settings from $SYSCONFDIR/ncmpc/config (the actual path is displayed in the output of the --version option). An example configuration file (config.sample) is shipped with ncmpc. π
π Connection
host = HOSTβ the MPD host to connect to.port = PORTβ the port to connect to.password = PASSWORDβ usePASSWORDwhen connecting.timeout = TIMEOUTβ attempt to reconnect tompdif a response to a command is not received withinTIMEOUTseconds. Specifying a value in the configuration file overrides the"MPD_TIMEOUT"environment variable. If no timeout is specified in the configuration file or in the environment, the default is5seconds.
π₯οΈ Interface
show-title-bar = yes|noβ"no"allows hiding the title bar.show-server-address = yes|noβ"yes"shows the server address in the title bar. This is disabled by default because most people use only one MPD instance.enable-mouse = yes|noβ enable mouse support (if enabled at compile time).screen-list = SCREEN1 SCREEN2...β a list of screens to cycle through when using the commandsscreen-next(bound to"Tab"by default) andscreen-prev("Shift+Tab"). Valid choices, if enabled at compile time, are:help,playlist,browse,library,search,lyrics,outputs,chat,song,keydef.
The default is playlist browser, i.e. the "Tab" key cycles only between those two pages.
library-page-tags = TAG1 TAG2 ...β a list of tags to group the library page. The default isartist album.search-mode = MODEβ default search mode for the search screen.MODEmust be one oftitle,artist,album,filename, andartist+title, or an integer index (0for title,1for artist etc.).auto-center = yes|noβ enable/disable auto center mode. When auto center mode is enabledncmpccenters the current track in the playlist window.scroll-offset = NUMβ keep at leastNUMlines above and below the cursor on list windows, if possible.find-show-last = yes|noβ show the most recent query instead of a blank line for a find.find-wrap = yes|noβ wrapped find mode.wrap-around = yes|noβ wrapped cursor movement.bell-on-wrap = yes|noβ ring bell when find wraps around.audible-bell = yes|noβ sound audible bell on alerts.visible-bell = yes|noβ visible bell on alerts.crossfade-time = CROSSFADE TIMEβ default crossfade time in seconds.seek-time = NUMβ seek forward/backward byNUMseconds.lyrics-timeout = NUMβ quits downloading lyrics of a song after the timeout ofNUMseconds is reached, ifNUMis greater than zero.jump-prefix-only = yes|noβ when using the jump command, search for the prefix of an entry. That means typing"m"will start to the first entry which begins with"m".lyrics-autosave = yes|noβ automatically save lyrics after receiving them.lyrics-show-plugin = yes|noβ show the name of the plugin used to receive lyrics on the lyrics screen.text-editor = EDITORβ the text editor used for editing lyrics.chat-prefix = PREFIXβ prefix messages sent with the chat screen withPREFIX. By default they are prefixed with the current user name enclosed by<and>and a space (i.e."<name> ").second-column = yes|noβ display song length in a second column.
π¨ Display
welcome-screen-list = yes|noβ show a list of the screens in the top line.wide-cursor = yes|noβ make the cursor as wide as the screen.hardware-cursor = yes|noβ use the terminal's hardware cursor instead of inverse colors.hide-cursor = NUMβ hide the playlist cursor afterNUMseconds of inactivity.scroll = yes|noβ scroll the title if it is too long for the screen.scroll-sep = STRINGβ the separator to show at the end of the scrolling title.list-format = SONG FORMATβ the format used to display songs in the main window.search-format = SONG FORMATβ the format used to display songs in the search window. Default is to uselist-format.status-format = SONG FORMATβ the format used to display songs on the status line.status-message-time = TIMEβ the time, in seconds, for which status messages will be displayed.display-time = yes|noβ display the time in the status bar when idle.timedisplay-type = elapsed|remaining|noneβ sets whether to display remaining or elapsed time in the status window. Default iselapsed.nonedoesn't show the time at all.visible-bitrate = yes|noβ show the bitrate in the status bar when playing a stream.set-xterm-title = yes|noβ change the XTerm title (ncmpcwill not restore the title).xterm-title-format = SONG FORMATβ the format used for the xterm title whenncmpcis playing.
π Colors
enable-colors = yes|noβ enable/disable colors. Defaults toyes.
The colors used by ncmpc can be customized. The color directive can be used to change how a certain style looks. It can contain a text color and attributes. The following standard colors can be specified by name (official reference https://invisible-island.net/ncurses/man/curs_color.3x.html):
black, red, green, yellow, blue, magenta, cyan, white
Example:
color list = cyan
Modern terminals support up to 256 colors, but they are not standardized. You can select them by specifying the number. Example:
color title = 42
The background color can be specified after the text color separated by a slash. You can omit the text color if you want to change only the background color:
color title = white/blue
color title = /blue
The color none uses the terminal's default color.
Attributes can be used to modify the font appearance. The following attributes can be specified (official reference https://invisible-island.net/ncurses/man/curs_attr.3x.html), though many of them are not supported by prevalent terminals:
standout, underline, reverse, blink, dim, bold
Example:
color alert = red blink
color background = COLORβ set the default background color.color title = COLOR[,ATTRIBUTE]...β set the text color and attributes for the title row, which displays the page names.color title-bold = COLOR[,ATTRIBUTE]...β liketitle, but refers to emphasized parts of the title row, i.e. the hot keys for switching to a specific page.color line = COLORβ set the color of the line on the second row.color line-flags = COLOR[,ATTRIBUTE]...β set the text color used to indicatempdflags on the second row.color list = COLOR[,ATTRIBUTE]...β set the text color in the main area ofncmpc.color list-bold = COLOR[,ATTRIBUTE]...β set the bold text color in the main area ofncmpc.color browser-directory = COLOR[,ATTRIBUTE]...β set the text color used to display directories in the browser window.color browser-playlist = COLOR[,ATTRIBUTE]...β set the text color used to display playlists in the browser window.color progressbar = COLOR[,ATTRIBUTE]...β set the color of the progress indicator.color progressbar-background = COLOR[,ATTRIBUTE]...β set the color of the progress indicator background.color status-state = COLOR[,ATTRIBUTE]...β set the text color used to displaympdstatus in the status window.color status-song = COLOR[,ATTRIBUTE]...β set the text color used to display song names in the status window.color status-time = COLOR[,ATTRIBUTE]...β set the text color used to display time in the status window.color alert = COLOR[,ATTRIBUTE]...β set the text color used to display alerts in the status window.color input = COLOR[,ATTRIBUTE]...β set the text color of text input controls.colordef COLOR = R, G, Bβ redefine any of the base colors. The RGB values must be integer values between0and1000. Note: Only some terminals allow redefinitions of colors!
π KEYS π
When ncmpc starts it tries to read user-defined key bindings from the $XDG_CONFIG_HOME/ncmpc/keys (usually ~/.config/ncmpc/keys) file. If no user-defined key bindings are found then ncmpc tries to load the global key bindings from $SYSCONFDIR/ncmpc/keys (the actual path is displayed on the help screen). π₯
You can view ncmpc's key bindings by pressing '1' (help) when ncmpc is running. To edit key bindings press 'K' and use the key editor in ncmpc. π
π΅ SONG FORMAT π΅
Format of song display for status and the list window. The metadata delimiters are: %artist%, %albumartist%, %composer%, %performer%, %title%, %album%, %shortalbum%, %track%, %disc%, %genre%, %name%, %time%, %date%, %file%, %shortfile%.
The [] operators are used to group output such that if none of the metadata delimiters between [ and ] are matched, then none of the characters between [ and ] are output; literal text is always output. & and | are logical operators for and and or. # is used to escape characters. π¦
Some useful examples for format are:
"%file%"
and:
"[[%artist% - ]%title%]|%file%"
Another one is:
"[%artist%|(artist n/a)] - [%title%|(title n/a)]"
β¨ TABLES β¨
Okay bestie, this one's a lil β¨experimentalβ¨ so listen up β ngl, you can display the queue as a table. But beware: this feature is really experimental, and future versions may straight-up do incompatible changes. It's giving "main character energy but hasn't finished her glow-up yet" π so don't come for me if it shifts under you.
To configure it, you just add columns to the config file, like this:
song-table-column = "Artist" "%artist%|%name%|%file%" min=20 fraction=2
song-table-column = "Title" "%title%" min=20 fraction=2
song-table-column = "Album" "%album%" min=10 fraction=1
song-table-column = "Time" "%time%" min=8 fraction=0
So every column has, in order:
- a caption (the lil label up top),
- a format string that says what's actually being displayed,
- a minimum width, measured in terminal cells,
- and a fraction that decides how much of the excess width gets assigned to this column.
In the example above, the "Time" column gets a fixed width of 8 because fraction=0. The way that math works?? Iconic. Periodt. π
π¦ CHAT PROTOCOL π¦
So if ncmpc has been compiled with "chat" support, it uses the client-to-client protocol available in MPD 0.17 or higher to talk to other clients. Group chat but make it Unix, fr fr π«Ά
To actually receive messages, it subscribes to the channel named "chat", and displays any message sent there as-is β no filtering, no edits, just vibes.
When you enter a message, it first gets the prefix specified by the chat-prefix option (or the default prefix), and then it's sent to the "chat" channel for everyone else to read. So yes, you get a lil nametag. Slay. π
π BUGS π
Found a bug? Report it on https://github.com/MusicPlayerDaemon/ncmpc/issues β the devs wanna hear about it, no cap.
Note β okay this part matters, bestie π«Ά Since MPD uses UTF-8,ncmpcneeds to convert characters to the charset used by the local system. If you get character conversion errors while you're runningncmpc, you probably need to set up your locale. You do that by setting any of theLC_CTYPE,LANGorLC_ALLenvironment variables. Heads up though:LC_CTYPEonly affects character handling. That's the whole tea. β
π SEE ALSO π
π Author
Max Kellermann
π Copyright
Copyright 2004-2021 The Music Player Daemon Project
And that's the whole page, bestie!! πβ¨ This lil masterpiece is ncmpc version 0.54, dated Aug 25, 2026, and it's NCMPC(1) β go forth and slay your queue. π¦πΈπ
π¦ where this page comes from
- arch rolling: ncmpc 0.54-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms