Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
ncmpcpp/doc/bindings
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
551 lines (551 sloc)
10.6 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################## | |
## This is the example bindings file. Copy it to ## | |
## $XDG_CONFIG_HOME/ncmpcpp/bindings or ~/.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 a chain of actions. When such chain is | |
## executed, each action in chain is run until the end of | |
## chain is reached or one of its actions fails to execute | |
## due to its requirements not being met. If multiple actions | |
## and/or chains are bound to the same key, they will be | |
## consecutively run until one of them gets fully executed. | |
## | |
## 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, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\, | |
## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace. | |
## In addition, most of these names can be prefixed with | |
## alt-/ctrl-/shift- to be recognized with the appropriate | |
## modifier key(s). | |
## | |
## - 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. | |
## | |
## - run_external_console_command "command" - runs given console | |
## 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: while command chains are executed, internal environment | |
## update (which includes current window refresh and mpd status | |
## update) is not performed for performance reasons. However, it | |
## may be desirable to do so in some situration. Therefore it's | |
## possible to invoke by hand by performing 'update enviroment' | |
## action. | |
## | |
## 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 | |
## - load | |
## | |
# | |
#def_key "mouse" | |
# mouse_event | |
# | |
#def_key "up" | |
# scroll_up | |
# | |
#def_key "shift-up" | |
# select_item | |
# scroll_up | |
# | |
#def_key "down" | |
# scroll_down | |
# | |
#def_key "shift-down" | |
# select_item | |
# 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 "insert" | |
# select_item | |
# | |
#def_key "enter" | |
# enter_directory | |
# | |
#def_key "enter" | |
# toggle_output | |
# | |
#def_key "enter" | |
# run_action | |
# | |
#def_key "enter" | |
# play_item | |
# | |
#def_key "space" | |
# add_item_to_playlist | |
# | |
#def_key "space" | |
# toggle_lyrics_update_on_song_change | |
# | |
#def_key "space" | |
# toggle_visualization_type | |
# | |
#def_key "delete" | |
# delete_playlist_items | |
# | |
#def_key "delete" | |
# delete_browser_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" | |
# play | |
# | |
#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_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-s" | |
# sort_playlist | |
# | |
#def_key "ctrl-s" | |
# toggle_browser_sort_mode | |
# | |
#def_key "ctrl-s" | |
# toggle_media_library_sort_mode | |
# | |
#def_key "ctrl-r" | |
# reverse_playlist | |
# | |
#def_key "ctrl-f" | |
# apply_filter | |
# | |
#def_key "ctrl-_" | |
# select_found_items | |
# | |
#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 "ctrl-v" | |
# select_range | |
# | |
#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 "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" | |
# fetch_lyrics_in_background | |
# | |
#def_key "alt-l" | |
# toggle_fetching_lyrics_in_background | |
# | |
#def_key "ctrl-l" | |
# toggle_screen_lock | |
# | |
#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 | |
# |