From 7e7aa928072775240ff70ca61f2dd0e8a09242d8 Mon Sep 17 00:00:00 2001 From: Johannes Löthberg Date: Sun, 2 Feb 2014 20:35:42 +0100 Subject: (Let's pretend that this is the) initial commit --- ncmpcpp/bindings | 515 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ncmpcpp/config | 277 ++++++++++++++++++++++++++++++ 2 files changed, 792 insertions(+) create mode 100644 ncmpcpp/bindings create mode 100644 ncmpcpp/config (limited to 'ncmpcpp') diff --git a/ncmpcpp/bindings b/ncmpcpp/bindings new file mode 100644 index 0000000..046ec25 --- /dev/null +++ b/ncmpcpp/bindings @@ -0,0 +1,515 @@ +########################################################## +## this is example bindings configuration file, copy it ## +## to ~/.ncmpcpp/bindings and set up your preferences ## +########################################################## +## +##### General rules ##### +## +## 1) Because each action has runtime checks whether it's +## ok to run it, a few actions can be bound to one key. +## Actions will be bound in order given in configuration +## file. When a key is pressed, first action in order +## will test itself whether it's possible to run it. If +## test succeeds, action is executed and other actions +## bound to this key are ignored. If it doesn't, next +## action in order tests itself etc. +## +## 2) It's possible to bind more that one action at once +## to a key. It can be done using the following syntax: +## +## def_key "key" +## action1 +## action2 +## ... +## +## This creates chain of actions. When such chain is +## executed, each action in chain is run until the end of +## chain is reached or one of actions failed to execute +## due to its requirements not being met. Note that +## execution of chain of actions ALWAYS succeeds, no +## matter if one of actions from the chain failed (even +## if it was the first one in order and thus nothing +## was really executed). Because of that, if you decide +## to bind both actions and chains to a single key, make +## sure that chain is defined in the end. Otherwise, all +## actions bound to the key after chain will never be run. +## +## 3) When ncmpcpp starts, bindings configuration file is +## parsed and then ncmpcpp provides "missing pieces" +## of default keybindings. If you want to disable some +## bindings, there is a special action called 'dummy' +## for that purpose. Eg. if you want to disable ability +## to crop playlists, you need to put the following +## into configuration file: +## +## def_key "C" +## dummy +## +## After that ncmpcpp will not bind any default action +## to this key. +## +## 4) To let you write simple macros, the following special +## actions are provided: +## +## - push_character "character" - pushes given special +## character into input queue, so it will be immediately +## picked by ncmpcpp upon next call to readKey function. +## Accepted values: mouse, up, down, page_up, page_down, +## home, end, space, enter, insert, delete, left, right, +## tab, shift_tab, ctrl_a, ctrl_b, ..., ctrl_z, f1, f2, +## ..., f12, backspace, backspace_2. +## +## - push_characters "string" - pushes given string into +## input queue. +## +## - require_runnable "action" - checks whether given action +## is runnable and fails if it isn't. This is especially +## useful when mixed with previous two functions. Consider +## the following macro definition: +## +## def_key "key" +## push_characters "custom_filter" +## apply_filter +## +## If apply_filter can't be currently run, we end up with +## sequence of characters in input queue which will be +## treated just as we typed them. This may lead to unexpected +## results (in this case 'c' will most likely clear current +## playlist, 'u' will trigger database update, 's' will stop +## playback etc.). To prevent such thing from happening, we +## need to change above definition to this one: +## +## def_key "key" +## require_runnable "apply_filter" +## push_characters "custom_filter" +## apply_filter +## +## Here, first we test whether apply_filter can be actually run +## before we stuff characters into input queue, so if condition +## is not met, whole chain is aborted and we're fine. +## +## - require_screen "screen" - checks whether given screen is +## currently active. accepted values: browser, clock, help, +## media_library, outputs, playlist, playlist_editor, +## search_engine, tag_editor, visualizer, last_fm, lyrics, +## selected_items_adder, server_info, song_info, +## sort_playlist_dialog, tiny_tag_editor. +## +## - run_external_command "command" - runs given command using +## system() function. +## +## 5) In addition to binding to a key, you can also bind actions +## or chains of actions to a command. If it comes to commands, +## syntax is very similar to defining keys. Here goes example +## definition of a command: +## +## def_command "quit" [deferred] +## stop +## quit +## +## If you execute the above command (which can be done by +## invoking action execute_command, typing 'quit' and pressing +## enter), ncmpcpp will stop the player and then quit. Note the +## presence of word 'deferred' enclosed in square brackets. It +## tells ncmpcpp to wait for confirmation (ie. pressing enter) +## after you typed quit. Instead of 'deferred', 'immediate' +## could be used. Then ncmpcpp will not wait for confirmation +## (enter) and will execute the command the moment it sees it. +## +## Note: Both 'backspace' and 'backspace_2' are used because some +## terminals interpret backspace using keycode of 'backspace' +## and some the one of 'backspace_2'. You can get away with +## binding once if all your terminal emulators use the same +## value. +## +## Note: There is a difference between: +## +## def_key "key" +## action1 +## +## def_key "key" +## action2 +## +## and +## +## def_key "key" +## action1 +## action2 +## +## First one binds two single actions to the same key whilst +## second one defines a chain of actions. The behavior of +## these two is different and is described in (1) and (2). +## +## Note: Function def_key accepts non-ascii characters. +## +##### List of unbound actions ##### +## +## The following actions are not bound to any key/command: +## +## - set_volume +## - filter_playlist_on_priorities +## +# +#def_key "mouse" +# mouse_event +# +def_key "k" + scroll_up + +def_key "j" + scroll_down + +#def_key "[" +# scroll_up_album +# +#def_key "]" +# scroll_down_album +# +#def_key "{" +# scroll_up_artist +# +#def_key "}" +# scroll_down_artist +# +#def_key "page_up" +# page_up +# +#def_key "page_down" +# page_down +# +#def_key "home" +# move_home +# +#def_key "end" +# move_end +# +#def_key "space" +# press_space +# +#def_key "enter" +# press_enter +# +#def_key "delete" +# delete_playlist_items +# +#def_key "delete" +# delete_stored_playlist +# +#def_key "right" +# next_column +# +#def_key "right" +# slave_screen +# +#def_key "right" +# volume_up +# +#def_key "+" +# volume_up +# +#def_key "left" +# previous_column +# +#def_key "left" +# master_screen +# +#def_key "left" +# volume_down +# +#def_key "-" +# volume_down +# +#def_key ":" +# execute_command +# +#def_key "tab" +# next_screen +# +#def_key "shift_tab" +# previous_screen +# +#def_key "f1" +# show_help +# +#def_key "1" +# show_playlist +# +#def_key "2" +# show_browser +# +#def_key "2" +# change_browse_mode +# +#def_key "3" +# show_search_engine +# +#def_key "3" +# reset_search_engine +# +#def_key "4" +# show_media_library +# +#def_key "4" +# toggle_media_library_columns_mode +# +#def_key "5" +# show_playlist_editor +# +#def_key "6" +# show_tag_editor +# +#def_key "7" +# show_outputs +# +#def_key "8" +# show_visualizer +# +#def_key "=" +# show_clock +# +#def_key "@" +# show_server_info +# +#def_key "s" +# stop +# +#def_key "p" +# pause +# +#def_key ">" +# next +# +#def_key "<" +# previous +# +#def_key "ctrl_h" +# jump_to_parent_directory +# +#def_key "ctrl_h" +# replay_song +# +#def_key "backspace" +# jump_to_parent_directory +# +#def_key "backspace" +# replay_song +# +#def_key "backspace_2" +# jump_to_parent_directory +# +#def_key "backspace_2" +# replay_song +# +#def_key "f" +# seek_forward +# +#def_key "b" +# seek_backward +# +#def_key "r" +# toggle_repeat +# +#def_key "z" +# toggle_random +# +#def_key "y" +# save_tag_changes +# +#def_key "y" +# start_searching +# +#def_key "y" +# toggle_single +# +#def_key "R" +# toggle_consume +# +#def_key "Y" +# toggle_replay_gain_mode +# +#def_key "t" +# toggle_space_mode +# +#def_key "T" +# toggle_add_mode +# +#def_key "|" +# toggle_mouse +# +#def_key "#" +# toggle_bitrate_visibility +# +#def_key "Z" +# shuffle +# +#def_key "x" +# toggle_crossfade +# +#def_key "X" +# set_crossfade +# +#def_key "u" +# update_database +# +#def_key "ctrl_v" +# sort_playlist +# +#def_key "ctrl_r" +# reverse_playlist +# +#def_key "ctrl_f" +# apply_filter +# +#def_key "/" +# find +# +#def_key "/" +# find_item_forward +# +#def_key "?" +# find +# +#def_key "?" +# find_item_backward +# +#def_key "." +# next_found_item +# +#def_key "," +# previous_found_item +# +#def_key "w" +# toggle_find_mode +# +#def_key "e" +# edit_song +# +#def_key "e" +# edit_library_tag +# +#def_key "e" +# edit_library_album +# +#def_key "e" +# edit_directory_name +# +#def_key "e" +# edit_playlist_name +# +#def_key "e" +# edit_lyrics +# +#def_key "i" +# show_song_info +# +#def_key "I" +# show_artist_info +# +#def_key "g" +# jump_to_position_in_song +# +#def_key "l" +# show_lyrics +# +#def_key "v" +# reverse_selection +# +#def_key "V" +# remove_selection +# +#def_key "B" +# select_album +# +#def_key "a" +# add_selected_items +# +#def_key "c" +# clear_playlist +# +#def_key "c" +# clear_main_playlist +# +#def_key "C" +# crop_playlist +# +#def_key "C" +# crop_main_playlist +# +#def_key "m" +# move_sort_order_up +# +#def_key "m" +# move_selected_items_up +# +#def_key "m" +# toggle_media_library_sort_mode +# +#def_key "n" +# move_sort_order_down +# +#def_key "n" +# move_selected_items_down +# +#def_key "M" +# move_selected_items_to +# +#def_key "A" +# add +# +#def_key "S" +# save_playlist +# +#def_key "o" +# jump_to_playing_song +# +#def_key "G" +# jump_to_browser +# +#def_key "G" +# jump_to_playlist_editor +# +#def_key "~" +# jump_to_media_library +# +#def_key "E" +# jump_to_tag_editor +# +#def_key "U" +# toggle_playing_song_centering +# +#def_key "P" +# toggle_display_mode +# +#def_key "\\" +# toggle_interface +# +#def_key "!" +# toggle_separators_between_albums +# +#def_key "L" +# toggle_lyrics_fetcher +# +#def_key "F" +# toggle_fetching_lyrics_in_background +# +#def_key "ctrl_l" +# toggle_screen_lock +# +#def_key "`" +# toggle_browser_sort_mode +# +#def_key "`" +# toggle_library_tag_type +# +#def_key "`" +# refetch_lyrics +# +#def_key "`" +# add_random_items +# +#def_key "ctrl_p" +# set_selected_items_priority +# +#def_key "q" +# quit +# diff --git a/ncmpcpp/config b/ncmpcpp/config new file mode 100644 index 0000000..1e91f3c --- /dev/null +++ b/ncmpcpp/config @@ -0,0 +1,277 @@ +ncmpcpp_directory = "~/.config/ncmpcpp" +lyrics_directory = "~/.config/mpd/lyrics" +mpd_host = "127.0.0.1" +mpd_port = "6600" +mpd_music_dir = "/media/music" +#mpd_connection_timeout = "5" +#mpd_crossfade_time = "5" + +# Vis +visualizer_in_stereo = "yes" +visualizer_fifo_path = "/run/user/1000/mpd.fifo" +visualizer_output_name = "mpd_vis_fifo" +visualizer_sync_interval = "30" +visualizer_type = "spectrum" # (spectrum/wave) +visualizer_look = "◆│" + +message_delay_time = "5" + +##### song format ##### +## %l - length +## %f - filename +## %D - directory +## %a - artist +## %A - album artist +## %t - title +## %b - album +## %y - year +## %n - track number (01/12 -> 01) +## %N - full track info (01/12 -> 01/12) +## %g - genre +## %c - composer +## %p - performer +## %d - disc +## %C - comment +## $R - begin right alignment +## you can also put them in { } and then it will be displayed +## only if all requested values are available and/or define alternate +## value with { }|{ } eg. {%a - %t}|{%f} +## eg. if you want length to be green, write $3%l$9 +## - 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 + +#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}" + +## Note: Below variables are for alternative version of user's interface. +## Their syntax supports all tags and colors listed above plus some extra +## markers used for text attributes. They are followed by character '$'. +## After that you can put: +## +## - b - bold text +## - u - underline text +## - r - reverse colors +## - a - use alternative character set +## +## If you don't want to use an 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. +## +#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}}" +now_playing_prefix = "$b" +now_playing_suffix = "$/b" +#browser_playlist_prefix = "$2playlist$9 " +#selected_item_prefix = "$6" +#selected_item_suffix = "$9" + +song_window_title_format = "MPD: {%a > }{%t}{ [%b]}|{%f}" +# +##### columns settings ##### +## +## syntax of song columns list format is "column column etc." +## +## - syntax for each column is: +## +## (width of column)[column's color]{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 column's +## 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, type []) +## +## 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 = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}" +song_columns_list_format = "(7f)[blue]{l} (20)[cyan]{a} (30)[blue]{b} (50)[cyan]{t}" +# +##### various settings ##### +# +## +## Note: Custom command that will be executed each +## time song changes. Useful for notifications etc. +## +## Attention: It doesn't support song format anymore. +## Use `ncmpcpp --now-playing SONG_FORMAT` instead. +## +#execute_on_song_change = "" +# +#playlist_show_remaining_time = "no" +# +#playlist_shorten_total_times = "no" +# +#playlist_separate_albums = "no" +# +#playlist_display_mode = "classic" (classic/columns) +playlist_display_mode = "columns" +# +#browser_display_mode = "classic" (classic/columns) +browser_display_mode = "columns" +# +#search_engine_display_mode = "classic" (classic/columns) +# +#playlist_editor_display_mode = "classic" (classic/columns) +# +#discard_colors_if_item_is_selected = "yes" +# +#incremental_seeking = "yes" +# +#seek_time = "1" +# +#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 = "━━╸" +#progressbar_look = "=>" +# +#default_place_to_search_in = "database" (database/playlist) +# +user_interface = "alternative" # (classic/alternative) +# +media_library_left_column = "A" # (possible values: a,y,g,c,p, legend above) +# +#default_find_mode = "wrapped" (wrapped/normal) +# +#default_space_mode = "add" (add/select) +# +#default_tag_editor_left_col = "albums" (albums/dirs) +# +#default_tag_editor_pattern = "%n - %t" +# +#header_visibility = "yes" +# +#statusbar_visibility = "yes" +# +#titles_visibility = "yes" +# +#header_text_scrolling = "yes" +# +#fancy_scrolling = "yes" +# +#cyclic_scrolling = "no" +# +#lines_scrolled = "2" +# +#follow_now_playing_lyrics = "no" +# +#fetch_lyrics_for_current_song_in_background = "no" +# +#store_lyrics_in_song_dir = "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 = "" +# +#ncmpc_like_songs_adding = "no" (enabled - add/remove, disabled - always add) +# +#show_hidden_files_in_local_browser = "no" +# +#display_screens_numbers_on_start = "yes" +# +## +## How shall key_screen_switcher work? +## +## - "previous" - switch between current and last used screen +## - "sequence: 2 -> 9 -> 5" - switch between given sequence of screens. +## +## Screen numbers you can use after 'sequence' keyword are: +## +## - 1 - help +## - 2 - playlist +## - 3 - browser +## - 4 - search engine +## - 5 - media library +## - 6 - playlist editor +## - 7 - tag editor +## - 8 - outputs +## - 9 - visualizer +## - 10 - clock +## +## As you can see, above example will switch between +## playlist, visualizer and media library screens. +## +#screen_switcher_mode = "sequence: 2 -> 3" +# +## +## 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" +startup_screen = "2" +jump_to_now_playing_song_at_start = "yes" +ask_before_clearing_main_playlist = "yes" +clock_display_seconds = "yes" +# display_volume_level = "yes" +display_bitrate = "yes" +display_remaining_time = "no" +regular_expressions = "extended" # (basic/extended) + +#block_search_constraints_change_if_items_found = "yes" +mouse_support = "yes" +mouse_list_scroll_whole_page = "yes" +empty_tag_marker = "" +enable_window_title = "yes" +search_engine_default_search_mode = "2" + +##### colors definitions ##### +colors_enabled = "yes" +header_window_color = "blue" +volume_color = "cyan" +state_line_color = "white" +state_flags_color = "white" +main_window_color = "blue" +color1 = "blue" +color2 = "cyan" +main_window_highlight_color = "green" +progressbar_color = "cyan" +statusbar_color = "cyan" +alternative_ui_separator_color = "blue" +active_column_color = "cyan" +visualizer_color = "cyan" -- cgit v1.2.3-54-g00ecf