option parser: make assign_default_once work with non-copyable types
[ncmpcpp.git] / doc / ncmpcpp.1
blobececc552aa776955c8466411d1206bfdab0eff3c
1 .TH "ncmpcpp" "1"
2 .SH "NAME"
3 ncmpcpp \- An ncurses Music Player Daemon (MPD) client.
4 .SH "SYNOPSIS"
5 .B ncmpcpp
6 [options]
7 .SH "DESCRIPTION"
8 ncmpcpp is an ncurses client for MPD (Music Player Daemon), inspired by ncmpc.
10 Read more about MPD at http://www.musicpd.org
11 .SH "OPTIONS"
12 .B \-h, \-\-host
13 Connect to server at host [localhost]
14 .TP
15 .B \-p, \-\-port
16 Connect to server at port [6600]
17 .TP
18 .B \-c, \-\-config
19 Use alternative configuration file
20 .TP
21 .B \-s, \-\-screen <name>
22 Specify the startup screen (<name> may be: help, playlist, browser, search_engine, media_library, playlist_editor, tag_editor, outputs, visualizer, clock)
23 .TP
24 .B \-?, \-\-help
25 Display help.
26 .TP
27 .B \-v, \-\-version
28 Display version information.
29 .TP
30 .SH "CONFIGURATION"
31 When ncmpcpp starts, it tries to read user's settings from the ~/.ncmpcpp/config file. If no user's configuration is found, ncmpcpp uses its default configuration. An example configuration file containing all default values is provided with ncmpcpp and can be found usually in /usr/share/doc/ncmpcpp (exact location may depend on used distribution/OS/configure prefix).
33 Note: Each config option value must be enclosed in quotation marks (var = "example"). If you want to use quotation mark inside config option, prepend character '\\' to it.
35 Note: COLOR has to be the name (not a number) of one of colors 1-8 from SONG FORMAT section.
37 Supported configuration options:
38 .TP 
39 .B ncmpcpp_directory = PATH
40 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.
41 .TP 
42 .B lyrics_directory = PATH
43 Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other MPD clients (eg. ncmpc) also use that location.
44 .TP 
45 .B mpd_host = HOST
46 Connect to MPD running on specified host/unix socket. When HOST starts with a '/', it is assumed to be a unix socket.
47 .TP 
48 .B mpd_music_dir = PATH
49 Search for files in specified directory. This is needed for tag editor to work.
50 .TP 
51 .B mpd_port = PORT
52 Connect to MPD on the specified port.
53 .TP 
54 .B mpd_connection_timeout = SECONDS
55 Set connection timeout to MPD to given value.
56 .TP 
57 .B mpd_crossfade_time = SECONDS
58 Default number of seconds to crossfade, if enabled by ncmpcpp.
59 .TP
60 .B visualizer_in_stereo = yes/no
61 Should be set to 'yes', if fifo output's format was set to 44100:16:2.
62 .TP
63 .B visualizer_fifo_path = PATH
64 Path to mpd fifo output. This is needed to make music visualizer work (note that output sound format of this fifo has to be either 44100:16:1 or 44100:16:2, depending on whether you want mono or stereo visualization)
65 .TP
66 .B visualizer_output_name = NAME
67 Name of output that provides data for visualizer. Needed to keep sound and visualization in sync.
68 .TP
69 .B visualizer_sample_multiplier = NUMBER
70 Multiply received samples by given value. Very useful for proper visualization of quiet music.
71 .TP
72 .B visualizer_sync_interval = SECONDS
73 Defines interval between syncing visualizer and audio outputs.
74 .TP
75 .B visualizer_type = spectrum/wave
76 Defines default visualizer type (spectrum is available only if ncmpcpp was compiled with fftw support).
77 .TP
78 .B visualizer_look = STRING
79 Defines visualizer's look (string has to be exactly 2 characters long: first one is for wave whereas second for frequency spectrum).
80 .TP
81 .B system_encoding = ENCODING
82 If you use encoding other than utf8, set it in order to handle utf8 encoded strings properly.
83 .TP
84 .B seek_time = SECONDS
85 Base seek time to begin with.
86 .TP 
87 .B volume_change_step = NUMBER
88 Number of percents volume has to be increased/decreased by in volume_up/volume_down.
89 .TP 
90 .B playlist_disable_highlight_delay = SECONDS
91 Delay for highlighting playlist since the last key was pressed. If set to 0, highlighting never fades away.
92 .TP 
93 .B message_delay_time = SECONDS
94 Delay for displayed messages to remain visible.
95 .TP
96 .B song_list_format
97 Format for songs' list.
98 .TP
99 .B song_columns_list_format
100 Format for songs' list displayed in columns.
102 .B song_status_format
103 Song's format for statusbar.
105 .B song_library_format
106 Format for songs in Media library.
107 .TP 
108 .B tag_editor_album_format
109 Format for albums' list in Tag editor.
110 .TP 
111 .B song_window_title_format
112 Song format for window title.
114 .B browser_sort_mode
115 Determines sort mode for browser. Possible values are "name", "mtime", "format" and "noop".
117 .B browser_sort_format
118 Format to use for sorting songs in browser. For this option to be effective, browser_sort_mode must be set to "format".
119 .TP 
120 .B external_editor = PATH
121 Path to external editor used to edit lyrics.
123 .B browser_playlist_prefix = TEXT
124 Prefix for playlists in Browser.
126 .B default_tag_editor_pattern = TEXT
127 Default pattern used by Tag editor's parser.
128 .TP 
129 .B now_playing_prefix = TEXT
130 Prefix for currently playing song.
131 .TP 
132 .B now_playing_suffix = TEXT
133 Suffix for currently playing song.
134 .TP 
135 .B selected_item_prefix = TEXT
136 Prefix for selected items.
137 .TP 
138 .B selected_item_suffix = TEXT
139 Suffix for selected items.
140 .TP 
141 .B modified_item_prefix = TEXT
142 Prefix for modified item (tag editor).
143 .TP 
144 .B alternative_header_first_line_format = TEXT
145 Now playing song format for the first line in alternative user interface header window.
146 .TP 
147 .B alternative_header_second_line_format = TEXT
148 Now playing song format for the second line in alternative user interface header window.
149 .TP 
150 .B color1 = COLOR
151 One of colors used in Song info, Tiny tag editor and Search engine.
152 .TP 
153 .B color2 = COLOR
154 One of colors used in Song info, Tiny tag editor and Search engine.
155 .TP 
156 .B colors_enabled = yes/no
157 No need to describe it, huh?
158 .TP 
159 .B header_text_scrolling = yes/no
160 If enabled, text in header window will scroll if its length is longer then actual screen width, otherwise it won't.
161 .TP 
162 .B cyclic_scrolling = yes/no
163 If enabled, cyclic scrolling is used (e.g. if you press down arrow being at the end of list, it'll take you to the beginning)
164 .TP 
165 .B mouse_list_scroll_whole_page = yes/no
166 If enabled, mouse wheel will scroll the whole page of item list at a time, otherwise the number of lines specified by lines_scrolled variable.
167 .TP 
168 .B lines_scrolled = NUMBER
169 Number of lines that are scrolled with mouse wheel.
170 .TP 
171 .B search_engine_default_search_mode = MODE_NUMBER
172 Number of default mode used in search engine.
173 .TP 
174 .B playlist_show_remaining_time = yes/no
175 If enabled, time remaining to end of playlist will be shown after playlist's statistics.
176 .TP 
177 .B playlist_shorten_total_times = yes/no
178 If enabled, total/remaining playlist time displayed in statusbar will be shown using shortened units' names (d:h:m:s instead of days:hours:minutes:seconds).
179 .TP 
180 .B playlist_separate_albums = yes/no
181 If enabled, separators will be placed between albums.
182 .TP 
183 .B playlist_display_mode = classic/columns
184 Default display mode for Playlist.
185 .TP 
186 .B browser_display_mode = classic/columns
187 Default display mode for Browser.
188 .TP 
189 .B search_engine_display_mode = classic/columns
190 Default display mode for Search engine.
191 .TP 
192 .B playlist_editor_display_mode = classic/columns
193 Default display mode for Playlist editor.
194 .TP 
195 .B discard_colors_if_item_is_selected = yes/no
196 Indicates whether custom colors of tags have to be discarded if item is selected or not.
197 .TP 
198 .B header_visibility = yes/no
199 If enabled, header window will be displayed, otherwise hidden.
200 .TP 
201 .B statusbar_visibility = yes/no
202 If enabled, statusbar will be displayed, otherwise hidden.
203 .TP 
204 .B titles_visibility = yes/no
205 If enabled, column titles will be displayed, otherwise hidden.
206 .TP 
207 .B autocenter_mode = yes/no
208 Default state for autocenter mode at start.
209 .TP 
210 .B centered_cursor = yes/no
211 If enabled, currently highlighted position in the list will be always centered.
212 .TP 
213 .B progressbar_look = TEXT
214 This variable defines the look of progressbar. Note that it has to be exactly two or three characters long.
215 .TP 
216 .B progressbar_boldness = yes/no
217 This variable defines whether progressbar should be displayed in bold or not.
218 .TP 
219 .B default_find_mode = wrapped/normal
220 If set to "wrapped", going from last found position to next will take you to the first one (same goes for the first position and going to previous one), otherwise no actions will be performed.
221 .TP 
222 .B default_space_mode = select/add
223 If set to "select", space will select items instead of adding them to playlist (although selecting by space is default and the only one action for space in Playlist).
224 .TP 
225 .B incremental_seeking = yes/no
226 If enabled, seek time will increment by one each second of seeking.
227 .TP 
228 .B follow_now_playing_lyrics = yes/no
229 If enabled, lyrics will be switched at song's change to currently playing one's (Note: this works only if you are viewing lyrics of item from Playlist).
231 .B fetch_lyrics_for_current_song_in_background = yes/no
232 If enabled, each time song changes lyrics fetcher will be automatically run in background in attempt to download lyrics for currently playing song.
234 .B store_lyrics_in_song_dir = yes/no
235 If enabled, lyrics will be saved in song's directory, otherwise in ~/.lyrics. Note that it needs properly set mpd_music_dir.
237 .B generate_win32_compatible_filenames = yes/no
238 If set to yes, filenames generated by ncmpcpp (with tag editor, for lyrics, artists etc.) will not contain the following characters: /\?*:|"<> - otherwise only slash (/) will not be used.
240 .B allow_for_physical_item_deletion = yes/no
241 If set to yes, it will be possible to physically delete files and directories from the disk in the browser.
243 .B lastfm_preferred_language = ISO 639 alpha-2 language code
244 If set, 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.
246 .B space_add_mode = add_remove/always_add
247 If set to add_remove, pressing space on item which is already in playlist will remove it, otherwise add it again.
248 .TP 
249 .B show_hidden_files_in_local_browser = yes/no
250 Trigger for displaying in local browser files and directories that begin with '.'
251 .TP 
252 .B default_place_to_search_in = database/playlist
253 If set to "playlist", Search engine will perform searching in current MPD playlist rather than in music database.
254 .TP 
255 .B display_screens_numbers_on_start = yes/no
256 If enabled, screens' names and their keybindings will be shown in header window until key is pressed, otherwise they won't be displayed at all.
257 .TP 
258 .B screen_switcher_mode = SWITCHER_MODE
259 If set to "previous", key_screen_switcher will switch between current and last used screen. If set to "screen1,...screenN" (a list of screens) it will switch between them in a sequence. Syntax clarification can be found in example config file.
260 .TP 
261 .B startup_screen = SCREEN_NAME
262 Screen that has to be displayed at start (playlist by default).
263 .TP 
264 .B locked_screen_width_part = 20-80
265 If you want to lock a screen, ncmpcpp asks for % of locked screen's width to be reserved before that and provides a default value, which is the one you can set here.
266 .TP 
267 .B ask_for_locked_screen_width_part = yes/no
268 If enabled, ncmpcpp will ask for % of locked screen's width each time you want to lock a screen. If you disable that, it'll silently attempt to use default value.
269 .TP 
270 .B jump_to_now_playing_song_at_start = yes/no
271 If enabled, ncmpcpp will jump at start to now playing song if mpd is playing or paused.
272 .TP 
273 .B ask_before_clearing_main_playlist = yes/no
274 If enabled, user will be asked if he really wants to clear the main playlist after pressing key responsible for that.
275 .TP 
276 .B clock_display_seconds = yes/no
277 If enabled, clock will display time in format hh:mm:ss, otherwise hh:mm.
278 .TP 
279 .B display_volume_level = yes/no
280 If enabled, volume level will be displayed in statusbar, otherwise not.
281 .TP 
282 .B display_bitrate = yes/no
283 If enabled, bitrate of currently playing song will be displayed in statusbar.
284 .TP 
285 .B display_remaining_time = yes/no
286 If enabled, remaining time of currently playing song will be be displayed in statusbar instead of elapsed time.
287 .TP 
288 .B ignore_leading_the = yes/no
289 If enabled, word "the" at the beginning of tags/filenames/sort format will be ignored while sorting items.
290 .TP 
291 .B use_console_editor = yes/no
292 If your external editor is console application, you need to enable it.
293 .TP 
294 .B block_search_constraints_change_if_items_found = yes/no
295 If enabled, fields in Search engine above "Reset" button will be blocked after successful searching, otherwise they won't.
296 .TP 
297 .B mouse_support = yes/no
298 Self-descriptive, isn't it?
299 .TP 
300 .B tag_editor_extended_numeration  = yes/no
301 If enabled, tag editor will number tracks using format xx/yy (where xx is the current track and yy is total amount of all numbered tracks), not plain xx.
303 .B enable_window_title = yes/no
304 If enabled, ncmpcpp will override current window title with its own one.
306 .B regular_expressions = basic/extended
307 Type of currently used regular expressions.
308 .TP 
309 .B user_interface = classic/alternative
310 Default user interface used by ncmpcpp at start.
311 .TP 
312 .B media_library_primary_tag = artist/date/genre/composer/performer
313 Default tag type for leftmost column in media library.
314 .TP 
315 .B empty_tag_marker = TEXT
316 Text that will be displayed, if requested tag is not set.
317 .TP 
318 .B tags_separator = TEXT
319 Separator that is placed between tags. Also interpreted by tag editor which splits input string into separate tags using it.
320 .TP 
321 .B empty_tag_color = COLOR
322 Color of empty tag marker.
323 .TP 
324 .B header_window_color = COLOR
325 Color of header window.
326 .TP 
327 .B volume_color = COLOR
328 Color of volume state.
329 .TP 
330 .B state_line_color = COLOR
331 Color of lines separating header and statusbar from main window.
332 .TP 
333 .B state_flags_color = COLOR
334 Color of MPD status flags.
335 .TP 
336 .B main_window_color = COLOR
337 Color of main window.
338 .TP 
339 .B main_window_highlight_color = COLOR
340 Color of main window's highlight.
341 .TP 
342 .B progressbar_color = COLOR
343 Color of progressbar.
344 .TP 
345 .B progressbar_elapsed_color = COLOR
346 Color of part of progressbar that represents elapsed time.
347 .TP 
348 .B statusbar_color = COLOR
349 Color of statusbar.
350 .TP 
351 .B alternative_ui_separator_color = COLOR
352 Color of separators used in alternative user interface.
353 .TP 
354 .B active_column_color = COLOR
355 Color of active column's highlight.
356 .TP 
357 .B visualizer_color = COLOR
358 Color of visualization.
359 .TP 
360 .B active_window_border = COLOR
361 Color of active window's border.
362 .TP 
363 .SH "KEYS"
364 When ncmpcpp starts, it tries to read user's keybindings from ~/.ncmpcpp/keys file. If no user's keybindings is found, ncmpcpp uses its default keybindings. An example keybindings file containing all default values is provided with ncmpcpp and can be found usually in /usr/share/doc/ncmpcpp (exact location may depend on used distribution/OS/configure prefix).
366 You can view current ncmpcpp's keybindings by pressing '1' (Help).
367 .SH "SONG FORMAT"
369 For song format you can use:
371  %l - length
372  %f - filename
373  %D - directory
374  %a - artist
375  %A - album artist
376  %t - title
377  %b - album
378  %y - date
379  %n - track number (01/12 -> 01)
380  %N - full track info (01/12 -> 01/12)
381  %g - genre
382  %c - composer
383  %p - performer
384  %d - disc
385  %C - comment
386  %P - priority
387  $R - begin right alignment
389 You can also put them in { } and then they will be displayed only if all requested values are available and/or define alternate value with { }|{ } e.g. {%a - %t}|{%f} will check if artist and title tags are available and if they are, display them. Otherwise it'll display filename.
391 \fBNote\fR: 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'.
393 \fBNote\fR: Format that is similar to "%a - %t" (i.e. without any additional braces) is equal to "{%a - %t}", so if one of the tags is missing, you'll get nothing.
395 Text can have different color than the main window, e.g. if you want length to be green, write $3%l$9.
397 Available values for colors:
399  - 0 - default window color (discards all other colors)
400  - 1 - black
401  - 2 - red
402  - 3 - green
403  - 4 - yellow
404  - 5 - blue
405  - 6 - magenta
406  - 7 - cyan
407  - 8 - white
408  - 9 - end of current color
410 \fBNote\fR: colors can be nested, so if you write $2some$5text$9, it'll disable only usage of blue color and make red the current one.
412 .SH "BUGS"
413 Report bugs on http://www.musicpd.org/mantis/
414 .SH "NOTE"
415 Since MPD uses UTF\-8, ncmpcpp needs to convert characters to the charset used by the local system. If you get character conversion errors while you are running ncmpcpp, you probably need to set up your locale. This is done by setting LANG and LC_ALL/LC_CTYPE environment variables (LC_CTYPE only affects character handling).
416 .SH "HOMEPAGE"
417 -> http://unkart.ovh.org/ncmpcpp
419 .SH "SEE ALSO"
420 mpc(1), mpd(1)