modernized ncmpcpp config

This commit is contained in:
Gabe Venberg 2021-04-20 15:14:34 -05:00
parent d5bf3663f2
commit f16985d41c
2 changed files with 514 additions and 79 deletions

View file

@ -1,22 +1,25 @@
music_directory "~/Music" music_directory "~/Music"
playlist_directory "~/Music/.mpd/playlists" playlist_directory "~/Music/.mpd/playlists"
db_file "~/Music/.mpd/database" db_file "~/Music/.mpd/database"
state_file "~/Music/.mpd/state" state_file "~/Music/.mpd/state"
log_file "~/.mpd/log" log_file "~/.mpd/log"
pid_file "~/.mpd/pid" pid_file "~/.mpd/pid"
sticker_file "~/.mpd/sticker.sql" sticker_file "~/.mpd/sticker.sql"
restore_paused "yes" restore_paused "yes"
auto_update "yes" auto_update "yes"
replaygain "auto" replaygain "auto"
follow_outside_symlinks "yes"
#for ncmpcpp visualizer
audio_output {
type "fifo"
name "Visualizer feed"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
audio_output { audio_output {
type "pulse" type "pulse"
name "pulse audio" name "pulse audio"
}
audio_output {
type "fifo"
name "my_fifo"
path "/tmp/mpd.fifo"
format "44100:16:2"
} }

View file

@ -1,21 +1,327 @@
ncmpcpp_directory = ~/.ncmpcpp ##### directories ######
lyrics_directory = ~/Music/.lyrics ##
## Directory for storing ncmpcpp related 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 launching
## ncmpcpp.
##
ncmpcpp_directory = ~/.config/ncmpcpp
##
## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other
## MPD clients (eg. ncmpc) also use that location.
##
lyrics_directory = ~/.lyrics
##### connection settings #####
mpd_host = localhost mpd_host = localhost
mpd_port = 6600 mpd_port = 6600
mpd_connection_timeout = 5 mpd_connection_timeout = 5
mpd_music_dir = ~/Music
## Needed for tag editor and file operations to work.
##
mpd_music_dir = ~/music
mpd_crossfade_time = 5 mpd_crossfade_time = 5
#music visualizer Exclude pattern for random song action
visualizer_fifo_path = "/tmp/mpd.fifo" http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
visualizer_output_name = "my_fifo" random_exclude_pattern = "^(temp|midi_songs).*"
visualizer_sync_interval = "30"
visualizer_in_stereo = "yes"
visualizer_type = "spectrum"
visualizer_look = "+|"
#look ##### music visualizer #####
##
## In order to make music visualizer work with MPD you need to use the fifo
## output. Its format parameter has to be set to 44100:16:1 for mono
## visualization or 44100:16:2 for stereo visualization. As an example here is
## the relevant section for mpd.conf:
##
## audio_output {
## type "fifo"
## name "Visualizer feed"
## path "/tmp/mpd.fifo"
## format "44100:16:2"
## }
##
## If the visualization on occasion diverges from the audio output, please set
## 'buffer_time' parameter of your audio output in mpd.conf to '100000' (100ms)
## or less to prevent that from happening.
##
## Note: If you're using Mopidy, an address of a udpsink gstreamer's output is
## also accepted. For example, the following section in mopidy.conf:
##
## [audio]
## output = tee name=t ! queue ! autoaudiosink t.
## ! queue ! audio/x-raw,rate=44100,channels=2,format=S16LE
## ! udpsink host=localhost port=5555
##
## will make localhost:5555 available as a source of data for the stereo
## visualizer.
##
visualizer_data_source = /tmp/mpd.fifo
##
## Note: Below parameter is needed for ncmpcpp to determine which output
## provides data for visualizer and reset it at the beginning of visualization
## to synchronize with audio.
##
visualizer_output_name = Visualizer feed
##
## If you set format to 44100:16:2, make it 'yes'.
##
visualizer_in_stereo = yes
##
## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
## with fftw3 support.
##
## Available values: spectrum, wave, wave_filled, ellipse.
##
visualizer_type = spectrum
visualizer_fps = 60
visualizer_autoscale = no
visualizer_look = ●▮
visualizer_color = blue, cyan, green, yellow, magenta, red
##
## Note: The next few visualization options apply to the spectrum visualizer.
##
## Use unicode block characters for a smoother, more continuous look.
## This will override the visualizer_look option. With transparent terminals
## and visualizer_in_stereo set, artifacts may be visible on the bottom half of
## the visualization.
visualizer_spectrum_smooth_look = yes
## A value between 1 and 5 inclusive. Specifying a larger value makes the
## visualizer look at a larger slice of time, which results in less jumpy
## visualizer output.
visualizer_spectrum_dft_size = 2
visualizer_spectrum_gain = 10
## Left-most frequency of visualizer in Hz, must be less than HZ MAX
visualizer_spectrum_hz_min = 20
## Right-most frequency of visualizer in Hz, must be greater than HZ MIN
visualizer_spectrum_hz_max = 20000
##### system encoding #####
##
## ncmpcpp should detect your charset encoding but if it failed to do so, you
## can specify charset encoding you are using here.
##
## Note: You can see whether your ncmpcpp build supports charset detection by
## checking output of `ncmpcpp --version`.
##
## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
## if your encoding is different.
##
#system_encoding = ""
##### delays #####
## Time of inactivity (in seconds) after playlist highlighting will be disabled
## (0 = always on).
##
playlist_disable_highlight_delay = 5
## Defines how long messages are supposed to be visible.
##
message_delay_time = 5
##### song format #####
##
## If you want to make sure that a part of the format is displayed only when
## certain tags are present, you can archieve it by grouping them with brackets,
## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
## present or '' otherwise. It is also possible to define a list of
## alternatives by providing several groups and separating them with '|',
## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
## not present.
##
## 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'.
##
## In addition, formats support markers used for text attributes. They are
## followed by character '$'. After that you can put:
##
## - 0 - default window color (discards all other colors)
## - 1 - black
## - 2 - red
## - 3 - green
## - 4 - yellow
## - 5 - blue
## - 6 - magenta
## - 7 - cyan
## - 8 - white
## - 9 - end of current color
## - b - bold text
## - u - underline text
## - r - reverse colors
## - a - use alternative character set
##
## If you don't want to use a non-color attribute anymore, just put it again,
## but this time insert character '/' between '$' and attribute character,
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
## reversed colors.
##
## If you want to use 256 colors and/or background colors in formats (the naming
## scheme is described below in section about color definitions), it can be done
## with the syntax $(COLOR), e.g. to set the artist tag to one of the
## non-standard colors and make it have yellow background, you need to write
## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
## with attributes listed above.
##
## Note: colors can be nested.
##
## For a song format you can use:
##
## %l - length
## %f - filename
## %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
##
song_list_format = {%a - }{%t}|{$8%f$9}$R{$3%l$9}
song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
song_library_format = {%n - }{%t}|{%f}
alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
current_item_prefix = $(yellow)$r
current_item_suffix = $/r$(end)
current_item_inactive_column_prefix = $(white)$r
current_item_inactive_column_suffix = $/r$(end)
now_playing_prefix = $b
now_playing_suffix = $/b
browser_playlist_prefix = "$2playlist$9 "
selected_item_prefix = $6
selected_item_suffix = $9
modified_item_prefix = $3> $9
##
## Note: attributes are not supported for the following variables.
##
song_window_title_format = {%a - }{%t}|{%f}
##
## Note: Below variables are used for sorting songs in browser. The sort mode
## determines how songs are sorted, and can be used in combination with a sort
## format to specify a custom sorting format. Available values for
## browser_sort_mode are "type", "name", "mtime", "format" and "none".
##
browser_sort_mode = type
browser_sort_format = {%a - }{%t}|{%f} {%l}
##### columns settings #####
##
## syntax of song columns list format is "column column etc."
##
## - syntax for each column is:
##
## (width of the column)[color of the column]{displayed tag}
##
## Note: Width is by default in %, if you want a column to have fixed size, add
## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
## screen (so the real width will depend on actual screen size), whereas
## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
## is.
##
## - color is optional (if you want the default one, leave the field empty).
##
## Note: You can give a column additional attributes by putting appropriate
## character after displayed tag character. Available attributes are:
##
## - r - column will be right aligned
## - E - if tag is empty, empty tag marker won't be displayed
##
## You can also:
##
## - give a column custom name by putting it after attributes, separated with
## character ':', e.g. {lr:Length} gives you right aligned column of lengths
## named "Length".
##
## - define sequence of tags, that have to be displayed in case predecessor is
## empty in a way similar to the one in classic song format, i.e. using '|'
## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
## display artist tag and then composer and performer if previous ones are not
## available.
##
song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
##### various settings #####
##
## Note: Custom command that will be executed each time song changes. Useful for
## notifications etc.
##
execute_on_song_change = ""
##
## Note: Custom command that will be executed each time player state
## changes. The environment variable MPD_PLAYER_STATE is set to the current
## state (either unknown, play, pause, or stop) for its duration.
##
execute_on_player_state_change = ""
playlist_show_mpd_host = no
playlist_show_remaining_time = no
playlist_shorten_total_times = no
playlist_separate_albums = no
##
## Note: Possible display modes: classic, columns.
##
playlist_display_mode = columns playlist_display_mode = columns
browser_display_mode = classic browser_display_mode = classic
@ -24,29 +330,46 @@ search_engine_display_mode = classic
playlist_editor_display_mode = classic playlist_editor_display_mode = classic
# Note: You can specify third character which will be used to build 'empty' discard_colors_if_item_is_selected = yes
# part of progressbar.
show_duplicate_tags = yes
incremental_seeking = yes
seek_time = 1
volume_change_step = 2
autocenter_mode = no
centered_cursor = no
##
## Note: You can specify third character which will be used to build 'empty'
## part of progressbar.
##
progressbar_look = => progressbar_look = =>
# Available values: database, playlist. ## Available values: database, playlist.
##
default_place_to_search_in = database default_place_to_search_in = database
# Available values: classic, alternative. ## Available values: classic, alternative.
##
user_interface = classic user_interface = classic
data_fetching_delay = yes data_fetching_delay = yes
# Available values: artist, album_artist, date, genre, composer, performer. ## Available values: artist, album_artist, date, genre, composer, performer.
##
media_library_primary_tag = album_artist media_library_primary_tag = album_artist
media_library_albums_split_by_date = yes media_library_albums_split_by_date = yes
# Available values: wrapped, normal. media_library_hide_album_dates = no
## Available values: wrapped, normal.
##
default_find_mode = wrapped default_find_mode = wrapped
default_tag_editor_pattern = %n - %t default_tag_editor_pattern = %n - %t
@ -55,17 +378,16 @@ header_visibility = yes
statusbar_visibility = yes statusbar_visibility = yes
titles_visibility = yes ## Show the "Connected to ..." message on startup
connected_message_on_startup = yes
display_volume_level = yes titles_visibility = yes
header_text_scrolling = yes header_text_scrolling = yes
cyclic_scrolling = no cyclic_scrolling = no
lines_scrolled = 2 lyrics_fetchers = azlyrics, genius, musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet
lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet
follow_now_playing_lyrics = no follow_now_playing_lyrics = no
@ -73,16 +395,125 @@ fetch_lyrics_for_current_song_in_background = no
store_lyrics_in_song_dir = no store_lyrics_in_song_dir = no
generate_win32_compatible_filenames = yes
allow_for_physical_item_deletion = no allow_for_physical_item_deletion = no
##
## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
## language you set and if it fails, it will fall back to english. Otherwise it
## will use english the first time.
##
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
##
lastfm_preferred_language = en
space_add_mode = add_remove
show_hidden_files_in_local_browser = no
##
## How shall screen switcher work?
##
## - "previous" - switch between the current and previous screen.
## - "screen1,...,screenN" - switch between given sequence of screens.
##
## Screens available for use: help, playlist, browser, search_engine,
## media_library, playlist_editor, tag_editor, outputs, visualizer, clock,
## lyrics, last_fm.
##
screen_switcher_mode = playlist, browser
##
## Note: You can define startup screen by choosing screen from the list above.
##
startup_screen = playlist
##
## Note: You can define startup slave screen by choosing screen from the list
## above or an empty value for no slave screen.
##
startup_slave_screen = ""
startup_slave_screen_focus = no
##
## Default width of locked screen (in %). Acceptable values are from 20 to 80.
##
locked_screen_width_part = 50
ask_for_locked_screen_width_part = yes
jump_to_now_playing_song_at_start = yes
ask_before_clearing_playlists = yes
clock_display_seconds = no
display_volume_level = yes
display_bitrate = no
display_remaining_time = no
## Available values: none, basic, extended, perl.
##
regular_expressions = perl
##
## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
## sorting items in browser, tags in media library, etc.
##
ignore_leading_the = no
##
## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
## filtering lists. This takes an effect only if boost was compiled with ICU
## support.
##
ignore_diacritics = no
block_search_constraints_change_if_items_found = yes
mouse_support = yes mouse_support = yes
external_editor = nvim mouse_list_scroll_whole_page = no
# Note: set to yes if external editor is a console application.
lines_scrolled = 5
empty_tag_marker = <empty>
tags_separator = " | "
tag_editor_extended_numeration = no
media_library_sort_by_mtime = no
enable_window_title = yes
##
## Note: You can choose default search mode for search engine. Available modes
## are:
##
## - 1 - use mpd built-in searching (no regexes, pattern matching)
##
## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
## if your mpd is on a remote machine, downloading big database to process
## it can take a while
##
## - 3 - match only exact values (this mode uses mpd function for searching in
## database and local one for searching in current playlist)
##
search_engine_default_search_mode = 1
external_editor = nano
## Note: set to yes if external editor is a console application.
##
use_console_editor = yes use_console_editor = yes
##### colors definitions ##### ##### colors definitions #####
## ##
## It is possible to set a background color by setting a color value ## It is possible to set a background color by setting a color value
@ -112,37 +543,38 @@ use_console_editor = yes
## Note: due to technical limitations of older ncurses version, if 256 colors ## Note: due to technical limitations of older ncurses version, if 256 colors
## are used there is a possibility that you'll be able to use only colors with ## are used there is a possibility that you'll be able to use only colors with
## transparent background. ## transparent background.
#
#colors_enabled = yes colors_enabled = yes
#
#empty_tag_color = cyan empty_tag_color = cyan
#
#header_window_color = default header_window_color = default
#
#volume_color = default volume_color = default
#
#state_line_color = default state_line_color = default
#
#state_flags_color = default:b state_flags_color = default:b
#
#main_window_color = yellow main_window_color = yellow
#
#color1 = white color1 = white
#
#color2 = green color2 = green
#
#progressbar_color = black:b progressbar_color = black:b
#
#progressbar_elapsed_color = green:b progressbar_elapsed_color = green:b
#
#statusbar_color = default statusbar_color = default
#
#statusbar_time_color = default:b statusbar_time_color = default:b
#
#player_state_color = default:b player_state_color = default:b
#
#alternative_ui_separator_color = black:b alternative_ui_separator_color = black:b
#
#window_border_color = green window_border_color = green
#
#active_window_border = red active_window_border = red