Bug 1082: mem_free_set in abort_preloading
[elinks.git] / src / config / options.inc
blob9969e250f61e724c4ba3fee548414c81597302d5
1 /* Option definitions. */
3 /* TODO: Autogenerate this file from something more human readable. --jonas */
4 /* TODO: Make #ifdef FEATURE more consistent. */
6 /* A few guidelines for this file: */
7 /* 1. Keep options in alphabetical order with trees as the first children
8  *    of their parents.
9  * 2. Keep in mind that descriptions should be readable on 80 wide terminals
10  *    so insert appropriate line breaks and newlines.
11  * 3. If several command line options should share the same caption and
12  *    description they should be declared after another and only the last one
13  *    should have the caption and description defined. (ie. -h, -? and -help)
14  * 4. When adding an alias put a comment about the date the alias was added.
15  * 5. Love thy option system! :) */
17 static struct option_info config_options_info[] = {
18         /* [gettext_accelerator_context(IGNORE)] */
19         INIT_OPT_TREE("", N_("Configuration system"),
20                 "config", 0,
21                 N_("Configuration handling options.")),
23         INIT_OPT_INT("config", N_("Comments"),
24                 "comments", 0, 0, 3, 3,
25                 N_("Amount of comments automatically written to the config "
26                 "file:\n"
27                 "0 is no comments are written\n"
28                 "1 is only the \"blurb\" (name+type) is written\n"
29                 "2 is only the description is written\n"
30                 "3 is full comments are written")),
32         INIT_OPT_INT("config", N_("Indentation"),
33                 "indentation", 0, 0, 16, 2,
34                 N_("Shift width of one indentation level in the configuration "
35                 "file. Zero means that no indentation is performed at all "
36                 "when saving the configuration.")),
38         INIT_OPT_INT("config", N_("Saving style"),
39                 "saving_style", 0, 0, 3, 3,
40                 N_("Determines what happens when you tell ELinks to save "
41                 "options:\n"
42                 "0 is only values of current options are altered\n"
43                 "1 is values of current options are altered and missing\n"
44                 "     options are added at the end of the file\n"
45                 "2 is the configuration file is rewritten from scratch\n"
46                 "3 is values of current options are altered and missing\n"
47                 "     options CHANGED during this ELinks session are added at\n"
48                 "     the end of the file")),
50         INIT_OPT_BOOL("config", N_("Comments localization"),
51                 "i18n", 0, 0,
52                 N_("If set to 1, comments in the configuration file will be "
53                 "translated to the language used by UI. Note that if you have "
54                 "different language set in different terminals, the language "
55                 "used in the configuration file MAY be the same as on the "
56                 "terminal where you saved the file, but it should be "
57                 "generally considered unpredictable.")),
60         INIT_OPT_BOOL("config", N_("Saving style warnings"),
61                 "saving_style_w", 0, 0,
62                 N_("This is internal option used when displaying a warning "
63                 "about obsolete config.saving_style. You shouldn't touch "
64                 "it.")),
66         INIT_OPT_BOOL("config", N_("Show template"),
67                 "show_template", 0, 0,
68                 N_("Show template options in autocreated trees in the options "
69                 "manager and save them to the configuration file.")),
71         /* Keep options in alphabetical order. */
74         INIT_OPT_TREE("", N_("Connections"),
75                 "connection", OPT_SORT,
76                 N_("Connection options.")),
79         INIT_OPT_BOOL("connection", N_("Asynchronous DNS"),
80                 "async_dns", 0, 1,
81                 N_("Whether to use asynchronous DNS resolving.")),
83         INIT_OPT_INT("connection", N_("Maximum connections"),
84                 "max_connections", 0, 1, 16, 10,
85                 N_("Maximum number of concurrent connections.")),
87         INIT_OPT_INT("connection", N_("Maximum connections per host"),
88                 "max_connections_to_host", 0, 1, 8, 2,
89                 N_("Maximum number of concurrent connections to a given "
90                 "host.")),
92         INIT_OPT_INT("connection", N_("Connection retries"),
93                 "retries", 0, 0, 16, 3,
94                 N_("Number of tries to establish a connection. "
95                 "Zero means try forever.")),
97         INIT_OPT_INT("connection", N_("Receive timeout"),
98                 "receive_timeout", 0, 1, 1800, 120,
99                 N_("Receive timeout (in seconds).")),
101 #ifdef CONFIG_IPV6
102         INIT_OPT_BOOL("connection", N_("Try IPv4 when connecting"),
103                 "try_ipv4", 0, 1,
104                 N_("Whether to try to connect to a host over IPv4. "
105                 "Note that if connection.try_ipv6 is enabled too, "
106                 "it takes precedence. And better do not touch this "
107                 "at all unless you are sure what are you doing.\n"
108                 "\n"
109                 "Note that you can also force a given protocol "
110                 "to be used on a per-connection basis by using a URL "
111                 "in the style of e.g. http4://elinks.cz/.")),
112 #else
113         INIT_OPT_BOOL("connection", N_("Try IPv4 when connecting"),
114                 "try_ipv4", 0, 1,
115                 N_("Whether to try to connect to a host over IPv4. "
116                 "Do not touch this option.\n"
117                 "\n"
118                 "Note that you can also force a given protocol "
119                 "to be used on a per-connection basis by using a URL "
120                 "in the style of e.g. http4://elinks.cz/.")),
121 #endif
123 #ifdef CONFIG_IPV6
124         INIT_OPT_BOOL("connection", N_("Try IPv6 when connecting"),
125                 "try_ipv6", 0, 1,
126                 N_("Whether to try to connect to a host over IPv6.\n"
127                 "\n"
128                 "Note that you can also force a given protocol "
129                 "to be used on a per-connection basis by using a URL "
130                 "in the style of e.g. http6://elinks.cz/.")),
131 #endif
133         INIT_OPT_INT("connection", N_("Timeout for non-restartable connections"),
134                 "unrestartable_receive_timeout", 0, 1, 1800, 600,
135                 N_("Timeout for non-restartable connections (in seconds).")),
137         /* Keep options in alphabetical order. */
141         INIT_OPT_TREE("", N_("Document"),
142                 "document", OPT_SORT,
143                 N_("Document options.")),
145         INIT_OPT_TREE("document", N_("Browsing"),
146                 "browse", 0,
147                 N_("Document browsing options (mainly interactivity).")),
150         INIT_OPT_TREE("document.browse", N_("Access keys"),
151                 "accesskey", 0,
152                 N_("Options for handling of link access keys. "
153                 "An HTML document can use the ACCESSKEY attribute to assign "
154                 "an access key to an element. When an access key is pressed, "
155                 "the corresponding element will be given focus.")),
157         INIT_OPT_BOOL("document.browse.accesskey", N_("Automatic links following"),
158                 "auto_follow", 0, 0,
159                 N_("Automatically follow a link or submit a form if "
160                 "appropriate accesskey is pressed - this is the standard "
161                 "behaviour, but it's considered dangerous.")),
163         INIT_OPT_BOOL("document.browse.accesskey", N_("Display access key in link info"),
164                 "display", 0, 0,
165                 N_("Display access key in link info.")),
167         INIT_OPT_INT("document.browse.accesskey", N_("Accesskey priority"),
168                 "priority", 0, 0, 2, 0,
169                 N_("Priority of 'accesskey' HTML attribute:\n"
170                 "0 is first try all normal bindings; if it fails,\n"
171                 "     check accesskey\n"
172                 "1 is first try only frame bindings; if it fails,\n"
173                 "     check accesskey\n"
174                 "2 is first check accesskey (this can be dangerous)")),
177         INIT_OPT_TREE("document.browse", N_("Forms"),
178                 "forms", 0,
179                 N_("Options for handling of the forms interaction.")),
181         INIT_OPT_BOOL("document.browse.forms", N_("Submit form automatically"),
182                 "auto_submit", 0, 1,
183                 N_("Automagically submit a form when enter is pressed with a "
184                 "text field selected.")),
186         INIT_OPT_BOOL("document.browse.forms", N_("Confirm submission"),
187                 "confirm_submit", 0, 1,
188                 N_("Ask for confirmation when submitting a form.")),
190         INIT_OPT_INT("document.browse.forms", N_("Default form input size"),
191                 "input_size", 0, 3, 300, HTML_DEFAULT_INPUT_SIZE,
192                 N_("Default form input size if none is specified.")),
194         INIT_OPT_BOOL("document.browse.forms", N_("Insert mode"),
195                 "insert_mode", 0, 1,
196                 N_("The setting for this option affects how key presses are "
197                 "handled when one selects a text-input form-field. When "
198                 "enabled, one must explicitly 'enter' a selected text-field "
199                 "to edit it; this prevents text fields from capturing key "
200                 "presses, such as presses of a scroll key, when it is "
201                 "inadvertently selected. When disabled, key presses are "
202                 "always inserted into a selected text field.")),
204         INIT_OPT_STRING("document.browse.forms", N_("External editor"),
205                 "editor", 0, "",
206                 N_("Path to the executable that ELinks should launch when the "
207                 "user requests to edit a textarea with an external editor.\n"
208                 "\n"
209                 "If this is blank, ELinks will use the value of the "
210                 "environmental variable $EDITOR. If $EDITOR is empty or not "
211                 "set, ELinks will then default to \"vi\".")),
214         INIT_OPT_TREE("document.browse", N_("Images"),
215                 "images", 0,
216                 N_("Options for handling of images.")),
218         INIT_OPT_INT("document.browse.images", N_("Display style for image tags"),
219                 "display_style", 0, 0, 3, 2,
220                 N_("Display style for image tags when displayed:\n"
221                 "0     means always display IMG\n"
222                 "1     means always display filename\n"
223                 "2     means display alt/title attribute if possible,\n"
224                 "      IMG if not\n"
225                 "3     means display alt/title attribute if possible,\n"
226                 "      filename if not")),
228         INIT_OPT_INT("document.browse.images", N_("Maximum length for image filename"),
229                 "filename_maxlen", 0, 0, 500, 0,
230                 N_("Maximum length of image filename when displayed:\n"
231                 "0     means always display full filename\n"
232                 "1-500 means display filename with this maximal length;\n"
233                 "      if it is longer, the middle is substituted by\n"
234                 "      an asterisk")),
236         /* Compatibility aliases. Added: 2004-12-15, 0.10pre3.CVS. It was
237          * replaced by display_style and filename_maxlen options combination. */
238         INIT_OPT_ALIAS("document.browse.images", "file_tags", 0,
239                 "document.browse.images.filename_maxlen"),
241         INIT_OPT_INT("document.browse.images", N_("Image links tagging"),
242                 "image_link_tagging", 0, 0, 2, 1,
243                 N_("When to enclose image links:\n"
244                 "0 means never\n"
245                 "1 means never if alt or title are provided (old behavior)\n"
246                 "2 means always")),
248         INIT_OPT_STRING("document.browse.images", N_("Image link prefix"),
249                 "image_link_prefix", 0, "[",
250                 N_("Prefix string to use to mark image links.")),
252         INIT_OPT_STRING("document.browse.images", N_("Image link suffix"),
253                 "image_link_suffix", 0, "]",
254                 N_("Suffix string to use to mark image links.")),
256         INIT_OPT_INT("document.browse.images", N_("Maximum length for image label"),
257                 "label_maxlen", 0, 0, 500, 0,
258                 N_("Maximum length of image label (alt/title):\n"
259                 "0     means always display full label\n"
260                 "1-500 means display label with this maximal length;\n"
261                 "      if it is longer, the middle is substituted by\n"
262                 "      an asterisk")),
264         INIT_OPT_BOOL("document.browse.images", N_("Display links to images w/o alt"),
265                 "show_as_links", 0, 0,
266                 N_("Display links to images without an alt attribute. If this "
267                 "option is off, these images are completely invisible.")),
269         INIT_OPT_BOOL("document.browse.images", N_("Display links to images"),
270                 "show_any_as_links", 0, 1,
271                 N_("Display links to any images in the document, regardless "
272                 "of them having an alt attribute or not. If this option is "
273                 "off, the alt attribute contents is shown, but as normal "
274                 "text, not selectable as a link.")),
277         INIT_OPT_TREE("document.browse", N_("Links"),
278                 "links", 0,
279                 N_("Options for handling of links to other documents.")),
281         INIT_OPT_TREE("document.browse.links", N_("Active link"),
282                 "active_link", 0,
283                 N_("Options for the active link.")),
285         INIT_OPT_TREE("document.browse.links.active_link", N_("Colors"),
286                 "colors", 0,
287                 N_("Active link colors.")),
289         INIT_OPT_COLOR("document.browse.links.active_link.colors", N_("Background color"),
290                 "background", 0, "#0000ff",
291                 N_("Default background color.")),
293         INIT_OPT_COLOR("document.browse.links.active_link.colors", N_("Text color"),
294                 "text", 0, "black",
295                 N_("Default text color.")),
297         INIT_OPT_BOOL("document.browse.links.active_link", N_("Enable color"),
298                 "enable_color", 0, 0,
299                 N_("Enable use of the active link background and text color "
300                 "settings instead of the link colors from the document.")),
302         INIT_OPT_BOOL("document.browse.links.active_link", N_("Bold"),
303                 "bold", 0, 0,
304                 N_("Make the active link text bold.")),
306         INIT_OPT_BOOL("document.browse.links.active_link", N_("Invert colors"),
307                 "invert", 0, 1,
308                 N_("Invert the fore- and background color so the link "
309                 "stands out.")),
311         INIT_OPT_BOOL("document.browse.links.active_link", N_("Underline"),
312                 "underline", 0, 0,
313                 N_("Underline the active link.")),
316         INIT_OPT_BOOL("document.browse.links", N_("Directory highlighting"),
317                 "color_dirs", 0, 1,
318                 N_("Highlight links to directories in FTP and local directory "
319                 "listing.")),
321         INIT_OPT_BOOL("document.browse.links", N_("Number links"),
322                 "numbering", 0, 0,
323                 N_("Display numbers next to the links.")),
325         INIT_OPT_INT("document.browse.links", N_("Handling of target=_blank"),
326                 "target_blank", 0, 0, 3, 0,
327                 N_("Define how to handle links having target=_blank set:\n"
328                 "0 means open link in current tab\n"
329                 "1 means open link in new tab in foreground\n"
330                 "2 means open link in new tab in background\n"
331                 "3 means open link in new window")),
333         /* Compatibility aliases. Added: 2004-01-07, 0.9.0.CVS. */
334         INIT_OPT_ALIAS("document.browse.links", "typeahead_wraparound", 0,
335                 "document.browse.search.wraparound"),
337         INIT_OPT_ALIAS("document.browse.links", "typeahead_error", 0,
338                 "document.browse.search.show_not_found"),
340         INIT_OPT_BOOL("document.browse.links", N_("Use tabindex"),
341                 "use_tabindex", 0, 1,
342                 N_("Whether to navigate links using tabindex specified "
343                 "ordering. The TABINDEX attribute in HTML elements specifies "
344                 "the order in which links should receive focus when using the "
345                 "keyboard to navigate the document.")),
347         INIT_OPT_BOOL("document.browse.links", N_("Missing fragment reporting"),
348                 "missing_fragment", 0, 1,
349                 N_("Open a message box when document has no tag with given "
350                 "id.")),
352         INIT_OPT_INT("document.browse.links", N_("Number keys select links"),
353                 "number_keys_select_link", 0, 0, 2, 1,
354                 N_("Number keys select links rather than specify command "
355                 "prefixes. This is a tristate:\n"
356                 "0 means never\n"
357                 "1 means if document.browse.links.numbering = 1\n"
358                 "2 means always")),
360         INIT_OPT_BOOL("document.browse.links", N_("Warn about maliciously crafted URIs"),
361                 "warn_malicious", 0, 1,
362                 N_("When following a link the user ID part of the URI is "
363                 "checked and if a maliciously crafted URI is detected a "
364                 "warning dialog will ask before following the link.")),
366         /* TODO - this is somehow implemented by ff, but disabled
367          * for now as it doesn't work. */
368         INIT_OPT_BOOL("document.browse.links", N_("Wrap-around links cycling"),
369                 "wraparound", /* 0 */ 0, 0,
370                 N_("When pressing 'down' on the last link, jump to the first "
371                 "one, and vice versa.")),
374         INIT_OPT_TREE("document.browse", N_("Scrolling"),
375                 "scrolling", OPT_SORT,
376                 N_("Scrolling options.")),
378         INIT_OPT_INT("document.browse.scrolling", N_("Horizontal step"),
379                 "horizontal_step", 0, 1, 9999, 8,
380                 N_("Number of columns to scroll when a key bound to "
381                 "scroll-left or scroll-right is pressed and no prefix was "
382                 "given.")),
384         INIT_OPT_BOOL("document.browse.scrolling", N_("Extended horizontal scrolling"),
385                 "horizontal_extended", 0, 1,
386                 N_("Whether to allow horizontal scrolling when the document "
387                 "does not extend off the screen. Useful for copy/paste "
388                 "operations.")),
390         INIT_OPT_INT("document.browse.scrolling", N_("Margin"),
391                 "margin", 0, 0, 20, 3,
392                 N_("Size of the virtual margin - when you click inside of "
393                 "that margin, document scrolls in that direction.")),
395         INIT_OPT_INT("document.browse.scrolling", N_("Vertical step"),
396                 "vertical_step", 0, 1, 9999, 2,
397                 N_("Number of lines to scroll when a key bound to scroll-up "
398                 "or scroll-down is pressed and no prefix was given.")),
401         INIT_OPT_TREE("document.browse", N_("Searching"),
402                 "search", 0,
403                 N_("Options for searching.")),
405         INIT_OPT_BOOL("document.browse.search", N_("Case sensitivity"),
406                 "case", 0, 0,
407                 N_("Whether the search should match the document text while "
408                 "maintaining case sensitivity.")),
410 #ifdef CONFIG_TRE
411         INIT_OPT_INT("document.browse.search", N_("Regular expressions"),
412                 "regex", 0, 0, 2, 0,
413                 N_("Enable searching with regular expressions:\n"
414                 "0 for plain text searching\n"
415                 "1 for basic regular expression searches\n"
416                 "2 for extended regular expression searches")),
417 #endif
419         INIT_OPT_BOOL("document.browse.search", N_("Show search hit top or bottom dialogs"),
420                 "show_hit_top_bottom", 0, 1,
421                 N_("Whether to show a dialog when the search hits the top or "
422                 "bottom of the document.")),
424         INIT_OPT_BOOL("document.browse.search", N_("Wraparound"),
425                 "wraparound", 0, 1,
426                 N_("Wrap around when searching. Currently only used for "
427                 "typeahead.")),
429         INIT_OPT_INT("document.browse.search", N_("Show not found"),
430                 "show_not_found", 0, 0, 2, 2,
431                 N_("How to inform the user when nothing is matched:\n"
432                 "0 means do nothing\n"
433                 "1 means beep the terminal\n"
434                 "2 means pop up message box")),
436         INIT_OPT_INT("document.browse.search", N_("Typeahead searching"),
437                 "typeahead", 0, 0, 2, 0,
438                 N_("Start typeahead searching when an unbound key is pressed "
439                 "without any modifiers. Note that most keys have default "
440                 "bindings, so this feature will not be useful unless you "
441                 "unbind them.\n"
442                 "\n"
443                 "0 disables this feature; typeahead searching will only be\n"
444                 "  used when you press a key bound to search-typeahead or\n"
445                 "  similar\n"
446                 "1 automatically starts typeahead searching thru link text\n"
447                 "2 automatically starts typeahead searching thru all document\n"
448                 "  text")),
451         INIT_OPT_INT("document.browse", N_("Horizontal text margin"),
452                 "margin_width", 0, 0, 9, 3,
453                 N_("Horizontal text margin.")),
455         INIT_OPT_BOOL("document.browse", N_("Document meta refresh"),
456                 "refresh", 0, 1,
457                 N_("Automatically follow document-specified refresh "
458                 "directives ('<meta> refresh' tags). Web-page authors use "
459                 "these to instruct the browser to reload a document at a "
460                 "given interval or to load another page. Regardless of the "
461                 "value the refresh URI is accessible as a link.\n"
462                 "\n"
463                 "Use the document.browse.minimum_refresh_time to control the "
464                 "minimum number of seconds a refresh will wait.")),
466         INIT_OPT_INT("document.browse", N_("Document meta refresh minimum time"),
467                 "minimum_refresh_time", 0, 0, INT_MAX, 1000,
468                 N_("The minimum number of milliseconds that should pass "
469                 "before refreshing. If set to zero the document refresh time "
470                 "is used unchanged. It can fix going back in history for some "
471                 "sites that use refreshing with zero values.")),
473         INIT_OPT_BOOL("document.browse", N_("Tables navigation order"),
474                 "table_move_order", 0, 0,
475                 N_("Move by columns in table, instead of rows.")),
477         /* Keep options in alphabetical order. */
481         INIT_OPT_TREE("document", N_("Cache"),
482                 "cache", OPT_SORT,
483                 N_("Cache options.")),
485         INIT_OPT_BOOL("document.cache", N_("Cache information about redirects"),
486                 "cache_redirects", 0, 0,
487                 N_("Cache even redirects sent by server (usually thru HTTP by "
488                 "a 302 HTTP code and a Location header). This was the "
489                 "original behaviour for quite some time, but it causes "
490                 "problems in a situation very common to various web login "
491                 "systems - frequently, when accessing a certain location, "
492                 "they will redirect you to a login page if they don't receive "
493                 "an auth cookie, the login page then gives you the cookie and "
494                 "redirects you back to the original page, but there you have "
495                 "already cached redirect back to the login page! If this "
496                 "option has value of 0, this malfunction is fixed, but "
497                 "occasionally you may get superfluous (depends on how you "
498                 "take it ;-) requests to the server. If this option has value "
499                 "of 1, experienced users can still workaround it by clever "
500                 "combination of usage of reload, jumping around in session "
501                 "history and hitting ctrl+enter.\n"
502                 "\n"
503                 "Note that this option is checked when retrieving the "
504                 "information from cache, not when saving it to cache - thus "
505                 "if you enable it, even previous redirects will be taken from "
506                 "cache instead of asking the server.")),
508         INIT_OPT_BOOL("document.cache", N_("Ignore cache-control info from server"),
509                 "ignore_cache_control", 0, 1,
510                 N_("Ignore Cache-Control and Pragma server headers. "
511                 "When set, the document is cached even with 'Cache-Control: "
512                 "no-cache'.")),
514         INIT_OPT_TREE("document.cache", N_("Formatted documents"),
515                 "format", 0,
516                 N_("Format cache options.")),
518         INIT_OPT_INT("document.cache.format", N_("Number"),
519                 "size", 0, 0, 256, 5,
520                 N_("Number of cached formatted pages. Do not get too "
521                 "generous here, 'formatted' means that all the accompanying "
522                 "structures are kept in memory so that you get the cached "
523                 "document immediatelly, but these structures may take a lot "
524                 "- 2x the size of the HTML source is probably not unusual, "
525                 "but it can be even more if the document consists of a lot "
526                 "of short lines (padded right, if possible) and links and "
527                 "not much other markup. So if you set this to 256 and then "
528                 "you don't like your ELinks eating 90M, don't come "
529                 "complaining to us. ;-)\n"
530                 "\n"
531                 "Also note that the format cache itself is not counted to "
532                 "the memory cache size, but the HTML source of the formatted "
533                 "documents is always cached, even if it is over the memory "
534                 "cache size threshold. (Then of course no other documents "
535                 "can be cached.)")),
537         /* FIXME: Write more. */
538         INIT_OPT_INT("document.cache", N_("Revalidation interval"),
539                 "revalidation_interval", 0, -1, 86400, -1,
540                 N_("Period in seconds that a cache entry is considered to be "
541                 "up-to-date. When a document is loaded and this interval has "
542                 "elapsed since the document was initially loaded or most "
543                 "recently revalidated with the server, the server will be "
544                 "checked in case there is a more up-to-date version of the "
545                 "document.\n"
546                 "\n"
547                 "A value of -1 disables automatic revalidation.")),
549         INIT_OPT_TREE("document.cache", N_("Memory cache"),
550                 "memory", 0,
551                 N_("Memory cache options.")),
553         INIT_OPT_LONG("document.cache.memory", N_("Size"),
554                 "size", 0, 0, LONG_MAX, 1048576,
555                 N_("Memory cache size (in bytes).")),
559         INIT_OPT_TREE("document", N_("Charset"),
560                 "codepage", 0,
561                 N_("Charset options.")),
563         INIT_OPT_CODEPAGE("document.codepage", N_("Default codepage"),
564                 "assume", 0, "System",
565                 N_("Default document codepage. 'System' stands for "
566                 "a codepage determined by a selected locale.")),
568         INIT_OPT_BOOL("document.codepage", N_("Ignore charset info from server"),
569                 "force_assumed", 0, 0,
570                 N_("Ignore charset info sent by server.")),
574         INIT_OPT_TREE("document", N_("Default color settings"),
575                 "colors", 0,
576                 N_("Default document color settings.")),
579         INIT_OPT_COLOR("document.colors", N_("Text color"),
580                 "text", 0, "#bfbfbf",
581                 N_("Default text color.")),
583         INIT_OPT_COLOR("document.colors", N_("Background color"),
584                 "background", 0, "#000000",
585                 N_("Default background color.")),
587         INIT_OPT_COLOR("document.colors", N_("Link color"),
588                 "link", 0, "#0000ff",
589                 N_("Default link color.")),
591         INIT_OPT_COLOR("document.colors", N_("Visited-link color"),
592                 "vlink", 0, "#ffff00",
593                 N_("Default visited link color.")),
595         INIT_OPT_COLOR("document.colors", N_("Image-link color"),
596                 "image", 0, "darkolivegreen",
597                 N_("Default image link color.")),
599         INIT_OPT_COLOR("document.colors", N_("Bookmarked-link color"),
600                 "bookmark", 0, "hotpink",
601                 N_("Default bookmarked link color.")),
603         INIT_OPT_COLOR("document.colors", N_("Directory color"),
604                 "dirs", 0, "#ffff00",
605                 N_("Default directory color.\n"
606                 "\n"
607                 "See document.browse.links.color_dirs option.")),
609         /* Compatibility alias: added by jonas at 2005-05-31, 0.11.CVS. */
610         INIT_OPT_ALIAS("document.colors", "allow_dark_on_black", OPT_ALIAS_NEGATE,
611                 "document.colors.increase_contrast"),
613         INIT_OPT_BOOL("document.colors", N_("Increase contrast"),
614                 "increase_contrast", 0, 1,
615                 N_("Increase the contrast between the foreground and "
616                 "background colors to ensure readability. For example it "
617                 "disallows dark colors on a black background. Note, this "
618                 "is different from ensuring the contrast with the "
619                 "ensure_contrast option.")),
621         INIT_OPT_BOOL("document.colors", N_("Ensure contrast"),
622                 "ensure_contrast", 0, 1,
623                 N_("Makes sure that the back- and foreground colors are never "
624                 "equal.")),
626         /* If you change this please also change ACT_MAIN_DOCUMENT_COLORS action
627          * handling. */
628         INIT_OPT_INT("document.colors", N_("Use document-specified colors"),
629                 "use_document_colors", 0, 0, 2, 2,
630                 N_("Use colors specified in document:\n"
631                 "0 is use always the default settings\n"
632                 "1 is use document colors if available, except background\n"
633                 "2 is use document colors, including background. This can\n"
634                 "  mostly look very impressive, but some sites will appear\n"
635                 "  really ugly. Note, that obviously if the background is\n"
636                 "  not black, it will break the behaviour of transparency.")),
639         /* Keep options in alphabetical order. */
643         INIT_OPT_TREE("document", N_("Downloading"),
644                 "download", 0,
645                 N_("Options regarding files downloading and handling.")),
647         INIT_OPT_STRING("document.download", N_("Default download directory"),
648                 "directory", 0, "./",
649                 N_("Default download directory.")),
651         INIT_OPT_BOOL("document.download", N_("Set original time"),
652                 "set_original_time", 0, 0,
653                 N_("Set the timestamp of each downloaded file to the "
654                 "timestamp stored on the server.")),
656         /* Does automatic resuming make sense as an option? */
657         INIT_OPT_INT("document.download", N_("Prevent overwriting"),
658                 "overwrite", 0, 0, 2, 2,
659                 N_("Prevent overwriting the local files:\n"
660                 "0 is files will silently be overwritten\n"
661                 "1 is add a suffix .{number} (for example '.1') to the name\n"
662                 "2 is ask the user")),
664         INIT_OPT_INT("document.download", N_("Notify download completion by bell"),
665                 "notify_bell", 0, 0, 2, 0,
666                 N_("Audio notification when download is completed:\n"
667                 "0 is never\n"
668                 "1 is when background notification is active\n"
669                 "2 is always")),
672         INIT_OPT_TREE("document", N_("Dump output"),
673                 "dump", 0,
674                 N_("Dump output options.")),
676         INIT_OPT_CODEPAGE("document.dump", N_("Codepage"),
677                 "codepage", 0, "System",
678                 N_("Codepage used in dump output. 'System' stands for "
679                 "a codepage determined by a selected locale.")),
681         INIT_OPT_INT("document.dump", N_("Color mode"),
682                 "color_mode", 0, -1, COLOR_MODES - 1, -1,
683                 /* The list of modes must be at the end of this string
684                  * because AsciiDoc 7.1.2 does not support continuing
685                  * an outer list entry after an inner list.
686                  * TRANSLATORS: This restriction applies only to the
687                  * "en" (English) translation.  (See doc/Makefile.)  */
688                 N_("Color mode for dumps.\n"
689                 "\n"
690                 "Some modes may have been disabled at compile time. "
691                 "The Setup -> Terminal options dialog lists the modes "
692                 "supported by this executable. If you select an "
693                 "unsupported mode, ELinks uses 16 colors.\n"
694                 "\n"
695                 "The color modes are:\n"
696                 "-1 is standard dump mode\n"
697                 "0 is mono mode\n"
698                 "1 is 16 color mode\n"
699                 "2 is 88 color mode\n"
700                 "3 is 256 color mode\n"
701                 "4 is true color mode")),
703         INIT_OPT_STRING("document.dump", N_("Footer"),
704                 "footer", 0, "",
705                 N_("Footer string used in dumps. %u is substituted by URL.")),
707         INIT_OPT_STRING("document.dump", N_("Header"),
708                 "header", 0, "",
709                 N_("Header string used in dumps. %u is substituted by URL.")),
711         INIT_OPT_BOOL("document.dump", N_("Numbering"),
712                 "numbering", 0, 1,
713                 N_("Whether to print link numbers in dump output.")),
715         INIT_OPT_BOOL("document.dump", N_("References"),
716                 "references", 0, 1,
717                 N_("Whether to print references (URIs) of document links "
718                 "in dump output.")),
720         INIT_OPT_STRING("document.dump", N_("Separator"),
721                 "separator", 0, "\n\n",
722                 N_("String which separates two dumps.")),
724         INIT_OPT_INT("document.dump", N_("Width"),
725                 "width", 0, 1, 65536, DEFAULT_TERMINAL_WIDTH,
726                 N_("Width of screen in characters when dumping documents.")),
730         INIT_OPT_TREE("document", N_("History"),
731                 "history", OPT_SORT,
732                 N_("History options.")),
734         INIT_OPT_BOOL("document.history", N_("Keep unhistory"),
735                 "keep_unhistory", 0, 1,
736                 N_("Keep unhistory (\"forward history\").")),
739         INIT_OPT_TREE("document", N_("HTML rendering"),
740                 "html", 0,
741                 N_("Options concerning the display of HTML pages.")),
743         INIT_OPT_BOOL("document.html", N_("Display frames"),
744                 "display_frames", 0, 1,
745                 N_("Display frames.")),
747         INIT_OPT_BOOL("document.html", N_("Display tables"),
748                 "display_tables", 0, 1,
749                 N_("Display tables.")),
751         INIT_OPT_BOOL("document.html", N_("Display subscripts"),
752                 "display_subs", 0, 1,
753                 N_("Display subscripts (as [thing]).")),
755         INIT_OPT_BOOL("document.html", N_("Display superscripts"),
756                 "display_sups", 0, 1,
757                 N_("Display superscripts (as ^thing).")),
759         INIT_OPT_INT("document.html", N_("Rendering of HTML link element"),
760                 "link_display", 0, 0, 5, 2,
761                 N_("How to render <link> tags from the HTML header:\n"
762                 "0 is nothing\n"
763                 "1 is title\n"
764                 "2 is name in addition\n"
765                 "3 is hreflang in addition\n"
766                 "4 is type in addition\n"
767                 "5 is everything")),
769         INIT_OPT_BOOL("document.html", N_("Underline links"),
770                 "underline_links", 0, 0,
771                 N_("Underline links.")),
773         INIT_OPT_BOOL("document.html", N_("Wrap non breaking space"),
774                 "wrap_nbsp", 0, 0,
775                 N_("If set do not honour non breaking space (the nbsp entity) "
776                 "but allow to wrap the text. This can help keeping the width "
777                 "of documents down so no horizontal scrolling is needed.")),
780         INIT_OPT_TREE("document", N_("Plain rendering"),
781                 "plain", 0,
782                 N_("Options concerning the display of plain text pages.")),
784         INIT_OPT_BOOL("document.plain", N_("Display URIs"),
785                 "display_links", 0, 0,
786                 N_("Display URIs in the document as links.")),
788         INIT_OPT_BOOL("document.plain", N_("Compress empty lines"),
789                 "compress_empty_lines", 0, 0,
790                 N_("Compress successive empty lines to only one in displayed "
791                 "text.")),
794         INIT_OPT_TREE("document", N_("URI passing"),
795                 "uri_passing", OPT_SORT | OPT_AUTOCREATE,
796                 N_("Rules for passing URIs to external commands. When one "
797                 "rule is defined the link and tab menu will have a menu item "
798                 "that makes it possible to pass the the link, frame or tab "
799                 "URI to an external command. If several rules are defined the "
800                 "link and tab menu will have a submenu of items for each "
801                 "rule.\n"
802                 "\n"
803                 "Note, this is mostly useful for launching graphical viewers, "
804                 "since there is no support for releasing the terminal while "
805                 "the command runs. The action and submenus are also available "
806                 "by binding keys to the frame-external-command, the "
807                 "link-external-command, and the tab-external-command "
808                 "actions.")),
810         INIT_OPT_STRING("document.uri_passing", NULL,
811                 "_template_", 0, "",
812                 N_("A rule for passing URI to an external command. "
813                 "The format is:\n"
814                 "%c in the string means the current URL\n"
815                 "%% in the string means '%'\n"
816                 "Do _not_ put single- or double-quotes around %c.")),
818         /* Keep options in alphabetical order. */
822         INIT_OPT_TREE("", N_("Information files"),
823                 "infofiles", OPT_SORT,
824                 N_("Options for information files in ~/.elinks.")),
826         INIT_OPT_INT("infofiles", N_("Save interval"),
827                 "save_interval", 0, 0, INT_MAX, 300,
828                 N_("Interval at which to trigger information files in "
829                 "~/.elinks to be saved to disk if they have changed "
830                 "(seconds; 0 to disable)")),
832         INIT_OPT_BOOL("infofiles", N_("Use secure file saving"),
833                 "secure_save", 0, 1,
834                 N_("First write data to unique temporary file, then rename "
835                 "this file upon successfully finishing this. Note that this "
836                 "relates only to config files, not downloaded files. "
837                 "You may want to disable it if you are using some exotic "
838                 "permissions for concerned files. Secure file saving is "
839                 "automagically disabled if file is symlink.\n"
840                 "\n"
841                 "Warning: some systems (ie. OS/2, Win32) require that "
842                 "destination file doesn't exist when rename(3) is called, "
843                 "breaking atomicity, and reducing reliability of this "
844                 "feature.")),
846         INIT_OPT_BOOL("infofiles", N_("Use fsync(3) with secure file saving"),
847                 "secure_save_fsync", 0, 1,
848                 N_("When using secure file saving, call fsync(3), if the OS "
849                 "supports it, to force the OS immediately to write the "
850                 "data to permanent storage. This is optional for those who "
851                 "wish to avoid excessive disk I/O.")),
853         /* Keep options in alphabetical order. */
857         INIT_OPT_TREE("", N_("Terminals"),
858                 "terminal", OPT_AUTOCREATE,
859                 N_("Terminal options.")),
861         INIT_OPT_TREE("terminal", NULL,
862                 "_template_", 0,
863                 N_("Options specific to this terminal type (according to "
864                 "$TERM value).")),
866         /* TODO: Incorporate some of the following to the option text.
867          *
868          * When UTF-8 I/O is disabled:
869          * 0 (TERM_DUMB) outputs ASCII -+| characters.
870          * 1 (TERM_VT100) switches charsets with ^N and ^O.
871          * 2 (TERM_LINUX) outputs CP437 characters without switching
872          *   charsets, so it works correctly only if the terminal uses
873          *   CP437.  Can also be made CP850 and CP852 compatible with
874          *   the restrict_852 option.
875          * 3 (TERM_KOI8) outputs KOI8-R characters without switching
876          *   charsets, so it works correctly only if the terminal uses
877          *   KOI8-R and the user has selected either KOI8-R or ASCII
878          *   in ELinks.  It is also mostly compatible with KOI8-U.
879          * 4 (TERM_FREEBSD) outputs characters in the 0x80...0x9F
880          *   range, which FreeBSD 4.0 (but not 5.0) treated as
881          *   graphical.
882          * 5 (TERM_FBTERM)
883          *
884          * When UTF-8 I/O is enabled, ELinks outputs (almost) the same
885          * characters as above but encodes them in UTF-8 and does not
886          * switch charsets.  So, it will work in any terminal that
887          * understands UTF-8 and has the characters in its font.  */
888         INIT_OPT_INT("terminal._template_", N_("Type"),
889                 "type", 0, 0, 5, 0,
890                 N_("Terminal type; matters mostly only when drawing frames "
891                 "and dialog box borders:\n"
892                 "0 is dumb terminal type, ASCII art\n"
893                 "1 is VT100, simple but portable\n"
894                 "2 is Linux, you get double frames and other goodies\n"
895                 "3 is KOI-8\n"
896                 "4 is FreeBSD\n"
897                 "5 is fbterm")),
899         INIT_OPT_BOOL("terminal._template_", N_("Always encode xterm title in ISO-8859-1"),
900                 "latin1_title", 0, 1,
901                 N_("When updating the window title of xterm or a similar "
902                 "terminal emulator, encode the title in ISO-8859-1 (Latin-1), "
903                 "rather than in the charset used for other text in the "
904                 "window. Cyrillic and other characters get replaced with "
905                 "Latin ones. Xterm requires this unless you explicitly "
906                 "enable UTF-8 titles in it.\n"
907                 "\n"
908                 "If this option does not take effect immediately, try "
909                 "switching to a different page so that ELinks notices "
910                 "it needs to update the title.")),
912         INIT_OPT_BOOL("terminal._template_", N_("Switch fonts for line drawing"),
913                 "m11_hack", 0, 0,
914                 N_("Switch fonts when drawing lines, enabling both local "
915                 "characters and lines working at the same time. "
916                 "ELinks uses this option only if UTF-8 I/O is disabled "
917                 "and the terminal type is Linux or FreeBSD.")),
919         /* When CONFIG_UTF8 is defined, any code that reads the "utf_8_io"
920          * option should also check whether the "codepage" option is UTF-8,
921          * and if so, behave as if "utf_8_io" were 1.  (When CONFIG_UTF8 is
922          * not defined, it should not be possible to set UTF-8 as "codepage";
923          * please report any such possibilities as bugs.)  */
924         INIT_OPT_BOOL("terminal._template_", N_("UTF-8 I/O"),
925                 "utf_8_io", 0, 0,
926                 N_("Enable I/O in UTF-8 for Unicode terminals. "
927                 "Note that currently, only the subset of UTF-8 according to "
928                 "terminal codepage is used. ELinks ignores this option "
929                 "if the terminal codepage is UTF-8.")),
931 #ifdef CONFIG_COMBINE
932         INIT_OPT_BOOL("terminal._template_", N_("Combining characters"),
933                 "combine", 0, 0,
934                 N_("Enable combining characters. It works only with "
935                 "the xterm in UTF-8 mode.")),
936 #endif
938         INIT_OPT_BOOL("terminal._template_", N_("Restrict frames in cp850/852"),
939                 "restrict_852", 0, 0,
940                 N_("Restrict the characters used when drawing lines. "
941                 "Makes sense only with linux terminals using the cp850/852 "
942                 "character sets.")),
944         INIT_OPT_BOOL("terminal._template_", N_("Block cursor"),
945                 "block_cursor", 0, 0,
946                 N_("Move cursor to bottom right corner when done drawing. "
947                 "This is particularly useful when we have a block cursor, "
948                 "so that inversed text is displayed correctly.")),
950         INIT_OPT_INT("terminal._template_", N_("Color mode"),
951                 "colors", 0, 0, COLOR_MODES - 1, 0,
952                 /* The list of modes must be at the end of this string
953                  * because AsciiDoc 7.1.2 does not support continuing
954                  * an outer list entry after an inner list.
955                  * TRANSLATORS: This restriction applies only to the
956                  * "en" (English) translation.  (See doc/Makefile.)  */
957                 N_("The color mode controls what colors are used and how they "
958                 "are output to the terminal.\n"
959                 "\n"
960                 "Some modes may have been disabled at compile time. "
961                 "The Setup -> Terminal options dialog lists the modes "
962                 "supported by this executable. If you select an "
963                 "unsupported mode, ELinks uses 16 colors.\n"
964                 "\n"
965                 "The color modes are:\n"
966                 "0 is mono mode, only 2 colors are used\n"
967                 "1 is 16 color mode, uses the common ANSI colors\n"
968                 "2 is 88 color mode, uses XTerm RGB codes\n"
969                 "3 is 256 color mode, uses XTerm RGB codes\n"
970                 "4 is true color mode, uses konsole RGB codes")),
972         INIT_OPT_BOOL("terminal._template_", N_("Transparency"),
973                 "transparency", 0, 0,
974                 N_("If we should not set the background to black. "
975                 "This is particularly useful when we have a terminal "
976                 "(typically in some windowing environment) with a background "
977                 "image or a transparent background - it will be visible in "
978                 "ELinks as well (but ELinks document color handling will "
979                 "still assume the background is black so if you have a "
980                 "bright background you might experience contrast problems). "
981                 "Note that this option makes sense only when colors are "
982                 "enabled.")),
984         INIT_OPT_BOOL("terminal._template_", N_("Italic"),
985                 "italic", 0, 0,
986                 N_("If we should use italics.")),
988         INIT_OPT_BOOL("terminal._template_", N_("Underline"),
989                 "underline", 0, 0,
990                 N_("If we should use underline or enhance the color "
991                 "instead.")),
993         INIT_OPT_CODEPAGE("terminal._template_", N_("Codepage"),
994                 "charset", 0, "System",
995                 N_("Codepage of charset used for displaying content on "
996                 "terminal. 'System' stands for a codepage determined by "
997                 "a selected locale.")),
999         /* Keep options in alphabetical order. */
1003         INIT_OPT_TREE("", N_("User interface"),
1004                 "ui", OPT_SORT,
1005                 N_("User interface options.")),
1009         INIT_OPT_TREE("ui", N_("Color settings"),
1010                 "colors", 0,
1011                 N_("Default user interface color settings.")),
1014         /* ========================================================== */
1015         /* ============= BORING PART (colors) START ================= */
1016         /* ========================================================== */
1017         /* XXX: All bfu colors needs to have both 'text' and 'background'
1018          *      options even if it is not used. get_bfu_color() depends
1019          *      on it. */
1020         /* The colors and mono tree should be similar but with different default
1021          * values of course so always use the macros below. */
1023 #define DO_INIT_OPT_COLORS(subtree, capt, name, fg, bg, desc)           \
1024         INIT_OPT_TREE(subtree, capt, name, 0, desc),                    \
1025         INIT_OPT_COLOR(subtree "." name, N_("Text color"),              \
1026                       "text", 0, fg, N_("Default text color.")),        \
1027         INIT_OPT_COLOR(subtree "." name, N_("Background color"),        \
1028                       "background", 0, bg, N_("Default background color."))
1030 #define INIT_OPT_COLORS(subtree, capt, name, cfg, cbg, mfg, mbg, desc)  \
1031         DO_INIT_OPT_COLORS("ui.colors.color" subtree, capt, name, cfg, cbg, desc), \
1032         DO_INIT_OPT_COLORS("ui.colors.mono" subtree, capt, name, mfg, mbg, desc)
1034 #define INIT_OPT_COLOR_TREE(subtree, capt, name, desc)                  \
1035         INIT_OPT_TREE("ui.colors.color" subtree, capt, name, 0, desc),  \
1036         INIT_OPT_TREE("ui.colors.mono" subtree, capt, name, 0, desc)
1038         INIT_OPT_TREE("ui.colors", N_("Color terminals"),
1039                 "color", 0,
1040                 N_("Color settings for color terminal.")),
1042         INIT_OPT_TREE("ui.colors", N_("Non-color terminals"),
1043                 "mono", 0,
1044                 N_("Color settings for non-color terminal.")),
1046         /* FIXME: obsolete, how to alias them correctly ? --Zas */
1047         INIT_OPT_COLOR_TREE("", N_("Main menu bar"),
1048                 "mainmenu",
1049                 N_("Main menu bar colors.")),
1051         INIT_OPT_COLORS(".mainmenu", N_("Unselected main menu bar item"),
1052                 "normal", "black", "white", "black", "white",
1053                 N_("Unselected main menu bar item colors.")),
1055         INIT_OPT_COLORS(".mainmenu", N_("Selected main menu bar item"),
1056                 "selected", "green", "black", "gray", "black",
1057                 N_("Selected main menu bar item colors.")),
1059         INIT_OPT_COLOR_TREE(".mainmenu", N_("Hotkey"),
1060                 "hotkey",
1061                 N_("Main menu hotkey colors.")),
1063         INIT_OPT_COLORS(".mainmenu.hotkey", N_("Unselected hotkey"),
1064                 "normal", "darkred", "white", "black", "white",
1065                 N_("Main menu unselected hotkey colors.")),
1067         INIT_OPT_COLORS(".mainmenu.hotkey", N_("Selected hotkey"),
1068                 "selected", "darkred", "green", "black", "white",
1069                 N_("Main menu selected hotkey colors.")),
1072         INIT_OPT_COLOR_TREE("", N_("Menu bar"),
1073                 "menu",
1074                 N_("Menu bar colors.")),
1076         INIT_OPT_COLORS(".menu", N_("Unselected menu item"),
1077                 "normal", "black", "white", "black", "white",
1078                 N_("Unselected menu item colors.")),
1080         INIT_OPT_COLORS(".menu", N_("Selected menu item"),
1081                 "selected", "black", "green", "gray", "black",
1082                 N_("Selected menu item colors.")),
1084         INIT_OPT_COLORS(".menu", N_("Marked menu item"),
1085                 "marked", "red", "white", "gray", "white",
1086                 N_("Marked menu item colors.")),
1088         INIT_OPT_COLOR_TREE(".menu", N_("Hotkey"),
1089                 "hotkey",
1090                 N_("Menu item hotkey colors.")),
1092         INIT_OPT_COLORS(".menu.hotkey", N_("Unselected hotkey"),
1093                 "normal", "darkred", "white", "gray", "black",
1094                 N_("Menu item unselected hotkey colors.")),
1096         INIT_OPT_COLORS(".menu.hotkey", N_("Selected hotkey"),
1097                 "selected", "darkred", "green", "gray", "black",
1098                 N_("Menu item selected hotkey colors.")),
1100         INIT_OPT_COLORS(".menu", N_("Menu frame"),
1101                 "frame", "black", "white", "black", "white",
1102                 N_("Menu frame colors.")),
1105         INIT_OPT_COLOR_TREE("", N_("Dialog"),
1106                 "dialog",
1107                 N_("Dialog colors.")),
1109         /* Compatibility alias: added by jonas at 2003-10-18, 0.5pre7.CVS. */
1110         INIT_OPT_ALIAS("ui.colors.color.dialog", "background", 0,
1111                 "ui.colors.color.dialog.generic.background"),
1113         /* Compatibility alias: added by jonas at 2003-10-18, 0.5pre7.CVS. */
1114         INIT_OPT_ALIAS("ui.colors.mono.dialog", "background", 0,
1115                 "ui.colors.mono.dialog.generic.background"),
1117         INIT_OPT_COLORS(".dialog", N_("Generic"),
1118                 "generic", "black", "white", "black", "white",
1119                 N_("Generic dialog colors.")),
1121         INIT_OPT_COLORS(".dialog", N_("Frame"),
1122                 "frame", "black", "white", "black", "white",
1123                 N_("Dialog frame colors.")),
1125         INIT_OPT_COLORS(".dialog", N_("Scrollbar"),
1126                 "scrollbar", "black", "blue", "white", "black",
1127                 N_("Scrollbar colors.")),
1129         INIT_OPT_COLORS(".dialog", N_("Selected scrollbar"),
1130                 "scrollbar-selected", "black", "green", "black", "white",
1131                 N_("Scrollbar selected colors.")),
1133         INIT_OPT_COLORS(".dialog", N_("Title"),
1134                 "title", "darkred", "white", "gray", "black",
1135                 N_("Dialog title colors.")),
1137         INIT_OPT_COLORS(".dialog", N_("Text"),
1138                 "text", "black", "white", "black", "white",
1139                 N_("Dialog text colors.")),
1141         INIT_OPT_COLORS(".dialog", N_("Checkbox"),
1142                 "checkbox", "darkred", "white", "black", "white",
1143                 N_("Dialog checkbox colors.")),
1145         INIT_OPT_COLORS(".dialog", N_("Selected checkbox"),
1146                 "checkbox-selected", "yellow", "green", "white", "black",
1147                 N_("Dialog selected checkbox colors.")),
1149         INIT_OPT_COLORS(".dialog", N_("Checkbox label"),
1150                 "checkbox-label", "black", "white", "black", "white",
1151                 N_("Dialog checkbox label colors.")),
1153         INIT_OPT_COLORS(".dialog", N_("Button"),
1154                 "button", "white", "blue", "black", "white",
1155                 N_("Dialog button colors.")),
1157         INIT_OPT_COLORS(".dialog", N_("Selected button"),
1158                 "button-selected", "yellow", "green", "white", "black",
1159                 N_("Dialog selected button colors.")),
1161         INIT_OPT_COLORS(".dialog", N_("Button shortcut"),
1162                 "button-shortcut", "yellow", "blue", "white", "black",
1163                 N_("Dialog button colors.")),
1165         INIT_OPT_COLORS(".dialog", N_("Selected button shortcut"),
1166                 "button-shortcut-selected", "white", "blue", "black", "white",
1167                 N_("Dialog selected button colors.")),
1169         INIT_OPT_COLORS(".dialog", N_("Text field"),
1170                 "field", "white", "blue", "gray", "black",
1171                 N_("Dialog text field colors.")),
1173         INIT_OPT_COLORS(".dialog", N_("Text field text"),
1174                 "field-text", "yellow", "blue", "gray", "black",
1175                 N_("Dialog field text colors.")),
1177         INIT_OPT_COLORS(".dialog", N_("Meter"),
1178                 "meter", "white", "blue", "gray", "black",
1179                 N_("Dialog meter colors.")),
1181         INIT_OPT_COLORS(".dialog", N_("Shadow"),
1182                 "shadow", "black", "black", "black", "black",
1183                 N_("Dialog shadow colors (see ui.shadows option).")),
1185         INIT_OPT_COLOR_TREE("", N_("Title bar"),
1186                 "title",
1187                 N_("Title bar colors.")),
1189         INIT_OPT_COLORS(".title", N_("Generic title bar"),
1190                 "title-bar", "black", "white", "gray", "black",
1191                 N_("Generic title bar colors.")),
1193         INIT_OPT_COLORS(".title", N_("Title bar text"),
1194                 "title-text", "black", "white", "gray", "black",
1195                 N_("Title bar text colors.")),
1198         INIT_OPT_COLOR_TREE("", N_("Status bar"),
1199                 "status",
1200                 N_("Status bar colors.")),
1202         INIT_OPT_COLORS(".status", N_("Generic status bar"),
1203                 "status-bar", "black", "white", "black", "white",
1204                 N_("Generic status bar colors.")),
1206         INIT_OPT_COLORS(".status", N_("Status bar text"),
1207                 "status-text", "black", "white", "black", "white",
1208                 N_("Status bar text colors.")),
1211         INIT_OPT_COLOR_TREE("", N_("Tabs bar"),
1212                 "tabs",
1213                 N_("Tabs bar colors.")),
1215         INIT_OPT_COLORS(".tabs", N_("Unvisited tab"),
1216                 "unvisited", "darkblue", "white", "gray", "white",
1217                 N_("Tab colors for tabs that have not been "
1218                    "selected since they completed loading.")),
1220         INIT_OPT_COLORS(".tabs", N_("Unselected tab"),
1221                 "normal", "black", "white", "black", "white",
1222                 N_("Unselected tab colors.")),
1224         INIT_OPT_COLORS(".tabs", N_("Loading tab"),
1225                 "loading", "darkred", "white", "gray", "white",
1226                 N_("Tab colors for tabs that are loading in the background.")),
1228         INIT_OPT_COLORS(".tabs", N_("Selected tab"),
1229                 "selected", "black", "green", "gray", "black",
1230                 N_("Selected tab colors.")),
1232         INIT_OPT_COLORS(".tabs", N_("Tab separator"),
1233                 "separator", "brown", "white", "gray", "white",
1234                 N_("Tab separator colors.")),
1237         INIT_OPT_COLORS("", N_("Searched strings"),
1238                 "searched", "black", "lime", "black", "white",
1239                 N_("Searched string highlight colors.")),
1242         /* ========================================================== */
1243         /* ============= BORING PART (colors) END =================== */
1244         /* ========================================================== */
1246         /* Keep options in alphabetical order. */
1248         INIT_OPT_TREE("ui", N_("Dialog settings"),
1249                 "dialogs", 0,
1250                 N_("Dialogs-specific appearance and behaviour settings.")),
1253         INIT_OPT_INT("ui.dialogs", N_("Minimal height of listbox widget"),
1254                 "listbox_min_height", 0, 1, 20, 10,
1255                 N_("Minimal height of the listbox widget (used e.g. for "
1256                 "bookmarks or global history).")),
1258         INIT_OPT_BOOL("ui.dialogs", N_("Drop shadows"),
1259                 "shadows", 0, 0,
1260                 N_("Make dialogs drop shadows (the shadows are solid, you "
1261                 "can adjust their color by ui.colors.*.dialog.shadow). "
1262                 "You may also want to eliminate the wide borders by "
1263                 "adjusting setup.h.")),
1265         INIT_OPT_BOOL("ui.dialogs", N_("Underline menu hotkeys"),
1266                 "underline_hotkeys", 0, 0,
1267                 N_("Whether to underline hotkeys in menus to make them more "
1268                 "visible. Requires that underlining is enabled for the "
1269                 "terminal.")),
1271         INIT_OPT_BOOL("ui.dialogs", N_("Underline button shortcuts"),
1272                 "underline_button_shortcuts", 0, 0,
1273                 N_("Whether to underline button shortcuts to make them more "
1274                 "visible. Requires that underlining is enabled for the "
1275                 "terminal.")),
1278         INIT_OPT_TREE("ui", N_("Timer options"),
1279                 "timer", 0,
1280                 N_("Timed action after certain interval of user inactivity. "
1281                 "Someone can even find this useful, although you may not "
1282                 "believe that.")),
1284 #ifdef CONFIG_LEDS
1285         INIT_OPT_INT("ui.timer", N_("Enable"),
1286                 "enable", 0, 0, 2, 0,
1287                 N_("Whether to enable the timer or not:\n"
1288                 "0 is don't count down anything\n"
1289                 "1 is count down, but don't show the timer\n"
1290                 "2 is count down and show the timer near LEDs")),
1291 #else
1292         INIT_OPT_INT("ui.timer", N_("Enable"),
1293                 "enable", 0, 0, 2, 0,
1294                 N_("Whether to enable the timer or not:\n"
1295                 "0 is don't count down anything\n"
1296                 "1 is count down, but don't show the timer\n"
1297                 "2 is count down and show the timer near LEDs (DISABLED)")),
1298 #endif
1300         INIT_OPT_INT("ui.timer", N_("Duration"),
1301                 "duration", 0, 1, 86400, 86400,
1302                 N_("Inactivity timeout in seconds. The maximum of one day "
1303                 "should be enough for just everyone (TM).")),
1305         INIT_OPT_STRING("ui.timer", N_("Action"),
1306                 "action", 0, "",
1307                 N_("Keybinding action to be triggered when timer reaches "
1308                 "zero.")),
1311         INIT_OPT_TREE("ui", N_("Window tabs"),
1312                 "tabs", 0,
1313                 N_("Window tabs settings.")),
1315         INIT_OPT_INT("ui.tabs", N_("Display tabs bar"),
1316                 "show_bar", 0, 0, 2, 1,
1317                 N_("Show tabs bar on the screen:\n"
1318                 "0 means never\n"
1319                 "1 means only if two or more tabs are open\n"
1320                 "2 means always")),
1322         INIT_OPT_BOOL("ui.tabs", N_("Tab bar at top"),
1323                 "top", 0, 0,
1324                 N_("Whether display tab bar at top like other browsers do.")),
1326         INIT_OPT_BOOL("ui.tabs", N_("Wrap-around tabs cycling"),
1327                 "wraparound", 0, 1,
1328                 N_("When moving right from the last tab, jump to the first "
1329                 "one, and vice versa.")),
1331         INIT_OPT_BOOL("ui.tabs", N_("Confirm tab closing"),
1332                 "confirm_close", 0, 0,
1333                 N_("When closing a tab show confirmation dialog.")),
1337         INIT_OPT_LANGUAGE("ui", N_("Language"),
1338                 "language", 0,
1339                 N_("Language of user interface. 'System' means that the "
1340                 "language will be extracted from the environment "
1341                 "dynamically.")),
1343         INIT_OPT_BOOL("ui", N_("Display menu bar always"),
1344                 "show_menu_bar_always", 0, 0,
1345                 N_("Always show menu bar on the screen.")),
1347         INIT_OPT_BOOL("ui", N_("Display status bar"),
1348                 "show_status_bar", 0, 1,
1349                 N_("Show status bar on the screen.")),
1351         INIT_OPT_BOOL("ui", N_("Display title bar"),
1352                 "show_title_bar", 0, 1,
1353                 N_("Show title bar on the screen.")),
1355         INIT_OPT_BOOL("ui", N_("Display goto dialog in new tabs"),
1356                 "startup_goto_dialog", 0, 1,
1357                 N_("Pop up goto dialog in newly created tabs when there's "
1358                 "no homepage set. This means also showing goto dialog on "
1359                 "startup.")),
1361         INIT_OPT_BOOL("ui", N_("Show a message box when file is saved successfully"),
1362                 "success_msgbox", 0, 1,
1363                 N_("When you pressed a [ Save ] button in some manager, "
1364                 "this option will make sure that a box confirming success "
1365                 "of the operation will pop up.")),
1368         INIT_OPT_TREE("ui", N_("Sessions"),
1369                 "sessions", OPT_SORT,
1370                 N_("Sessions settings.")),
1372         INIT_OPT_BOOL("ui.sessions", N_("Keep session active"),
1373                 "keep_session_active", 0, 0,
1374                 N_("Keep the session active even if the last terminal "
1375                 "exits.")),
1377         INIT_OPT_BOOL("ui.sessions", N_("Auto save session"),
1378                 "auto_save", 0, 0,
1379                 N_("Automatically save the session when quitting.\n"
1380                 "\n"
1381                 "This feature requires bookmark support.")),
1383         INIT_OPT_BOOL("ui.sessions", N_("Auto restore session"),
1384                 "auto_restore", 0, 0,
1385                 N_("Automatically restore the session at start.\n"
1386                 "\n"
1387                 "This feature requires bookmark support.")),
1389         INIT_OPT_STRING("ui.sessions", N_("Auto save and restore session folder name"),
1390                 "auto_save_foldername", 0, "Auto saved session",
1391                 N_("Name of the bookmarks folder used for auto saving and "
1392                 "restoring session. The name has to be unique. Any folders "
1393                 "with the same name will be deleted.\n"
1394                 "\n"
1395                 "This only makes sense with bookmark support.")),
1397         INIT_OPT_STRING("ui.sessions", N_("Homepage URI"),
1398                 "homepage", 0, WWW_HOME_URL,
1399                 N_("The URI to load either at startup time when no URI was "
1400                 "given on the command line or when requested by the "
1401                 "goto-url-home action. Set to \"\" if the environment "
1402                 "variable WWW_HOME should be used as homepage URI instead.")),
1404 #ifdef HAVE_STRFTIME
1405         INIT_OPT_STRING("ui", N_("Date format"),
1406                 "date_format", 0, "%b %e %H:%M",
1407                 N_("Date format to use in dialogs. See strftime(3).")),
1408 #endif
1410         INIT_OPT_BOOL("ui", N_("Set window title"),
1411                 "window_title", 0, 1,
1412                 N_("Set the window title when running in a windowing "
1413                 "environment in an xterm-like terminal. This way the "
1414                 "document's title is shown on the window titlebar.")),
1418         /* Compatibility alias: added by pasky at 2004-07-22, 0.9.CVS. */
1419         INIT_OPT_ALIAS("", "secure_file_saving", 0, "infofiles.secure_save"),
1421         NULL_OPTION_INFO,
1424 /* vim: set filetype=c : */