From f16985d41ca688b022069352fa02f7d1a20caaac Mon Sep 17 00:00:00 2001 From: Gabe Venberg Date: Tue, 20 Apr 2021 15:14:34 -0500 Subject: [PATCH] modernized ncmpcpp config --- mpd/.config/mpd/mpd.conf | 37 +-- ncmpcpp/.ncmpcpp/config | 556 ++++++++++++++++++++++++++++++++++----- 2 files changed, 514 insertions(+), 79 deletions(-) diff --git a/mpd/.config/mpd/mpd.conf b/mpd/.config/mpd/mpd.conf index 3391567..f401d05 100644 --- a/mpd/.config/mpd/mpd.conf +++ b/mpd/.config/mpd/mpd.conf @@ -1,22 +1,25 @@ -music_directory "~/Music" -playlist_directory "~/Music/.mpd/playlists" -db_file "~/Music/.mpd/database" -state_file "~/Music/.mpd/state" -log_file "~/.mpd/log" -pid_file "~/.mpd/pid" -sticker_file "~/.mpd/sticker.sql" +music_directory "~/Music" +playlist_directory "~/Music/.mpd/playlists" +db_file "~/Music/.mpd/database" +state_file "~/Music/.mpd/state" +log_file "~/.mpd/log" +pid_file "~/.mpd/pid" +sticker_file "~/.mpd/sticker.sql" restore_paused "yes" -auto_update "yes" -replaygain "auto" +auto_update "yes" +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 { - type "pulse" - name "pulse audio" -} -audio_output { - type "fifo" - name "my_fifo" - path "/tmp/mpd.fifo" - format "44100:16:2" + type "pulse" + name "pulse audio" } diff --git a/ncmpcpp/.ncmpcpp/config b/ncmpcpp/.ncmpcpp/config index ec21aca..00d8b41 100644 --- a/ncmpcpp/.ncmpcpp/config +++ b/ncmpcpp/.ncmpcpp/config @@ -1,21 +1,327 @@ -ncmpcpp_directory = ~/.ncmpcpp -lyrics_directory = ~/Music/.lyrics +##### directories ###### +## +## 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_port = 6600 + 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 -#music visualizer -visualizer_fifo_path = "/tmp/mpd.fifo" -visualizer_output_name = "my_fifo" -visualizer_sync_interval = "30" -visualizer_in_stereo = "yes" -visualizer_type = "spectrum" -visualizer_look = "+|" + Exclude pattern for random song action + http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html +random_exclude_pattern = "^(temp|midi_songs).*" -#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 browser_display_mode = classic @@ -24,29 +330,46 @@ search_engine_display_mode = classic playlist_editor_display_mode = classic -# Note: You can specify third character which will be used to build 'empty' -# part of progressbar. +discard_colors_if_item_is_selected = yes +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 = => -# Available values: database, playlist. - +## Available values: database, playlist. +## default_place_to_search_in = database -# Available values: classic, alternative. - +## Available values: classic, alternative. +## user_interface = classic 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_albums_split_by_date = yes -# Available values: wrapped, normal. +media_library_hide_album_dates = no +## Available values: wrapped, normal. +## default_find_mode = wrapped default_tag_editor_pattern = %n - %t @@ -55,17 +378,16 @@ header_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 cyclic_scrolling = no -lines_scrolled = 2 - -lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet +lyrics_fetchers = azlyrics, genius, musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet follow_now_playing_lyrics = no @@ -73,16 +395,125 @@ fetch_lyrics_for_current_song_in_background = no store_lyrics_in_song_dir = no +generate_win32_compatible_filenames = yes + 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 -external_editor = nvim -# Note: set to yes if external editor is a console application. +mouse_list_scroll_whole_page = no +lines_scrolled = 5 + +empty_tag_marker = + +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 - ##### colors definitions ##### ## ## 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 ## are used there is a possibility that you'll be able to use only colors with ## transparent background. -# -#colors_enabled = yes -# -#empty_tag_color = cyan -# -#header_window_color = default -# -#volume_color = default -# -#state_line_color = default -# -#state_flags_color = default:b -# -#main_window_color = yellow -# -#color1 = white -# -#color2 = green -# -#progressbar_color = black:b -# -#progressbar_elapsed_color = green:b -# -#statusbar_color = default -# -#statusbar_time_color = default:b -# -#player_state_color = default:b -# -#alternative_ui_separator_color = black:b -# -#window_border_color = green -# -#active_window_border = red + +colors_enabled = yes + +empty_tag_color = cyan + +header_window_color = default + +volume_color = default + +state_line_color = default + +state_flags_color = default:b + +main_window_color = yellow + +color1 = white + +color2 = green + +progressbar_color = black:b + +progressbar_elapsed_color = green:b + +statusbar_color = default + +statusbar_time_color = default:b + +player_state_color = default:b + +alternative_ui_separator_color = black:b + +window_border_color = green + +active_window_border = red +