ncmpcpp(1)
β¨ NAME β¨
okay bestie, meet ncmpcpp(1) from the General Commands Manual β it's an ncurses client for MPD, the Music Player Daemon. It was inspired by ncmpc, and it's giving terminal music main character energy. π
π SYNOPSIS π
ncmpcpp [options]
π« DESCRIPTION π«
ncmpcpp is an ncurses client for MPD (Music Player Daemon), inspired by ncmpc. That's the core. It's your terminal bestie for controlling MPD.
Read more about MPD at http://www.musicpd.org β literally the source. β¨
π OPTIONS π
Real talk: mandatory arguments to long options are mandatory for short options too. No cap.
-h,--host=HOSTβ Connect to server at host[localhost]-p,--port=PORTβ Connect to server at port[6600]--current-song[=FORMAT]β Print current song using given format and exit-c,--config=FILEβ Specify configuration file(s)--ignore-config-errorsβ Ignore unknown and invalid options in configuration files-b,--bindings=FILEβ Specify bindings file(s)-s,--screen <name>β Specify the startup screen (<name>may be: help, playlist, browser, search_engine, media_library, playlist_editor, tag_editor, outputs, visualizer, clock)-S,--slave-screen <name>β Specify the startup slave screen (<name>may be: help, playlist, browser, search_engine, media_library, playlist_editor, tag_editor, outputs, visualizer, clock)-q,--quietβ Suppress logs and excess output-?,--helpβ Display help.-v,--versionβ Display version information.
π CONFIGURATION π
When ncmpcpp starts, it tries to read settings from $XDG_CONFIG_HOME/ncmpcpp/config and $HOME/.ncmpcpp/config files. If no configuration is found, ncmpcpp uses its default configuration. An example configuration file containing all default values is provided with ncmpcpp and can be usually found in /usr/share/doc/ncmpcpp (the exact location may depend on your operating system or configure prefix). π«Ά
Note: Configuration option values can either be enclosed in quotation marks or not.
- If they are enclosed, the leftmost and the rightmost quotation marks are treated as delimiters, therefore it is not necessary to escape quotation marks you use within the value itself.
- If they are not, any whitespace characters between
=and the first printable character of the value, as well as whitespace characters after the last printable character of the value are trimmed.
Therefore the rule of thumb is: if you need whitespaces at the beginning or at the end of the value, enclose it in quotation marks. Otherwise, don't.
Note:COLORhas to be the name (not a number) of one of colors1-8from SONG FORMAT section.
Supported configuration options:
ncmpcpp_directory = PATHβ Directory for storingncmpcpprelated files. Changing it is useful if you want to store everything somewhere else and provide command line setting for alternative location to config file which defines that while launchingncmpcpp.lyrics_directory = PATHβ Directory for storing downloaded lyrics. It defaults to~/.lyricssince other MPD clients (eg.ncmpc) also use that location.mpd_host = HOSTβ Connect to MPD running on specified host/unix socket. WhenHOSTstarts with a'/', it is assumed to be a unix socket. Note:MPD_HOSTenvironment variable overrides this setting.mpd_port = PORTβ Connect to MPD on the specified port. Note:MPD_PORTenvironment variable overrides this setting.mpd_password = PASSWORDβ UsePASSWORDto authenticate to MPD.mpd_music_dir = PATHβ Search for files in specified directory. This is needed for tag editor to work.mpd_connection_timeout = SECONDSβ Set connection timeout to MPD to given value.mpd_crossfade_time = SECONDSβ Default number of seconds to crossfade, if enabled byncmpcpp.visualizer_data_source = LOCATIONβ Source of data for the visualizer. For MPD it's going to be a fifo output, for Mopidy a udpsink output (see the example configuration file for more details).visualizer_output_name = NAMEβ Name of output that provides data for visualizer. Needed to keep sound and visualization in sync.visualizer_in_stereo = yes/noβ Should be set to'yes', if fifo output's format was set to44100:16:2.visualizer_type = spectrum/wave/wave_filled/ellipseβ Defines default visualizer type (spectrumis available only ifncmpcppwas compiled with fftw support).visualizer_look = STRINGβ Defines visualizer's look (string has to be exactly2characters long: first one is for wave whereas second for frequency spectrum).visualizer_color = COLORSβ Comma separated list of colors to be used in music visualization.visualizer_fps = FPSβ The amount of frames per second for the visualizer.visualizer_autoscale = yes/noβ Automatically scale visualizer size.visualizer_spectrum_smooth_look = yes/noβ For spectrum visualizer, use unicode block characters for a smoother, more continuous look. This will override thevisualizer_lookoption. With transparent terminals andvisualizer_in_stereoset, artifacts may be visible on the bottom half of the visualization.visualizer_spectrum_smooth_look_legacy_chars = yes/noβ Use unicode block characters from"symbols for legacy computing". This improves the smooth look on transparent terminals by using special unicode chars instead of reversing the background and foreground color on the bottom edge of the spectrum. If it leads to a garbled output on the bottom edge of the spectrum, you can either change the font or disable this option.visualizer_spectrum_dft_size = NUMBERβ For spectrum visualizer, a value between1and5inclusive. Specifying a larger value makes the visualizer look at a larger slice of time, which results in less jumpy visualizer output.visualizer_spectrum_gain = dBβ Gain for spectrum visualizer in dB, larger/smaller values shift bars up/down.visualizer_spectrum_hz_min = Hzβ For spectrum visualizer, left-most frequency of visualizer, must be less than HZ MAX.visualizer_spectrum_hz_max = Hzβ For spectrum visualizer, right-most frequency of visualizer, must be greater than HZ MIN.system_encoding = ENCODINGβ If you use encoding other than utf8, set it in order to handle utf8 encoded strings properly.playlist_disable_highlight_delay = SECONDSβ Delay for highlighting playlist since the last key was pressed. If set to0, highlighting never fades away.message_delay_time = SECONDSβ Delay for displayed messages to remain visible.song_list_formatβ Song format for lists of songs.song_status_formatβ Song format for statusbar.song_library_formatβ Song format for media library.alternative_header_first_line_format = TEXTβ Now playing song format for the first line in alternative user interface header window.alternative_header_second_line_format = TEXTβ Now playing song format for the second line in alternative user interface header window.current_item_prefix = TEXTβ Prefix for currently selected item.current_item_suffix = TEXTβ Suffix for currently selected item.current_item_inactive_column_prefix = TEXTβ Prefix for currently selected item in the inactive column.current_item_inactive_column_suffix = TEXTβ Suffix for currently selected item in the inactive column.now_playing_prefix = TEXTβ Prefix for currently playing song.now_playing_suffix = TEXTβ Suffix for currently playing song.browser_playlist_prefix = TEXTβ Prefix for playlists in Browser.selected_item_prefix = TEXTβ Prefix for selected items.selected_item_suffix = TEXTβ Suffix for selected items.modified_item_prefix = TEXTβ Prefix for modified item (tag editor).browser_sort_modeβ Determines sort mode for browser. Possible values are"type","name","mtime","format"and"none".browser_sort_formatβ Format to use for sorting songs in browser. For this option to be effective,browser_sort_modemust be set to"format".song_window_title_formatβ Song format for window title.song_columns_list_formatβ Format for songs' list displayed in columns.execute_on_song_change = COMMANDβ Shell command to execute on song change.execute_on_player_state_change = COMMANDβ Shell command to execute on player state change. The environment variableMPD_PLAYER_STATEis set to the current state (either unknown, play, pause, or stop) for its duration.playlist_show_mpd_host = yes/noβ If enabled, current MPD host will be shown in playlist.playlist_show_remaining_time = yes/noβ If enabled, time remaining to end of playlist will be shown after playlist statistics.playlist_shorten_total_times = yes/noβ If enabled, total/remaining playlist time displayed in statusbar will be shown using shortened units' names (d:h:m:sinstead ofdays:hours:minutes:seconds).playlist_separate_albums = yes/noβ If enabled, separators will be placed between albums.playlist_display_mode = classic/columnsβ Default display mode for Playlist.browser_display_mode = classic/columnsβ Default display mode for Browser.search_engine_display_mode = classic/columnsβ Default display mode for Search engine.playlist_editor_display_mode = classic/columnsβ Default display mode for Playlist editor.discard_colors_if_item_is_selected = yes/noβ Indicates whether custom colors of tags have to be discarded if item is selected or not.show_duplicate_tags = yes/noβ Indicates whetherncmpcppshould display multiple tags as-is or remove duplicates.incremental_seeking = yes/noβ If enabled, seek time will increment by one each second of seeking.seek_time = SECONDSβ Base seek time to begin with.volume_change_step = NUMBERβ Number of percents volume has to be increased/decreased by involume_up/volume_down.autocenter_mode = yes/noβ Default state for autocenter mode at start.centered_cursor = yes/noβ If enabled, currently highlighted position in the list will be always centered.progressbar_look = TEXTβ This variable defines the look of progressbar. Note that it has to be exactly two or three characters long.default_place_to_search_in = database/playlistβ set it to"playlist"and your Search engine will go digging through the current MPD playlist instead of the whole music database. πuser_interface = classic/alternativeβ the default UI ncmpcpp boots up with. classic or alternative, pick your vibe. β¨data_fetching_delay = yes/noβ turn this on and there's a 250ms delay between refreshing your position in the media library or playlist editor and actually fetching the data from MPD. It limits how much data gets pulled from the server β lowkey a lifesaver if ncmpcpp is connected to a remote host. πmedia_library_primary_tag = artist/album_artist/date/genre/composer/performerβ the default tag type for the leftmost column in the media library. pick your main character tag. πmedia_library_albums_split_by_date = yes/noβ decides whether albums in the media library get split by date. πmedia_library_hide_album_dates = yes/noβ decides whether album dates in the media library are hidden. πdefault_find_mode = wrapped/normalβ set it to"wrapped"and going from the last found position to the next one wraps around to the first (same energy for the first position going backwards). otherwise, no actions happen. πdefault_tag_editor_pattern = TEXTβ the default pattern used by Tag editor's parser. βοΈheader_visibility = yes/noβ enabled? header window shows up. disabled? it's hidden. π«₯statusbar_visibility = yes/noβ enabled? statusbar shows. otherwise hidden. πconnected_message_on_startup = yes/noβ show the"Connected to ..."message when you start up. π‘titles_visibility = yes/noβ enabled? column titles show. otherwise hidden. π·οΈheader_text_scrolling = yes/noβ if the text in the header window is longer than the actual screen width, it scrolls. otherwise it just sits there. πcyclic_scrolling = yes/noβ enabled? cyclic scrolling is on. like if you press down arrow at the end of a list, it takes you back to the beginning. πlyrics_fetchers = FETCHERSβ comma separated list of lyrics fetchers. π€follow_now_playing_lyrics = yes/noβ enabled? lyrics switch when the song changes to the currently playing one. (Note: this only works if you're viewing lyrics of an item from Playlist.) πfetch_lyrics_for_current_song_in_background = yes/noβ enabled? every time the song changes, the lyrics fetcher runs in the background trying to download lyrics for the currently playing song. π«Άstore_lyrics_in_song_dir = yes/noβ enabled? lyrics get saved in the song's directory. otherwise they go in~/.lyrics. note that it needsmpd_music_dirproperly set. πgenerate_win32_compatible_filenames = yes/noβ set to yes and filenames generated by ncmpcpp (with tag editor, for lyrics, artists etc.) won't contain these characters:\?*:|π«allow_for_physical_item_deletion = yes/noβ set to yes and you can physically delete files and directories from the disk in the browser. careful bestie, no undo. πlastfm_preferred_language = ISO 639 alpha-2 language codeβ if set, ncmpcpp tries to get info from last.fm in your chosen language, and if that fails it falls back to English. otherwise it uses English the first time. πspace_add_mode = add_remove/always_addβ set toadd_remove, attempting to add files already in the playlist will remove them. otherwise they can be added multiple times. βshow_hidden_files_in_local_browser = yes/noβ trigger for showing files and directories in the local browser that begin with.π»screen_switcher_mode = SWITCHER_MODEβ set to"previous"andkey_screen_switcherswitches between the current and last used screen. set to"screen1,...screenN"(a list of screens) and it switches between them in a sequence. syntax clarification lives in the example config file. πstartup_screen = SCREEN_NAMEβ the screen displayed at start (playlist by default). πstartup_slave_screen = SCREEN_NAMEβ the slave screen displayed at start (nothing by default). π«‘startup_slave_screen_focus = yes/noβ set to yes and the slave screen is the active one after startup. otherwise the master screen is. π―locked_screen_width_part = 20-80β if you want to lock a screen, ncmpcpp asks for the % of locked screen's width to reserve before that and gives a default value, which is the one you set here. πask_for_locked_screen_width_part = yes/noβ enabled? ncmpcpp asks for the % of locked screen's width every time you want to lock a screen. disable it and it silently tries to use the default value. π€«media_library_column_width_ratio_two = a:bβ the ratio of column widths in the media library when there are two columns. πmedia_library_column_width_ratio_three = a:b:cβ the ratio of column widths in the media library when there are three columns. πplaylist_editor_column_width_ratio = a:bβ the ratio of column widths in the playlist editor. πjump_to_now_playing_song_at_start = yes/noβ enabled? ncmpcpp jumps at start to the now playing song if mpd is playing or paused. βοΈask_before_clearing_playlists = yes/noβ enabled? you get asked if you really want to clear the playlist after pressing the key responsible for that. πclock_display_seconds = yes/noβ enabled? clock shows time ashh:mm:ss. otherwisehh:mm. π°οΈdisplay_volume_level = yes/noβ enabled? volume level shows in the statusbar. otherwise not. πdisplay_bitrate = yes/noβ enabled? bitrate of the currently playing song shows in the statusbar. ποΈdisplay_remaining_time = yes/noβ enabled? remaining time of the currently playing song shows in the statusbar instead of elapsed time. β³regular_expressions = none/basic/extended/perlβ type of currently used regular expressions. πignore_leading_the = yes/noβ enabled? the word "the" at the beginning of tags/filenames/sort format is ignored while sorting items. π΅ignore_diacritics = yes/noβ enabled? diacritics in strings are ignored while searching and filtering lists. π€block_search_constraints_change_if_items_found = yes/noβ enabled? fields in Search engine above the"Reset"button get blocked after a successful search. otherwise they don't. π§mouse_support = yes/noβ set to yes and mouse support is enabled. π±οΈmouse_list_scroll_whole_page = yes/noβ enabled? mouse wheel scrolls the whole page of the item list at a time. otherwise it scrolls the number of lines specified bylines_scrolled. π²οΈlines_scrolled = NUMBERβ number of lines scrolled with the mouse wheel. πempty_tag_marker = TEXTβ text displayed if the requested tag is not set. π·οΈtags_separator = TEXTβ separator placed between tags. also interpreted by tag editor, which splits the input string into separate tags using it. βοΈtag_editor_extended_numeration = yes/noβ enabled? tag editor numbers tracks using formatxx/yy(wherexxis the current track andyyis total amount of all numbered tracks), not plainxx. π’media_library_sort_by_mtime = yes/noβ enabled? media library is sorted by modification time. otherwise lexicographic sorting is used. ποΈenable_window_title = yes/noβ enabled? ncmpcpp overrides the current window title with its own one. πͺsearch_engine_default_search_mode = MODE_NUMBERβ number of the default mode used in the search engine. πexternal_editor = PATHβ path to the external editor used to edit lyrics. βοΈuse_console_editor = yes/noβ if your external editor is a console application, you need to enable this. π₯οΈcolors_enabled = yes/noβ no need to describe it, huh? πempty_tag_color = COLORβ color of the empty tag marker. π¨header_window_color = COLORβ color of the header window. π¨volume_color = COLORβ color of the volume state. π¨state_line_color = COLORβ color of the lines separating header and statusbar from the main window. π¨state_flags_color = COLORβ color of the MPD status flags. π¨main_window_color = COLORβ color of the main window. π¨color1 = COLORβ one of the colors used in Song info, Tiny tag editor, and Search engine. π¨color2 = COLORβ one of the colors used in Song info, Tiny tag editor, and Search engine. π¨progressbar_color = COLORβ color of the progressbar. π¨progressbar_elapsed_color = COLORβ color of the part of the progressbar that represents elapsed time. π¨statusbar_color = COLORβ color of the statusbar. π¨statusbar_time_color = COLORβ color of the current track time shown in the statusbar. π¨player_state_color = COLORβ color of the player state shown in the statusbar. π¨alternative_ui_separator_color = COLORβ color of the separators used in the alternative user interface. π¨window_border_color = BORDERβ border color of pop-up windows. if set to'none', no border is shown. πΌοΈactive_window_border = COLORβ color of the active window's border. πΌοΈ
πΉ BINDINGS πΉ
When ncmpcpp starts, it tries to read bindings from $XDG_CONFIG_HOME/ncmpcpp/bindings and ~/.ncmpcpp/bindings files. If no bindings file is found, ncmpcpp uses the defaults. An example bindings file with default values can be found usually in /usr/share/doc/ncmpcpp (the exact location may depend on your operating system or configure prefix). π
You can view current keybindings by pressing F1. π
β¨ SONG FORMAT β¨
okay bestie, for song format you can use these little icons β they're like the outfit pieces for your track display π
%lβ length%fβ filename%Fβ full filepath%Dβ directory%aβ artist%Aβ album artist%tβ title%bβ album%yβ date%nβ track number (01/12 -> 01)%Nβ full track info (01/12 -> 01/12)%gβ genre%cβ composer%pβ performer%dβ disc%Cβ comment%Pβ priority$Rβ begin right alignment
You can also put them in { } and then they will be displayed only if all requested values are available and/or define alternate value with { }|{ } e.g. {%a - %t}|{%f} will check if artist and title tags are available and if they are, display them. Otherwise it'll display filename.
Note: If you want to set limit on maximal length of a tag, just put the appropriate number between%and character that defines tag type, e.g. to make album take max. 20 terminal cells, use'%20b'.
Note: Format that is similar to"%a - %t"(i.e. without any additional braces) is equal to"{%a - %t}", so if one of the tags is missing, you'll get nothing.
Text can have different color than the main window, e.g. if you want length to be green, write $3%l$9.
Available values for colors:
0β default window color (discards all other colors)1β black2β red3β green4β yellow5β blue6β magenta7β cyan8β white9β end of current color
Note: colors can be nested, so if you write $2some$5text$9, it'll disable only usage of blue color and make red the current one.
π BUGS π
Found a lil gremlin? Report bugs on https://github.com/arybczak/ncmpcpp/issues β the devs wanna know, fr fr π
π NOTE π
Since MPD uses UTF-8, ncmpcpp needs to convert characters to the charset used by the local system. If you get character conversion errors while you are running ncmpcpp, you probably need to set up your locale. This is done by setting LANG and LC_ALL/LC_CTYPE environment variables (LC_CTYPE only affects character handling).
π HOMEPAGE π
π SEE ALSO π
and that's the whole ncmpcpp(1) manual β source/version and date footer included, no cap, periodt π
πβ¨
π¦ where this page comes from
- alpine 3.24: ncmpcpp-doc 0.10.1-r4 Β· GPL-2.0-or-later
- arch rolling: ncmpcpp 0.10.1-9 Β· GPL-2.0-only
- fedora 43: ncmpcpp 0.10.1-3.fc42 Β· GPL-2.0-or-later
- fedora 44: ncmpcpp 0.10.1-9.fc44 Β· GPL-2.0-or-later
- nixos 26.05: ncmpcpp 0.10.1
- nixpkgs unstable: ncmpcpp 0.10.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms