new i3 setup
[~bandali/configs] / ncmpcpp / .ncmpcpp / bindings
1 ##########################################################
2 ## this is example bindings configuration file, copy it ##
3 ## to ~/.ncmpcpp/bindings and set up your preferences ##
4 ##########################################################
5 ##
6 ##### General rules #####
7 ##
8 ## 1) Because each action has runtime checks whether it's
9 ## ok to run it, a few actions can be bound to one key.
10 ## Actions will be bound in order given in configuration
11 ## file. When a key is pressed, first action in order
12 ## will test itself whether it's possible to run it. If
13 ## test succeeds, action is executed and other actions
14 ## bound to this key are ignored. If it doesn't, next
15 ## action in order tests itself etc.
16 ##
17 ## 2) It's possible to bind more that one action at once
18 ## to a key. It can be done using the following syntax:
19 ##
20 ## def_key "key"
21 ## action1
22 ## action2
23 ## ...
24 ##
25 ## This creates a chain of actions. When such chain is
26 ## executed, each action in chain is run until the end of
27 ## chain is reached or one of its actions fails to execute
28 ## due to its requirements not being met. If multiple actions
29 ## and/or chains are bound to the same key, they will be
30 ## consecutively run until one of them gets fully executed.
31 ##
32 ## 3) When ncmpcpp starts, bindings configuration file is
33 ## parsed and then ncmpcpp provides "missing pieces"
34 ## of default keybindings. If you want to disable some
35 ## bindings, there is a special action called 'dummy'
36 ## for that purpose. Eg. if you want to disable ability
37 ## to crop playlists, you need to put the following
38 ## into configuration file:
39 ##
40 ## def_key "C"
41 ## dummy
42 ##
43 ## After that ncmpcpp will not bind any default action
44 ## to this key.
45 ##
46 ## 4) To let you write simple macros, the following special
47 ## actions are provided:
48 ##
49 ## - push_character "character" - pushes given special
50 ## character into input queue, so it will be immediately
51 ## picked by ncmpcpp upon next call to readKey function.
52 ## Accepted values: mouse, up, down, page_up, page_down,
53 ## home, end, space, enter, insert, delete, left, right,
54 ## tab, shift_tab, ctrl_a, ctrl_b, ..., ctrl_z, f1, f2,
55 ## ..., f12, backspace, backspace_2.
56 ##
57 ## - push_characters "string" - pushes given string into
58 ## input queue.
59 ##
60 ## - require_runnable "action" - checks whether given action
61 ## is runnable and fails if it isn't. This is especially
62 ## useful when mixed with previous two functions. Consider
63 ## the following macro definition:
64 ##
65 ## def_key "key"
66 ## push_characters "custom_filter"
67 ## apply_filter
68 ##
69 ## If apply_filter can't be currently run, we end up with
70 ## sequence of characters in input queue which will be
71 ## treated just as we typed them. This may lead to unexpected
72 ## results (in this case 'c' will most likely clear current
73 ## playlist, 'u' will trigger database update, 's' will stop
74 ## playback etc.). To prevent such thing from happening, we
75 ## need to change above definition to this one:
76 ##
77 ## def_key "key"
78 ## require_runnable "apply_filter"
79 ## push_characters "custom_filter"
80 ## apply_filter
81 ##
82 ## Here, first we test whether apply_filter can be actually run
83 ## before we stuff characters into input queue, so if condition
84 ## is not met, whole chain is aborted and we're fine.
85 ##
86 ## - require_screen "screen" - checks whether given screen is
87 ## currently active. accepted values: browser, clock, help,
88 ## media_library, outputs, playlist, playlist_editor,
89 ## search_engine, tag_editor, visualizer, last_fm, lyrics,
90 ## selected_items_adder, server_info, song_info,
91 ## sort_playlist_dialog, tiny_tag_editor.
92 ##
93 ## - run_external_command "command" - runs given command using
94 ## system() function.
95 ##
96 ## 5) In addition to binding to a key, you can also bind actions
97 ## or chains of actions to a command. If it comes to commands,
98 ## syntax is very similar to defining keys. Here goes example
99 ## definition of a command:
100 ##
101 ## def_command "quit" [deferred]
102 ## stop
103 ## quit
104 ##
105 ## If you execute the above command (which can be done by
106 ## invoking action execute_command, typing 'quit' and pressing
107 ## enter), ncmpcpp will stop the player and then quit. Note the
108 ## presence of word 'deferred' enclosed in square brackets. It
109 ## tells ncmpcpp to wait for confirmation (ie. pressing enter)
110 ## after you typed quit. Instead of 'deferred', 'immediate'
111 ## could be used. Then ncmpcpp will not wait for confirmation
112 ## (enter) and will execute the command the moment it sees it.
113 ##
114 ## Note: Both 'backspace' and 'backspace_2' are used because some
115 ## terminals interpret backspace using keycode of 'backspace'
116 ## and some the one of 'backspace_2'. You can get away with
117 ## binding once if all your terminal emulators use the same
118 ## value.
119 ##
120 ## Note: There is a difference between:
121 ##
122 ## def_key "key"
123 ## action1
124 ##
125 ## def_key "key"
126 ## action2
127 ##
128 ## and
129 ##
130 ## def_key "key"
131 ## action1
132 ## action2
133 ##
134 ## First one binds two single actions to the same key whilst
135 ## second one defines a chain of actions. The behavior of
136 ## these two is different and is described in (1) and (2).
137 ##
138 ## Note: Function def_key accepts non-ascii characters.
139 ##
140 ##### List of unbound actions #####
141 ##
142 ## The following actions are not bound to any key/command:
143 ##
144 ## - set_volume
145 ## - filter_playlist_on_priorities
146 ##
147 #
148 #def_key "mouse"
149 # mouse_event
150 #
151 def_key "k"
152 scroll_up
153 #
154 def_key "j"
155 scroll_down
156 #
157 #def_key "["
158 # scroll_up_album
159 #
160 #def_key "]"
161 # scroll_down_album
162 #
163 #def_key "{"
164 # scroll_up_artist
165 #
166 #def_key "}"
167 # scroll_down_artist
168 #
169 #def_key "page_up"
170 # page_up
171 #
172 #def_key "page_down"
173 # page_down
174 #
175 def_key "g"
176 move_home
177 #
178 def_key "G"
179 move_end
180 #
181 #def_key "space"
182 # press_space
183 #
184 #def_key "enter"
185 # press_enter
186 #
187 #def_key "delete"
188 # delete_playlist_items
189 #
190 #def_key "delete"
191 # delete_stored_playlist
192 #
193 #def_key "right"
194 # next_column
195 #
196 #def_key "right"
197 # slave_screen
198 #
199 #def_key "right"
200 # volume_up
201 #
202 #def_key "+"
203 # volume_up
204 #
205 #def_key "left"
206 # previous_column
207 #
208 #def_key "left"
209 # master_screen
210 #
211 #def_key "left"
212 # volume_down
213 #
214 #def_key "-"
215 # volume_down
216 #
217 def_key ";"
218 execute_command
219 #
220 #def_key "tab"
221 # next_screen
222 #
223 #def_key "shift_tab"
224 # previous_screen
225 #
226 #def_key "f1"
227 # show_help
228 #
229 #def_key "1"
230 # show_playlist
231 #
232 #def_key "2"
233 # show_browser
234 #
235 #def_key "2"
236 # change_browse_mode
237 #
238 #def_key "3"
239 # show_search_engine
240 #
241 #def_key "3"
242 # reset_search_engine
243 #
244 #def_key "4"
245 # show_media_library
246 #
247 #def_key "4"
248 # toggle_media_library_columns_mode
249 #
250 #def_key "5"
251 # show_playlist_editor
252 #
253 #def_key "6"
254 # show_tag_editor
255 #
256 #def_key "7"
257 # show_outputs
258 #
259 #def_key "8"
260 # show_visualizer
261 #
262 #def_key "="
263 # show_clock
264 #
265 #def_key "@"
266 # show_server_info
267 #
268 #def_key "s"
269 # stop
270 #
271 #def_key "p"
272 # pause
273 #
274 #def_key ">"
275 # next
276 #
277 #def_key "<"
278 # previous
279 #
280 #def_key "ctrl_h"
281 # jump_to_parent_directory
282 #
283 #def_key "ctrl_h"
284 # replay_song
285 #
286 #def_key "backspace"
287 # jump_to_parent_directory
288 #
289 #def_key "backspace"
290 # replay_song
291 #
292 #def_key "backspace_2"
293 # jump_to_parent_directory
294 #
295 #def_key "backspace_2"
296 # replay_song
297 #
298 #def_key "f"
299 # seek_forward
300 #
301 #def_key "b"
302 # seek_backward
303 #
304 #def_key "r"
305 # toggle_repeat
306 #
307 #def_key "z"
308 # toggle_random
309 #
310 #def_key "y"
311 # save_tag_changes
312 #
313 #def_key "y"
314 # start_searching
315 #
316 #def_key "y"
317 # toggle_single
318 #
319 #def_key "R"
320 # toggle_consume
321 #
322 #def_key "Y"
323 # toggle_replay_gain_mode
324 #
325 #def_key "t"
326 # toggle_space_mode
327 #
328 #def_key "T"
329 # toggle_add_mode
330 #
331 #def_key "|"
332 # toggle_mouse
333 #
334 #def_key "#"
335 # toggle_bitrate_visibility
336 #
337 #def_key "Z"
338 # shuffle
339 #
340 #def_key "x"
341 # toggle_crossfade
342 #
343 #def_key "X"
344 # set_crossfade
345 #
346 #def_key "u"
347 # update_database
348 #
349 #def_key "ctrl_v"
350 # sort_playlist
351 #
352 #def_key "ctrl_r"
353 # reverse_playlist
354 #
355 #def_key "ctrl_f"
356 # apply_filter
357 #
358 #def_key "/"
359 # find
360 #
361 #def_key "/"
362 # find_item_forward
363 #
364 #def_key "?"
365 # find
366 #
367 #def_key "?"
368 # find_item_backward
369 #
370 #def_key "."
371 # next_found_item
372 #
373 #def_key ","
374 # previous_found_item
375 #
376 #def_key "w"
377 # toggle_find_mode
378 #
379 #def_key "e"
380 # edit_song
381 #
382 #def_key "e"
383 # edit_library_tag
384 #
385 #def_key "e"
386 # edit_library_album
387 #
388 #def_key "e"
389 # edit_directory_name
390 #
391 #def_key "e"
392 # edit_playlist_name
393 #
394 #def_key "e"
395 # edit_lyrics
396 #
397 #def_key "i"
398 # show_song_info
399 #
400 #def_key "I"
401 # show_artist_info
402 #
403 #def_key "g"
404 # jump_to_position_in_song
405 #
406 #def_key "l"
407 # show_lyrics
408 #
409 #def_key "v"
410 # reverse_selection
411 #
412 #def_key "V"
413 # remove_selection
414 #
415 #def_key "B"
416 # select_album
417 #
418 #def_key "a"
419 # add_selected_items
420 #
421 #def_key "c"
422 # clear_playlist
423 #
424 #def_key "c"
425 # clear_main_playlist
426 #
427 #def_key "C"
428 # crop_playlist
429 #
430 #def_key "C"
431 # crop_main_playlist
432 #
433 #def_key "m"
434 # move_sort_order_up
435 #
436 #def_key "m"
437 # move_selected_items_up
438 #
439 #def_key "m"
440 # toggle_media_library_sort_mode
441 #
442 #def_key "m"
443 # set_visualizer_sample_multiplier
444 #
445 #def_key "n"
446 # move_sort_order_down
447 #
448 #def_key "n"
449 # move_selected_items_down
450 #
451 #def_key "M"
452 # move_selected_items_to
453 #
454 #def_key "A"
455 # add
456 #
457 #def_key "S"
458 # save_playlist
459 #
460 #def_key "o"
461 # jump_to_playing_song
462 #
463 #def_key "G"
464 # jump_to_browser
465 #
466 #def_key "G"
467 # jump_to_playlist_editor
468 #
469 #def_key "~"
470 # jump_to_media_library
471 #
472 #def_key "E"
473 # jump_to_tag_editor
474 #
475 #def_key "U"
476 # toggle_playing_song_centering
477 #
478 #def_key "P"
479 # toggle_display_mode
480 #
481 #def_key "\\"
482 # toggle_interface
483 #
484 #def_key "!"
485 # toggle_separators_between_albums
486 #
487 #def_key "L"
488 # toggle_lyrics_fetcher
489 #
490 #def_key "F"
491 # toggle_fetching_lyrics_in_background
492 #
493 #def_key "ctrl_l"
494 # toggle_screen_lock
495 #
496 #def_key "`"
497 # toggle_browser_sort_mode
498 #
499 #def_key "`"
500 # toggle_library_tag_type
501 #
502 #def_key "`"
503 # refetch_lyrics
504 #
505 #def_key "`"
506 # add_random_items
507 #
508 #def_key "ctrl_p"
509 # set_selected_items_priority
510 #
511 #def_key "q"
512 # quit
513 #