Music/Sound Configuration
Table of Contents
Pavu Control
[window] width=500 height=400 sinkInputType=1 sourceOutputType=1 sinkType=0 sourceType=1 showVolumeMeters=1
NCMPCPP
Config
############################################################################## ## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ## ## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ## ############################################################################## # ##### 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 ## Needed for tag editor and file operations to work. ## mpd_music_dir = ~/Music # #mpd_crossfade_time = 5 # ##### music visualizer ##### ## ## Note: In order to make music visualizer work you'll need to use mpd fifo ## output, whose format parameter has to be set to 44100:16:1 for mono ## visualization or 44100:16:2 for stereo visualization. Example configuration ## (it has to be put into mpd.conf): ## ## audio_output { ## type "fifo" ## name "Visualizer feed" ## path "/tmp/mpd.fifo" ## format "44100:16:2" ## } ## # #visualizer_fifo_path = /tmp/mpd.fifo # ## ## Note: Below parameter is needed for ncmpcpp to determine which output ## provides data for visualizer and thus allow syncing between visualization and ## sound as currently there are some problems with it. ## # #visualizer_output_name = Visualizer feed # ## ## If you set format to 44100:16:2, make it 'yes'. ## #visualizer_in_stereo = yes # ## ## Note: Below parameter defines how often ncmpcpp has to "synchronize" ## visualizer and audio outputs. 30 seconds is optimal value, but if you ## experience synchronization problems, set it to lower value. Keep in mind ## that sane values start with >=10. ## # #visualizer_sync_interval = 30 # ## ## Note: To enable spectrum frequency visualization you need to compile ncmpcpp ## with fftw3 support. ## # ## Available values: spectrum, wave, wave_filled, ellipse. ## #visualizer_type = wave # #visualizer_look = ●▮ # #visualizer_color = blue, cyan, green, yellow, magenta, red # ## Alternative subset of 256 colors for terminals that support it. ## #visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161 # ##### 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 ##### ## ## 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 ## ## 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. ## # #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 "name", "mtime", "format" and "noop". ## # #browser_sort_mode = name # #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 = dunstify --replace=19845 "Now Playing ♫" "$(mpc current)" # ## ## 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 # #search_engine_display_mode = classic # #playlist_editor_display_mode = classic # #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. ## #default_place_to_search_in = database # ## Available values: classic, alternative. ## #user_interface = classic # #data_fetching_delay = yes # ## Available values: artist, album_artist, date, genre, composer, performer. ## #media_library_primary_tag = artist # #media_library_albums_split_by_date = yes # ## Available values: wrapped, normal. ## #default_find_mode = wrapped # #default_tag_editor_pattern = %n - %t # #header_visibility = yes # #statusbar_visibility = 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 # #follow_now_playing_lyrics = no # #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 # #mouse_list_scroll_whole_page = yes # #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 # ##### colors definitions ##### ## ## It is possible to set a background color by setting a color value ## "<foreground>_<background>", e.g. red_black will set foregound color to red ## and background color to black. ## ## In addition, for terminals that support 256 colors it is possible to set one ## of them by using a number in range [1, 256] instead of color name, ## e.g. numerical value corresponding to red_black is 2_1. To find out if the ## terminal supports 256 colors, run ncmpcpp and check out the bottom of the ## help screen for list of available colors and their numerical values. ## ## What is more, there are two special values for the background color: ## "transparent" and "current". The first one explicitly sets the background to ## be transparent, while the second one allows you to preserve current ## background color and change only the foreground one. It's used implicitly ## when background color is not specified. ## ## Moreover, it is possible to attach format information to selected color ## variables by appending to their end a colon followed by one or more format ## flags, e.g. black:b or red:ur. The following variables support this syntax: ## visualizer_color, color1, color2, empty_tag_color, volume_color, ## state_line_color, state_flags_color, progressbar_color, ## progressbar_elapsed_color, player_state_color, statusbar_time_color, ## alternative_ui_separator_color. ## ## 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 #
Bindings
def_key "g" move_home def_key "G" move_end def_key "j" scroll_down def_key "k" scroll_up def_key "ctrl-u" page_up def_key "ctrl-d" page_down def_key "l" enter_directory def_key "h" jump_to_parent_directory def_key "." show_lyrics def_key "n" next_found_item def_key "N" previous_found_item def_key "J" move_sort_order_down def_key "K" move_sort_order_up def_key "d" delete_playlist_items def_key "+" volume_up def_key "-" volume_down
MPD
Files and directories
# This setting controls the top directory which MPD will search to discover the # available audio files and add them to the daemon's online database. This # setting defaults to the XDG directory, otherwise the music directory will be # be disabled and audio files will only be accepted over ipc socket (using # file:// protocol) or streaming files over an accepted protocol. music_directory "~/Music" # This setting sets the MPD internal playlist directory. The purpose of this # directory is storage for playlists created by MPD. The server will use # playlist files not created by the server but only if they are in the MPD # format. This setting defaults to playlist saving being disabled. playlist_directory "~/.config/mpd/playlists" # This setting sets the location of the MPD database. This file is used to # load the database at server start up and store the database while the # server is not up. This setting defaults to disabled which will allow # MPD to accept files over ipc socket (using file:// protocol) or streaming # files over an accepted protocol. # db_file "~/.config/mpd/database" # These settings are the locations for the daemon log files for the daemon. # These logs are great for troubleshooting, depending on your log_level # settings. # # The special value "syslog" makes MPD use the local syslog daemon. This # setting defaults to logging to syslog, otherwise logging is disabled. log_file "~/.config/mpd/log" # This setting sets the location of the file which stores the process ID # for use of mpd --kill and some init scripts. This setting is disabled by # default and the pid file will not be stored. # pid_file "~/.config/mpd/pid" # This setting sets the location of the file which contains information about # most variables to get MPD back into the same general shape it was in before # it was brought down. This setting is disabled by default and the server # state will be reset on server start up. state_file "~/.config/mpd/state" # The location of the sticker database. This is a database which # manages dynamic information attached to songs. #sticker_file "~/.config/mpd/sticker.sql"
General music daemon options
# This setting specifies the user that MPD will run as. MPD should never run as # root and you may use this setting to make MPD change its user ID after # initialization. This setting is disabled by default and MPD is run as the # current user. # #user "nobody" # # This setting specifies the group that MPD will run as. If not specified # primary group of user specified with "user" setting will be used (if set). # This is useful if MPD needs to be a member of group such as "audio" to # have permission to use sound card. # #group "nogroup" # # This setting sets the address for the daemon to listen on. Careful attention # should be paid if this is assigned to anything other then the default, any. # This setting can deny access to control of the daemon. Not effective if # systemd socket activiation is in use. # # For network #bind_to_address "any" # # And for Unix Socket #bind_to_address "~/.mpd/socket" # # This setting is the TCP port that is desired for the daemon to get assigned # to. # #port "6600" # # This setting controls the type of information which is logged. Available # setting arguments are "default", "secure" or "verbose". The "verbose" setting # argument is recommended for troubleshooting, though can quickly stretch # available resources on limited hardware storage. # #log_level "default" # # Setting "restore_paused" to "yes" puts MPD into pause mode instead # of starting playback after startup. # #restore_paused "no" # # This setting enables MPD to create playlists in a format usable by other # music players. # #save_absolute_paths_in_playlists "no" # # This setting defines a list of tag types that will be extracted during the # audio file discovery process. The complete list of possible values can be # found in the user manual. #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" # # This example just enables the "comment" tag without disabling all # the other supported tags: #metadata_to_use "+comment" # # This setting enables automatic update of MPD's database when files in # music_directory are changed. # #auto_update "yes" # # Limit the depth of the directories being watched, 0 means only watch # the music directory itself. There is no limit by default. # #auto_update_depth "3" #
Symbolic link behavior
# If this setting is set to "yes", MPD will discover audio files by following # symbolic links outside of the configured music_directory. # #follow_outside_symlinks "yes" # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links inside of the configured music_directory. # #follow_inside_symlinks "yes" #
Zeroconf / Avahi Service Discovery
# If this setting is set to "yes", service information will be published with # Zeroconf / Avahi. # #zeroconf_enabled "yes" # # The argument to this setting will be the Zeroconf / Avahi unique name for # this MPD server on the network. %h will be replaced with the hostname. # #zeroconf_name "Music Player @ %h" #
Permissions
# If this setting is set, MPD will require password authorization. The password # setting can be specified multiple times for different password profiles. # #password "password@read,add,control,admin" # # This setting specifies the permissions a user has who has not yet logged in. # #default_permissions "read,add,control,admin" #
Database
#database { # plugin "proxy" # host "other.mpd.host" # port "6600" #}
Input
input { plugin "curl" # proxy "proxy.isp.com:8080" # proxy_user "user" # proxy_password "password" }
Audio Output
# MPD supports various audio output types, as well as playing through multiple # audio outputs at the same time, through multiple audio_output settings # blocks. Setting this block is optional, though the server will only attempt # autodetection for one sound card. # # An example of an ALSA output: # #audio_output { # type "alsa" # name "My ALSA Device" # period_time "50000" ## device "hw:0,0" # optional ## mixer_type "hardware" # optional ## mixer_device "default" # optional ## mixer_control "PCM" # optional ## mixer_index "0" # optional #} # For NCMPCPP Visualizer audio_output { type "fifo" name "Visualizer feed" path "/tmp/mpd.fifo" format "44100:16:2" } # # An example of an OSS output: # #audio_output { # type "oss" # name "My OSS Device" ## device "/dev/dsp" # optional ## mixer_type "hardware" # optional ## mixer_device "/dev/mixer" # optional ## mixer_control "PCM" # optional #} # # An example of a shout output (for streaming to Icecast): # #audio_output { # type "shout" # encoder "vorbis" # optional # name "My Shout Stream" # host "localhost" # port "8000" # mount "/mpd.ogg" # password "hackme" # quality "5.0" # bitrate "128" # format "44100:16:1" ## protocol "icecast2" # optional ## user "source" # optional ## description "My Stream Description" # optional ## url "http://example.com" # optional ## genre "jazz" # optional ## public "no" # optional ## timeout "2" # optional ## mixer_type "software" # optional #} # # An example of a recorder output: # #audio_output { # type "recorder" # name "My recorder" # encoder "vorbis" # optional, vorbis or lame # path "/var/lib/mpd/recorder/mpd.ogg" ## quality "5.0" # do not define if bitrate is defined # bitrate "128" # do not define if quality is defined # format "44100:16:1" #} # # An example of a httpd output (built-in HTTP streaming server): # #audio_output { # type "httpd" # name "My HTTP Stream" # encoder "vorbis" # optional, vorbis or lame # port "8000" # bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 ## quality "5.0" # do not define if bitrate is defined # bitrate "128" # do not define if quality is defined # format "44100:16:1" # max_clients "0" # optional 0=no limit #} # # An example of a pulseaudio output (streaming to a remote pulseaudio server) # audio_output { type "pulse" name "My Pulse Output" # server "localhost" # optional # sink "remote_server_sink" # optional } # # An example of a winmm output (Windows multimedia API). # #audio_output { # type "winmm" # name "My WinMM output" ## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional # or ## device "0" # optional ## mixer_type "hardware" # optional #} # # An example of an openal output. # #audio_output { # type "openal" # name "My OpenAL output" ## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional #} # # An example of an sndio output. # #audio_output { # type "sndio" # name "sndio output" # mixer_type "hardware" #} # # An example of an OS X output: # #audio_output { # type "osx" # name "My OS X Device" ## device "Built-in Output" # optional ## channel_map "-1,-1,0,1" # optional #} # ## Example "pipe" output: # #audio_output { # type "pipe" # name "my pipe" # command "aplay -f cd 2>/dev/null" ## Or if you're want to use AudioCompress # command "AudioCompress -m | aplay -f cd 2>/dev/null" ## Or to send raw PCM stream through PCM: # command "nc example.org 8765" # format "44100:16:2" #} # ## An example of a null output (for no audio output): # #audio_output { # type "null" # name "My Null Output" # mixer_type "none" # optional #} #
Normalization automatic volume adjustments
# This setting specifies the type of ReplayGain to use. This setting can have # the argument "off", "album", "track" or "auto". "auto" is a special mode that # chooses between "track" and "album" depending on the current state of # random playback. If random playback is enabled then "track" mode is used. # See <http://www.replaygain.org> for more details about ReplayGain. # This setting is off by default. # #replaygain "album" # # This setting sets the pre-amp used for files that have ReplayGain tags. By # default this setting is disabled. # #replaygain_preamp "0" # # This setting sets the pre-amp used for files that do NOT have ReplayGain tags. # By default this setting is disabled. # #replaygain_missing_preamp "0" # # This setting enables or disables ReplayGain limiting. # MPD calculates actual amplification based on the ReplayGain tags # and replaygain_preamp / replaygain_missing_preamp setting. # If replaygain_limit is enabled MPD will never amplify audio signal # above its original level. If replaygain_limit is disabled such amplification # might occur. By default this setting is enabled. # #replaygain_limit "yes" # # This setting enables on-the-fly normalization volume adjustment. This will # result in the volume of all playing audio to be adjusted so the output has # equal "loudness". This setting is disabled by default. # #volume_normalization "no" #
Character Encoding
# If file or directory names do not display correctly for your locale then you # may need to modify this setting. # #filesystem_charset "UTF-8"
Beets
directory: ~/Music library: ~/Music/musiclibrary.db import: move: yes
Mopidy
[spotify] username = dehaeze.thomas@gmail.com password = <<get-password(passname="spotify.com/dehaeze.thomas@gmail.com")>> client_id = 3b740ab1-f26f-4c38-aee0-4dcb9e58b375 client_secret = ***REMOVED*** bitrate = 320 [mpd] enabled = true hostname = 127.0.0.1 port = 6600 password = max_connections = 20 connection_timeout = 60 zeroconf = Mopidy MPD server on $hostname command_blacklist = listall,listallinfo default_playlist_scheme = m3u [audio] output = tee name=t t. ! queue ! autoaudiosink t. ! queue ! audioresample ! audioconvert ! audio/x-raw,rate=44100,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/mpd.fifo
Radio with curseradio
[opml] root = http://opml.radiotime.com/ [playback] command = /usr/bin/mpv [interface] keymap = vi [keymap.vi] up = k down = j start = 0 end = $ pageup = u pagedown = d enter = l stop = p exit = q favourite = f