Commit | Line | Data |
---|---|---|
77953380 AB |
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 | # | |
8b6f7ed8 AB |
193 | def_key "l" |
194 | next_column | |
77953380 AB |
195 | # |
196 | #def_key "right" | |
197 | # slave_screen | |
198 | # | |
199 | #def_key "right" | |
200 | # volume_up | |
201 | # | |
202 | #def_key "+" | |
203 | # volume_up | |
204 | # | |
8b6f7ed8 AB |
205 | def_key "h" |
206 | previous_column | |
77953380 AB |
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 | # | |
91018a34 | 406 | def_key "ctrl-l" |
8b6f7ed8 | 407 | show_lyrics |
77953380 AB |
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 | # |