[wip] draw_images(): w, h, spos -> box screen_img; img_box -> pixel_box
[elinks/images.git] / src / config / options.inc
bloba267abff35e06573176fee997a8ff3e3cfbe0fa5
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.")),
400         INIT_OPT_INT("document.browse.scrolling", N_("Vertical overlap"),
401                 "vertical_overlap", 0, 0, 10, 0,
402                 N_("Number of overlapping lines between the new page displayed "
403                 "and the previous one when scrolling one page up or down.")),
406         INIT_OPT_TREE("document.browse", N_("Searching"),
407                 "search", 0,
408                 N_("Options for searching.")),
410         INIT_OPT_BOOL("document.browse.search", N_("Case sensitivity"),
411                 "case", 0, 0,
412                 N_("Whether the search should match the document text while "
413                 "maintaining case sensitivity.")),
415 #ifdef CONFIG_TRE
416         INIT_OPT_INT("document.browse.search", N_("Regular expressions"),
417                 "regex", 0, 0, 2, 0,
418                 N_("Enable searching with regular expressions:\n"
419                 "0 for plain text searching\n"
420                 "1 for basic regular expression searches\n"
421                 "2 for extended regular expression searches")),
422 #endif
424         INIT_OPT_BOOL("document.browse.search", N_("Show search hit top or bottom dialogs"),
425                 "show_hit_top_bottom", 0, 1,
426                 N_("Whether to show a dialog when the search hits the top or "
427                 "bottom of the document.")),
429         INIT_OPT_BOOL("document.browse.search", N_("Wraparound"),
430                 "wraparound", 0, 1,
431                 N_("Wrap around when searching. Currently only used for "
432                 "typeahead.")),
434         INIT_OPT_INT("document.browse.search", N_("Show not found"),
435                 "show_not_found", 0, 0, 2, 2,
436                 N_("How to inform the user when nothing is matched:\n"
437                 "0 means do nothing\n"
438                 "1 means beep the terminal\n"
439                 "2 means pop up message box")),
441         INIT_OPT_INT("document.browse.search", N_("Typeahead searching"),
442                 "typeahead", 0, 0, 2, 0,
443                 N_("Start typeahead searching when an unbound key is pressed "
444                 "without any modifiers. Note that most keys have default "
445                 "bindings, so this feature will not be useful unless you "
446                 "unbind them.\n"
447                 "\n"
448                 "0 disables this feature; typeahead searching will only be\n"
449                 "  used when you press a key bound to search-typeahead or\n"
450                 "  similar\n"
451                 "1 automatically starts typeahead searching thru link text\n"
452                 "2 automatically starts typeahead searching thru all document\n"
453                 "  text")),
456         INIT_OPT_INT("document.browse", N_("Horizontal text margin"),
457                 "margin_width", 0, 0, 9, 3,
458                 N_("Horizontal text margin.")),
460         INIT_OPT_BOOL("document.browse", N_("Document meta refresh"),
461                 "refresh", 0, 1,
462                 N_("Automatically follow document-specified refresh "
463                 "directives ('<meta> refresh' tags). Web-page authors use "
464                 "these to instruct the browser to reload a document at a "
465                 "given interval or to load another page. Regardless of the "
466                 "value the refresh URI is accessible as a link.\n"
467                 "\n"
468                 "Use the document.browse.minimum_refresh_time to control the "
469                 "minimum number of seconds a refresh will wait.")),
471         INIT_OPT_INT("document.browse", N_("Document meta refresh minimum time"),
472                 "minimum_refresh_time", 0, 0, INT_MAX, 1000,
473                 N_("The minimum number of milliseconds that should pass "
474                 "before refreshing. If set to zero the document refresh time "
475                 "is used unchanged. It can fix going back in history for some "
476                 "sites that use refreshing with zero values.")),
478         INIT_OPT_BOOL("document.browse", N_("Tables navigation order"),
479                 "table_move_order", 0, 0,
480                 N_("Move by columns in table, instead of rows.")),
482         /* Keep options in alphabetical order. */
486         INIT_OPT_TREE("document", N_("Cache"),
487                 "cache", OPT_SORT,
488                 N_("Cache options.")),
490         INIT_OPT_BOOL("document.cache", N_("Cache information about redirects"),
491                 "cache_redirects", 0, 0,
492                 N_("Cache even redirects sent by server (usually thru HTTP by "
493                 "a 302 HTTP code and a Location header). This was the "
494                 "original behaviour for quite some time, but it causes "
495                 "problems in a situation very common to various web login "
496                 "systems - frequently, when accessing a certain location, "
497                 "they will redirect you to a login page if they don't receive "
498                 "an auth cookie, the login page then gives you the cookie and "
499                 "redirects you back to the original page, but there you have "
500                 "already cached redirect back to the login page! If this "
501                 "option has value of 0, this malfunction is fixed, but "
502                 "occasionally you may get superfluous (depends on how you "
503                 "take it ;-) requests to the server. If this option has value "
504                 "of 1, experienced users can still workaround it by clever "
505                 "combination of usage of reload, jumping around in session "
506                 "history and hitting ctrl+enter.\n"
507                 "\n"
508                 "Note that this option is checked when retrieving the "
509                 "information from cache, not when saving it to cache - thus "
510                 "if you enable it, even previous redirects will be taken from "
511                 "cache instead of asking the server.")),
513         INIT_OPT_BOOL("document.cache", N_("Ignore cache-control info from server"),
514                 "ignore_cache_control", 0, 1,
515                 N_("Ignore Cache-Control and Pragma server headers. "
516                 "When set, the document is cached even with 'Cache-Control: "
517                 "no-cache'.")),
519         INIT_OPT_TREE("document.cache", N_("Formatted documents"),
520                 "format", 0,
521                 N_("Format cache options.")),
523         INIT_OPT_INT("document.cache.format", N_("Number"),
524                 "size", 0, 0, 256, 5,
525                 N_("Number of cached formatted pages. Do not get too "
526                 "generous here, 'formatted' means that all the accompanying "
527                 "structures are kept in memory so that you get the cached "
528                 "document immediatelly, but these structures may take a lot "
529                 "- 2x the size of the HTML source is probably not unusual, "
530                 "but it can be even more if the document consists of a lot "
531                 "of short lines (padded right, if possible) and links and "
532                 "not much other markup. So if you set this to 256 and then "
533                 "you don't like your ELinks eating 90M, don't come "
534                 "complaining to us. ;-)\n"
535                 "\n"
536                 "Also note that the format cache itself is not counted to "
537                 "the memory cache size, but the HTML source of the formatted "
538                 "documents is always cached, even if it is over the memory "
539                 "cache size threshold. (Then of course no other documents "
540                 "can be cached.)")),
542         /* FIXME: Write more. */
543         INIT_OPT_INT("document.cache", N_("Revalidation interval"),
544                 "revalidation_interval", 0, -1, 86400, -1,
545                 N_("Period in seconds that a cache entry is considered to be "
546                 "up-to-date. When a document is loaded and this interval has "
547                 "elapsed since the document was initially loaded or most "
548                 "recently revalidated with the server, the server will be "
549                 "checked in case there is a more up-to-date version of the "
550                 "document.\n"
551                 "\n"
552                 "A value of -1 disables automatic revalidation.")),
554         INIT_OPT_TREE("document.cache", N_("Memory cache"),
555                 "memory", 0,
556                 N_("Memory cache options.")),
558         INIT_OPT_LONG("document.cache.memory", N_("Size"),
559                 "size", 0, 0, LONG_MAX, 1048576,
560                 N_("Memory cache size (in bytes).")),
564         INIT_OPT_TREE("document", N_("Charset"),
565                 "codepage", 0,
566                 N_("Charset options.")),
568         INIT_OPT_CODEPAGE("document.codepage", N_("Default codepage"),
569                 "assume", 0, "System",
570                 N_("Default document codepage. 'System' stands for "
571                 "a codepage determined by a selected locale.")),
573         INIT_OPT_BOOL("document.codepage", N_("Ignore charset info from server"),
574                 "force_assumed", 0, 0,
575                 N_("Ignore charset info sent by server.")),
579         INIT_OPT_TREE("document", N_("Default color settings"),
580                 "colors", 0,
581                 N_("Default document color settings.")),
584         INIT_OPT_COLOR("document.colors", N_("Text color"),
585                 "text", 0, "#bfbfbf",
586                 N_("Default text color.")),
588         INIT_OPT_COLOR("document.colors", N_("Background color"),
589                 "background", 0, "#000000",
590                 N_("Default background color.")),
592         INIT_OPT_COLOR("document.colors", N_("Link color"),
593                 "link", 0, "#0000ff",
594                 N_("Default link color.")),
596         INIT_OPT_COLOR("document.colors", N_("Visited-link color"),
597                 "vlink", 0, "#ffff00",
598                 N_("Default visited link color.")),
600         INIT_OPT_COLOR("document.colors", N_("Image-link color"),
601                 "image", 0, "darkolivegreen",
602                 N_("Default image link color.")),
604         INIT_OPT_COLOR("document.colors", N_("Bookmarked-link color"),
605                 "bookmark", 0, "hotpink",
606                 N_("Default bookmarked link color.")),
608         INIT_OPT_COLOR("document.colors", N_("Directory color"),
609                 "dirs", 0, "#ffff00",
610                 N_("Default directory color.\n"
611                 "\n"
612                 "See document.browse.links.color_dirs option.")),
614         /* Compatibility alias: added by jonas at 2005-05-31, 0.11.CVS. */
615         INIT_OPT_ALIAS("document.colors", "allow_dark_on_black", OPT_ALIAS_NEGATE,
616                 "document.colors.increase_contrast"),
618         INIT_OPT_BOOL("document.colors", N_("Increase contrast"),
619                 "increase_contrast", 0, 1,
620                 N_("Increase the contrast between the foreground and "
621                 "background colors to ensure readability. For example it "
622                 "disallows dark colors on a black background. Note, this "
623                 "is different from ensuring the contrast with the "
624                 "ensure_contrast option.")),
626         INIT_OPT_BOOL("document.colors", N_("Ensure contrast"),
627                 "ensure_contrast", 0, 1,
628                 N_("Makes sure that the back- and foreground colors are never "
629                 "equal.")),
631         /* If you change this please also change ACT_MAIN_DOCUMENT_COLORS action
632          * handling. */
633         INIT_OPT_INT("document.colors", N_("Use document-specified colors"),
634                 "use_document_colors", 0, 0, 2, 2,
635                 N_("Use colors specified in document:\n"
636                 "0 is use always the default settings\n"
637                 "1 is use document colors if available, except background\n"
638                 "2 is use document colors, including background. This can\n"
639                 "  mostly look very impressive, but some sites will appear\n"
640                 "  really ugly. Note, that obviously if the background is\n"
641                 "  not black, it will break the behaviour of transparency.")),
644         /* Keep options in alphabetical order. */
648         INIT_OPT_TREE("document", N_("Downloading"),
649                 "download", 0,
650                 N_("Options regarding files downloading and handling.")),
652         INIT_OPT_STRING("document.download", N_("Default download directory"),
653                 "directory", 0, "./",
654                 N_("Default download directory.")),
656         INIT_OPT_BOOL("document.download", N_("Set original time"),
657                 "set_original_time", 0, 0,
658                 N_("Set the timestamp of each downloaded file to the "
659                 "timestamp stored on the server.")),
661         /* Does automatic resuming make sense as an option? */
662         INIT_OPT_INT("document.download", N_("Prevent overwriting"),
663                 "overwrite", 0, 0, 2, 2,
664                 N_("Prevent overwriting the local files:\n"
665                 "0 is files will silently be overwritten\n"
666                 "1 is add a suffix .{number} (for example '.1') to the name\n"
667                 "2 is ask the user")),
669         INIT_OPT_INT("document.download", N_("Notify download completion by bell"),
670                 "notify_bell", 0, 0, 2, 0,
671                 N_("Audio notification when download is completed:\n"
672                 "0 is never\n"
673                 "1 is when background notification is active\n"
674                 "2 is always")),
677         INIT_OPT_TREE("document", N_("Dump output"),
678                 "dump", 0,
679                 N_("Dump output options.")),
681         INIT_OPT_CODEPAGE("document.dump", N_("Codepage"),
682                 "codepage", 0, "System",
683                 N_("Codepage used in dump output. 'System' stands for "
684                 "a codepage determined by a selected locale.")),
686         INIT_OPT_INT("document.dump", N_("Color mode"),
687                 "color_mode", 0, -1, COLOR_MODES - 1, -1,
688                 /* The list of modes must be at the end of this string
689                  * because AsciiDoc 7.1.2 does not support continuing
690                  * an outer list entry after an inner list.
691                  * TRANSLATORS: This restriction applies only to the
692                  * "en" (English) translation.  (See doc/Makefile.)  */
693                 N_("Color mode for dumps.\n"
694                 "\n"
695                 "Some modes may have been disabled at compile time. "
696                 "The Setup -> Terminal options dialog lists the modes "
697                 "supported by this executable. If you select an "
698                 "unsupported mode, ELinks uses 16 colors.\n"
699                 "\n"
700                 "The color modes are:\n"
701                 "-1 is standard dump mode\n"
702                 "0 is mono mode\n"
703                 "1 is 16 color mode\n"
704                 "2 is 88 color mode\n"
705                 "3 is 256 color mode\n"
706                 "4 is true color mode")),
708         INIT_OPT_STRING("document.dump", N_("Footer"),
709                 "footer", 0, "",
710                 N_("Footer string used in dumps. %u is substituted by URL.")),
712         INIT_OPT_STRING("document.dump", N_("Header"),
713                 "header", 0, "",
714                 N_("Header string used in dumps. %u is substituted by URL.")),
716         INIT_OPT_BOOL("document.dump", N_("Numbering"),
717                 "numbering", 0, 1,
718                 N_("Whether to print link numbers in dump output.")),
720         INIT_OPT_BOOL("document.dump", N_("References"),
721                 "references", 0, 1,
722                 N_("Whether to print references (URIs) of document links "
723                 "in dump output.")),
725         INIT_OPT_STRING("document.dump", N_("Separator"),
726                 "separator", 0, "\n\n",
727                 N_("String which separates two dumps.")),
729         INIT_OPT_INT("document.dump", N_("Width"),
730                 "width", 0, 1, 65536, DEFAULT_TERMINAL_WIDTH,
731                 N_("Width of screen in characters when dumping documents.")),
735         INIT_OPT_TREE("document", N_("History"),
736                 "history", OPT_SORT,
737                 N_("History options.")),
739         INIT_OPT_BOOL("document.history", N_("Keep unhistory"),
740                 "keep_unhistory", 0, 1,
741                 N_("Keep unhistory (\"forward history\").")),
744         INIT_OPT_TREE("document", N_("HTML rendering"),
745                 "html", 0,
746                 N_("Options concerning the display of HTML pages.")),
748         INIT_OPT_BOOL("document.html", N_("Display frames"),
749                 "display_frames", 0, 1,
750                 N_("Display frames.")),
752         INIT_OPT_BOOL("document.html", N_("Display tables"),
753                 "display_tables", 0, 1,
754                 N_("Display tables.")),
756         INIT_OPT_BOOL("document.html", N_("Display subscripts"),
757                 "display_subs", 0, 1,
758                 N_("Display subscripts (as [thing]).")),
760         INIT_OPT_BOOL("document.html", N_("Display superscripts"),
761                 "display_sups", 0, 1,
762                 N_("Display superscripts (as ^thing).")),
764         INIT_OPT_INT("document.html", N_("Rendering of HTML link element"),
765                 "link_display", 0, 0, 5, 2,
766                 N_("How to render <link> tags from the HTML header:\n"
767                 "0 is nothing\n"
768                 "1 is title\n"
769                 "2 is name in addition\n"
770                 "3 is hreflang in addition\n"
771                 "4 is type in addition\n"
772                 "5 is everything")),
774         INIT_OPT_BOOL("document.html", N_("Underline links"),
775                 "underline_links", 0, 0,
776                 N_("Underline links.")),
778         INIT_OPT_BOOL("document.html", N_("Wrap non breaking space"),
779                 "wrap_nbsp", 0, 0,
780                 N_("If set do not honour non breaking space (the nbsp entity) "
781                 "but allow to wrap the text. This can help keeping the width "
782                 "of documents down so no horizontal scrolling is needed.")),
785         INIT_OPT_TREE("document", N_("Plain rendering"),
786                 "plain", 0,
787                 N_("Options concerning the display of plain text pages.")),
789         INIT_OPT_BOOL("document.plain", N_("Display URIs"),
790                 "display_links", 0, 0,
791                 N_("Display URIs in the document as links.")),
793         INIT_OPT_BOOL("document.plain", N_("Compress empty lines"),
794                 "compress_empty_lines", 0, 0,
795                 N_("Compress successive empty lines to only one in displayed "
796                 "text.")),
799         INIT_OPT_TREE("document", N_("URI passing"),
800                 "uri_passing", OPT_SORT | OPT_AUTOCREATE,
801                 N_("Rules for passing URIs to external commands. When one "
802                 "rule is defined the link and tab menu will have a menu item "
803                 "that makes it possible to pass the the link, frame or tab "
804                 "URI to an external command. If several rules are defined the "
805                 "link and tab menu will have a submenu of items for each "
806                 "rule.\n"
807                 "\n"
808                 "Note, this is mostly useful for launching graphical viewers, "
809                 "since there is no support for releasing the terminal while "
810                 "the command runs. The action and submenus are also available "
811                 "by binding keys to the frame-external-command, the "
812                 "link-external-command, and the tab-external-command "
813                 "actions.")),
815         INIT_OPT_STRING("document.uri_passing", NULL,
816                 "_template_", 0, "",
817                 N_("A rule for passing URI to an external command. "
818                 "The format is:\n"
819                 "%c in the string means the current URL\n"
820                 "%% in the string means '%'\n"
821                 "Do _not_ put single- or double-quotes around %c.")),
823         /* Keep options in alphabetical order. */
827         INIT_OPT_TREE("", N_("Information files"),
828                 "infofiles", OPT_SORT,
829                 N_("Options for information files in ~/.elinks.")),
831         INIT_OPT_INT("infofiles", N_("Save interval"),
832                 "save_interval", 0, 0, INT_MAX, 300,
833                 N_("Interval at which to trigger information files in "
834                 "~/.elinks to be saved to disk if they have changed "
835                 "(seconds; 0 to disable)")),
837         INIT_OPT_BOOL("infofiles", N_("Use secure file saving"),
838                 "secure_save", 0, 1,
839                 N_("First write data to unique temporary file, then rename "
840                 "this file upon successfully finishing this. Note that this "
841                 "relates only to config files, not downloaded files. "
842                 "You may want to disable it if you are using some exotic "
843                 "permissions for concerned files. Secure file saving is "
844                 "automagically disabled if file is symlink.\n"
845                 "\n"
846                 "Warning: some systems (ie. OS/2, Win32) require that "
847                 "destination file doesn't exist when rename(3) is called, "
848                 "breaking atomicity, and reducing reliability of this "
849                 "feature.")),
851         INIT_OPT_BOOL("infofiles", N_("Use fsync(3) with secure file saving"),
852                 "secure_save_fsync", 0, 1,
853                 N_("When using secure file saving, call fsync(3), if the OS "
854                 "supports it, to force the OS immediately to write the "
855                 "data to permanent storage. This is optional for those who "
856                 "wish to avoid excessive disk I/O.")),
858         /* Keep options in alphabetical order. */
862         INIT_OPT_TREE("", N_("Terminals"),
863                 "terminal", OPT_AUTOCREATE,
864                 N_("Terminal options.")),
866         INIT_OPT_TREE("terminal", NULL,
867                 "_template_", 0,
868                 N_("Options specific to this terminal type (according to "
869                 "$TERM value).")),
871         /* TODO: Incorporate some of the following to the option text.
872          *
873          * When UTF-8 I/O is disabled:
874          * 0 (TERM_DUMB) outputs ASCII -+| characters.
875          * 1 (TERM_VT100) switches charsets with ^N and ^O.
876          * 2 (TERM_LINUX) outputs CP437 characters without switching
877          *   charsets, so it works correctly only if the terminal uses
878          *   CP437.  Can also be made CP850 and CP852 compatible with
879          *   the restrict_852 option.
880          * 3 (TERM_KOI8) outputs KOI8-R characters without switching
881          *   charsets, so it works correctly only if the terminal uses
882          *   KOI8-R and the user has selected either KOI8-R or ASCII
883          *   in ELinks.  It is also mostly compatible with KOI8-U.
884          * 4 (TERM_FREEBSD) outputs characters in the 0x80...0x9F
885          *   range, which FreeBSD 4.0 (but not 5.0) treated as
886          *   graphical.
887          * 5 (TERM_FBTERM)
888          *
889          * When UTF-8 I/O is enabled, ELinks outputs (almost) the same
890          * characters as above but encodes them in UTF-8 and does not
891          * switch charsets.  So, it will work in any terminal that
892          * understands UTF-8 and has the characters in its font.  */
893         INIT_OPT_INT("terminal._template_", N_("Type"),
894                 "type", 0, 0, 5, 0,
895                 N_("Terminal type; matters mostly only when drawing frames "
896                 "and dialog box borders:\n"
897                 "0 is dumb terminal type, ASCII art\n"
898                 "1 is VT100, simple but portable\n"
899                 "2 is Linux, you get double frames and other goodies\n"
900                 "3 is KOI-8\n"
901                 "4 is FreeBSD\n"
902                 "5 is fbterm")),
904         INIT_OPT_BOOL("terminal._template_", N_("Always encode xterm title in ISO-8859-1"),
905                 "latin1_title", 0, 1,
906                 N_("When updating the window title of xterm or a similar "
907                 "terminal emulator, encode the title in ISO-8859-1 (Latin-1), "
908                 "rather than in the charset used for other text in the "
909                 "window. Cyrillic and other characters get replaced with "
910                 "Latin ones. Xterm requires this unless you explicitly "
911                 "enable UTF-8 titles in it.\n"
912                 "\n"
913                 "If this option does not take effect immediately, try "
914                 "switching to a different page so that ELinks notices "
915                 "it needs to update the title.")),
917         INIT_OPT_BOOL("terminal._template_", N_("Switch fonts for line drawing"),
918                 "m11_hack", 0, 0,
919                 N_("Switch fonts when drawing lines, enabling both local "
920                 "characters and lines working at the same time. "
921                 "ELinks uses this option only if UTF-8 I/O is disabled "
922                 "and the terminal type is Linux or FreeBSD.")),
924         /* When CONFIG_UTF8 is defined, any code that reads the "utf_8_io"
925          * option should also check whether the "codepage" option is UTF-8,
926          * and if so, behave as if "utf_8_io" were 1.  (When CONFIG_UTF8 is
927          * not defined, it should not be possible to set UTF-8 as "codepage";
928          * please report any such possibilities as bugs.)  */
929         INIT_OPT_BOOL("terminal._template_", N_("UTF-8 I/O"),
930                 "utf_8_io", 0, 0,
931                 N_("Enable I/O in UTF-8 for Unicode terminals. "
932                 "Note that currently, only the subset of UTF-8 according to "
933                 "terminal codepage is used. ELinks ignores this option "
934                 "if the terminal codepage is UTF-8.")),
936 #ifdef CONFIG_COMBINE
937         INIT_OPT_BOOL("terminal._template_", N_("Combining characters"),
938                 "combine", 0, 0,
939                 N_("Enable combining characters. It works only with "
940                 "the xterm in UTF-8 mode.")),
941 #endif
943         INIT_OPT_BOOL("terminal._template_", N_("Restrict frames in cp850/852"),
944                 "restrict_852", 0, 0,
945                 N_("Restrict the characters used when drawing lines. "
946                 "Makes sense only with linux terminals using the cp850/852 "
947                 "character sets.")),
949         INIT_OPT_BOOL("terminal._template_", N_("Block cursor"),
950                 "block_cursor", 0, 0,
951                 N_("Move cursor to bottom right corner when done drawing. "
952                 "This is particularly useful when we have a block cursor, "
953                 "so that inversed text is displayed correctly.")),
955         INIT_OPT_INT("terminal._template_", N_("Color mode"),
956                 "colors", 0, 0, COLOR_MODES - 1, 0,
957                 /* The list of modes must be at the end of this string
958                  * because AsciiDoc 7.1.2 does not support continuing
959                  * an outer list entry after an inner list.
960                  * TRANSLATORS: This restriction applies only to the
961                  * "en" (English) translation.  (See doc/Makefile.)  */
962                 N_("The color mode controls what colors are used and how they "
963                 "are output to the terminal.\n"
964                 "\n"
965                 "Some modes may have been disabled at compile time. "
966                 "The Setup -> Terminal options dialog lists the modes "
967                 "supported by this executable. If you select an "
968                 "unsupported mode, ELinks uses 16 colors.\n"
969                 "\n"
970                 "The color modes are:\n"
971                 "0 is mono mode, only 2 colors are used\n"
972                 "1 is 16 color mode, uses the common ANSI colors\n"
973                 "2 is 88 color mode, uses XTerm RGB codes\n"
974                 "3 is 256 color mode, uses XTerm RGB codes\n"
975                 "4 is true color mode, uses konsole RGB codes")),
977         INIT_OPT_BOOL("terminal._template_", N_("Transparency"),
978                 "transparency", 0, 0,
979                 N_("If we should not set the background to black. "
980                 "This is particularly useful when we have a terminal "
981                 "(typically in some windowing environment) with a background "
982                 "image or a transparent background - it will be visible in "
983                 "ELinks as well (but ELinks document color handling will "
984                 "still assume the background is black so if you have a "
985                 "bright background you might experience contrast problems). "
986                 "Note that this option makes sense only when colors are "
987                 "enabled.")),
989         INIT_OPT_BOOL("terminal._template_", N_("Italic"),
990                 "italic", 0, 0,
991                 N_("If we should use italics.")),
993         INIT_OPT_BOOL("terminal._template_", N_("Underline"),
994                 "underline", 0, 0,
995                 N_("If we should use underline or enhance the color "
996                 "instead.")),
998         INIT_OPT_CODEPAGE("terminal._template_", N_("Codepage"),
999                 "charset", 0, "System",
1000                 N_("Codepage of charset used for displaying content on "
1001                 "terminal. 'System' stands for a codepage determined by "
1002                 "a selected locale.")),
1004         /* Keep options in alphabetical order. */
1008         INIT_OPT_TREE("", N_("User interface"),
1009                 "ui", OPT_SORT,
1010                 N_("User interface options.")),
1014         INIT_OPT_TREE("ui", N_("Color settings"),
1015                 "colors", 0,
1016                 N_("Default user interface color settings.")),
1019         /* ========================================================== */
1020         /* ============= BORING PART (colors) START ================= */
1021         /* ========================================================== */
1022         /* XXX: All bfu colors needs to have both 'text' and 'background'
1023          *      options even if it is not used. get_bfu_color() depends
1024          *      on it. */
1025         /* The colors and mono tree should be similar but with different default
1026          * values of course so always use the macros below. */
1028 #define DO_INIT_OPT_COLORS(subtree, capt, name, fg, bg, desc)           \
1029         INIT_OPT_TREE(subtree, capt, name, 0, desc),                    \
1030         INIT_OPT_COLOR(subtree "." name, N_("Text color"),              \
1031                       "text", 0, fg, N_("Default text color.")),        \
1032         INIT_OPT_COLOR(subtree "." name, N_("Background color"),        \
1033                       "background", 0, bg, N_("Default background color."))
1035 #define INIT_OPT_COLORS(subtree, capt, name, cfg, cbg, mfg, mbg, desc)  \
1036         DO_INIT_OPT_COLORS("ui.colors.color" subtree, capt, name, cfg, cbg, desc), \
1037         DO_INIT_OPT_COLORS("ui.colors.mono" subtree, capt, name, mfg, mbg, desc)
1039 #define INIT_OPT_COLOR_TREE(subtree, capt, name, desc)                  \
1040         INIT_OPT_TREE("ui.colors.color" subtree, capt, name, 0, desc),  \
1041         INIT_OPT_TREE("ui.colors.mono" subtree, capt, name, 0, desc)
1043         INIT_OPT_TREE("ui.colors", N_("Color terminals"),
1044                 "color", 0,
1045                 N_("Color settings for color terminal.")),
1047         INIT_OPT_TREE("ui.colors", N_("Non-color terminals"),
1048                 "mono", 0,
1049                 N_("Color settings for non-color terminal.")),
1051         /* FIXME: obsolete, how to alias them correctly ? --Zas */
1052         INIT_OPT_COLOR_TREE("", N_("Main menu bar"),
1053                 "mainmenu",
1054                 N_("Main menu bar colors.")),
1056         INIT_OPT_COLORS(".mainmenu", N_("Unselected main menu bar item"),
1057                 "normal", "black", "white", "black", "white",
1058                 N_("Unselected main menu bar item colors.")),
1060         INIT_OPT_COLORS(".mainmenu", N_("Selected main menu bar item"),
1061                 "selected", "green", "black", "gray", "black",
1062                 N_("Selected main menu bar item colors.")),
1064         INIT_OPT_COLOR_TREE(".mainmenu", N_("Hotkey"),
1065                 "hotkey",
1066                 N_("Main menu hotkey colors.")),
1068         INIT_OPT_COLORS(".mainmenu.hotkey", N_("Unselected hotkey"),
1069                 "normal", "darkred", "white", "black", "white",
1070                 N_("Main menu unselected hotkey colors.")),
1072         INIT_OPT_COLORS(".mainmenu.hotkey", N_("Selected hotkey"),
1073                 "selected", "darkred", "green", "black", "white",
1074                 N_("Main menu selected hotkey colors.")),
1077         INIT_OPT_COLOR_TREE("", N_("Menu bar"),
1078                 "menu",
1079                 N_("Menu bar colors.")),
1081         INIT_OPT_COLORS(".menu", N_("Unselected menu item"),
1082                 "normal", "black", "white", "black", "white",
1083                 N_("Unselected menu item colors.")),
1085         INIT_OPT_COLORS(".menu", N_("Selected menu item"),
1086                 "selected", "black", "green", "gray", "black",
1087                 N_("Selected menu item colors.")),
1089         INIT_OPT_COLORS(".menu", N_("Marked menu item"),
1090                 "marked", "red", "white", "gray", "white",
1091                 N_("Marked menu item colors.")),
1093         INIT_OPT_COLOR_TREE(".menu", N_("Hotkey"),
1094                 "hotkey",
1095                 N_("Menu item hotkey colors.")),
1097         INIT_OPT_COLORS(".menu.hotkey", N_("Unselected hotkey"),
1098                 "normal", "darkred", "white", "gray", "black",
1099                 N_("Menu item unselected hotkey colors.")),
1101         INIT_OPT_COLORS(".menu.hotkey", N_("Selected hotkey"),
1102                 "selected", "darkred", "green", "gray", "black",
1103                 N_("Menu item selected hotkey colors.")),
1105         INIT_OPT_COLORS(".menu", N_("Menu frame"),
1106                 "frame", "black", "white", "black", "white",
1107                 N_("Menu frame colors.")),
1110         INIT_OPT_COLOR_TREE("", N_("Dialog"),
1111                 "dialog",
1112                 N_("Dialog colors.")),
1114         /* Compatibility alias: added by jonas at 2003-10-18, 0.5pre7.CVS. */
1115         INIT_OPT_ALIAS("ui.colors.color.dialog", "background", 0,
1116                 "ui.colors.color.dialog.generic.background"),
1118         /* Compatibility alias: added by jonas at 2003-10-18, 0.5pre7.CVS. */
1119         INIT_OPT_ALIAS("ui.colors.mono.dialog", "background", 0,
1120                 "ui.colors.mono.dialog.generic.background"),
1122         INIT_OPT_COLORS(".dialog", N_("Generic"),
1123                 "generic", "black", "white", "black", "white",
1124                 N_("Generic dialog colors.")),
1126         INIT_OPT_COLORS(".dialog", N_("Frame"),
1127                 "frame", "black", "white", "black", "white",
1128                 N_("Dialog frame colors.")),
1130         INIT_OPT_COLORS(".dialog", N_("Scrollbar"),
1131                 "scrollbar", "black", "blue", "white", "black",
1132                 N_("Scrollbar colors.")),
1134         INIT_OPT_COLORS(".dialog", N_("Selected scrollbar"),
1135                 "scrollbar-selected", "black", "green", "black", "white",
1136                 N_("Scrollbar selected colors.")),
1138         INIT_OPT_COLORS(".dialog", N_("Title"),
1139                 "title", "darkred", "white", "gray", "black",
1140                 N_("Dialog title colors.")),
1142         INIT_OPT_COLORS(".dialog", N_("Text"),
1143                 "text", "black", "white", "black", "white",
1144                 N_("Dialog text colors.")),
1146         INIT_OPT_COLORS(".dialog", N_("Checkbox"),
1147                 "checkbox", "darkred", "white", "black", "white",
1148                 N_("Dialog checkbox colors.")),
1150         INIT_OPT_COLORS(".dialog", N_("Selected checkbox"),
1151                 "checkbox-selected", "yellow", "green", "white", "black",
1152                 N_("Dialog selected checkbox colors.")),
1154         INIT_OPT_COLORS(".dialog", N_("Checkbox label"),
1155                 "checkbox-label", "black", "white", "black", "white",
1156                 N_("Dialog checkbox label colors.")),
1158         INIT_OPT_COLORS(".dialog", N_("Button"),
1159                 "button", "white", "blue", "black", "white",
1160                 N_("Dialog button colors.")),
1162         INIT_OPT_COLORS(".dialog", N_("Selected button"),
1163                 "button-selected", "yellow", "green", "white", "black",
1164                 N_("Dialog selected button colors.")),
1166         INIT_OPT_COLORS(".dialog", N_("Button shortcut"),
1167                 "button-shortcut", "yellow", "blue", "white", "black",
1168                 N_("Dialog button colors.")),
1170         INIT_OPT_COLORS(".dialog", N_("Selected button shortcut"),
1171                 "button-shortcut-selected", "white", "blue", "black", "white",
1172                 N_("Dialog selected button colors.")),
1174         INIT_OPT_COLORS(".dialog", N_("Text field"),
1175                 "field", "white", "blue", "gray", "black",
1176                 N_("Dialog text field colors.")),
1178         INIT_OPT_COLORS(".dialog", N_("Text field text"),
1179                 "field-text", "yellow", "blue", "gray", "black",
1180                 N_("Dialog field text colors.")),
1182         INIT_OPT_COLORS(".dialog", N_("Meter"),
1183                 "meter", "white", "blue", "gray", "black",
1184                 N_("Dialog meter colors.")),
1186         INIT_OPT_COLORS(".dialog", N_("Shadow"),
1187                 "shadow", "black", "black", "black", "black",
1188                 N_("Dialog shadow colors (see ui.shadows option).")),
1190         INIT_OPT_COLOR_TREE("", N_("Title bar"),
1191                 "title",
1192                 N_("Title bar colors.")),
1194         INIT_OPT_COLORS(".title", N_("Generic title bar"),
1195                 "title-bar", "black", "white", "gray", "black",
1196                 N_("Generic title bar colors.")),
1198         INIT_OPT_COLORS(".title", N_("Title bar text"),
1199                 "title-text", "black", "white", "gray", "black",
1200                 N_("Title bar text colors.")),
1203         INIT_OPT_COLOR_TREE("", N_("Status bar"),
1204                 "status",
1205                 N_("Status bar colors.")),
1207         INIT_OPT_COLORS(".status", N_("Status bar show ip"),
1208                 "showip-text", "black", "white", "black", "white",
1209                 N_("Status bar show ip text colors.")),
1211         INIT_OPT_COLORS(".status", N_("Generic status bar"),
1212                 "status-bar", "black", "white", "black", "white",
1213                 N_("Generic status bar colors.")),
1216         INIT_OPT_COLORS(".status", N_("Status bar text"),
1217                 "status-text", "black", "white", "black", "white",
1218                 N_("Status bar text colors.")),
1221         INIT_OPT_COLOR_TREE("", N_("Tabs bar"),
1222                 "tabs",
1223                 N_("Tabs bar colors.")),
1225         INIT_OPT_COLORS(".tabs", N_("Unvisited tab"),
1226                 "unvisited", "darkblue", "white", "gray", "white",
1227                 N_("Tab colors for tabs that have not been "
1228                    "selected since they completed loading.")),
1230         INIT_OPT_COLORS(".tabs", N_("Unselected tab"),
1231                 "normal", "black", "white", "black", "white",
1232                 N_("Unselected tab colors.")),
1234         INIT_OPT_COLORS(".tabs", N_("Loading tab"),
1235                 "loading", "darkred", "white", "gray", "white",
1236                 N_("Tab colors for tabs that are loading in the background.")),
1238         INIT_OPT_COLORS(".tabs", N_("Selected tab"),
1239                 "selected", "black", "green", "gray", "black",
1240                 N_("Selected tab colors.")),
1242         INIT_OPT_COLORS(".tabs", N_("Tab separator"),
1243                 "separator", "brown", "white", "gray", "white",
1244                 N_("Tab separator colors.")),
1247         INIT_OPT_COLORS("", N_("Searched strings"),
1248                 "searched", "black", "lime", "black", "white",
1249                 N_("Searched string highlight colors.")),
1252         /* ========================================================== */
1253         /* ============= BORING PART (colors) END =================== */
1254         /* ========================================================== */
1256         /* Keep options in alphabetical order. */
1258         INIT_OPT_TREE("ui", N_("Dialog settings"),
1259                 "dialogs", 0,
1260                 N_("Dialogs-specific appearance and behaviour settings.")),
1263         INIT_OPT_INT("ui.dialogs", N_("Minimal height of listbox widget"),
1264                 "listbox_min_height", 0, 1, 20, 10,
1265                 N_("Minimal height of the listbox widget (used e.g. for "
1266                 "bookmarks or global history).")),
1268         INIT_OPT_BOOL("ui.dialogs", N_("Drop shadows"),
1269                 "shadows", 0, 0,
1270                 N_("Make dialogs drop shadows (the shadows are solid, you "
1271                 "can adjust their color by ui.colors.*.dialog.shadow). "
1272                 "You may also want to eliminate the wide borders by "
1273                 "adjusting setup.h.")),
1275         INIT_OPT_BOOL("ui.dialogs", N_("Underline menu hotkeys"),
1276                 "underline_hotkeys", 0, 0,
1277                 N_("Whether to underline hotkeys in menus to make them more "
1278                 "visible. Requires that underlining is enabled for the "
1279                 "terminal.")),
1281         INIT_OPT_BOOL("ui.dialogs", N_("Underline button shortcuts"),
1282                 "underline_button_shortcuts", 0, 0,
1283                 N_("Whether to underline button shortcuts to make them more "
1284                 "visible. Requires that underlining is enabled for the "
1285                 "terminal.")),
1288         INIT_OPT_TREE("ui", N_("Timer options"),
1289                 "timer", 0,
1290                 N_("Timed action after certain interval of user inactivity. "
1291                 "Someone can even find this useful, although you may not "
1292                 "believe that.")),
1294 #ifdef CONFIG_LEDS
1295         INIT_OPT_INT("ui.timer", N_("Enable"),
1296                 "enable", 0, 0, 2, 0,
1297                 N_("Whether to enable the timer or not:\n"
1298                 "0 is don't count down anything\n"
1299                 "1 is count down, but don't show the timer\n"
1300                 "2 is count down and show the timer near LEDs")),
1301 #else
1302         INIT_OPT_INT("ui.timer", N_("Enable"),
1303                 "enable", 0, 0, 2, 0,
1304                 N_("Whether to enable the timer or not:\n"
1305                 "0 is don't count down anything\n"
1306                 "1 is count down, but don't show the timer\n"
1307                 "2 is count down and show the timer near LEDs (DISABLED)")),
1308 #endif
1310         INIT_OPT_INT("ui.timer", N_("Duration"),
1311                 "duration", 0, 1, 86400, 86400,
1312                 N_("Inactivity timeout in seconds. The maximum of one day "
1313                 "should be enough for just everyone (TM).")),
1315         INIT_OPT_STRING("ui.timer", N_("Action"),
1316                 "action", 0, "",
1317                 N_("Keybinding action to be triggered when timer reaches "
1318                 "zero.")),
1321         INIT_OPT_TREE("ui", N_("Window tabs"),
1322                 "tabs", 0,
1323                 N_("Window tabs settings.")),
1325         INIT_OPT_INT("ui.tabs", N_("Display tabs bar"),
1326                 "show_bar", 0, 0, 2, 1,
1327                 N_("Show tabs bar on the screen:\n"
1328                 "0 means never\n"
1329                 "1 means only if two or more tabs are open\n"
1330                 "2 means always")),
1332         INIT_OPT_BOOL("ui.tabs", N_("Tab bar at top"),
1333                 "top", 0, 0,
1334                 N_("Whether display tab bar at top like other browsers do.")),
1336         INIT_OPT_BOOL("ui.tabs", N_("Wrap-around tabs cycling"),
1337                 "wraparound", 0, 1,
1338                 N_("When moving right from the last tab, jump to the first "
1339                 "one, and vice versa.")),
1341         INIT_OPT_BOOL("ui.tabs", N_("Confirm tab closing"),
1342                 "confirm_close", 0, 0,
1343                 N_("When closing a tab show confirmation dialog.")),
1347         INIT_OPT_LANGUAGE("ui", N_("Language"),
1348                 "language", 0,
1349                 N_("Language of user interface. 'System' means that the "
1350                 "language will be extracted from the environment "
1351                 "dynamically.")),
1353         INIT_OPT_BOOL("ui", N_("Display menu bar always"),
1354                 "show_menu_bar_always", 0, 0,
1355                 N_("Always show menu bar on the screen.")),
1357         INIT_OPT_BOOL("ui", N_("Display status bar"),
1358                 "show_status_bar", 0, 1,
1359                 N_("Show status bar on the screen.")),
1361         INIT_OPT_BOOL("ui", N_("Display title bar"),
1362                 "show_title_bar", 0, 1,
1363                 N_("Show title bar on the screen.")),
1365         INIT_OPT_BOOL("ui", N_("Display goto dialog in new tabs"),
1366                 "startup_goto_dialog", 0, 1,
1367                 N_("Pop up goto dialog in newly created tabs when there's "
1368                 "no homepage set. This means also showing goto dialog on "
1369                 "startup.")),
1371         INIT_OPT_BOOL("ui", N_("Show a message box when file is saved successfully"),
1372                 "success_msgbox", 0, 1,
1373                 N_("When you pressed a [ Save ] button in some manager, "
1374                 "this option will make sure that a box confirming success "
1375                 "of the operation will pop up.")),
1378         INIT_OPT_TREE("ui", N_("Sessions"),
1379                 "sessions", OPT_SORT,
1380                 N_("Sessions settings.")),
1382         INIT_OPT_BOOL("ui.sessions", N_("Keep session active"),
1383                 "keep_session_active", 0, 0,
1384                 N_("Keep the session active even if the last terminal "
1385                 "exits.")),
1387         INIT_OPT_BOOL("ui.sessions", N_("Auto save session"),
1388                 "auto_save", 0, 0,
1389                 N_("Automatically save the session when quitting.\n"
1390                 "\n"
1391                 "This feature requires bookmark support.")),
1393         INIT_OPT_BOOL("ui.sessions", N_("Auto restore session"),
1394                 "auto_restore", 0, 0,
1395                 N_("Automatically restore the session at start.\n"
1396                 "\n"
1397                 "This feature requires bookmark support.")),
1399         INIT_OPT_STRING("ui.sessions", N_("Auto save and restore session folder name"),
1400                 "auto_save_foldername", 0, "Auto saved session",
1401                 N_("Name of the bookmarks folder used for auto saving and "
1402                 "restoring session. The name has to be unique. Any folders "
1403                 "with the same name will be deleted.\n"
1404                 "\n"
1405                 "This only makes sense with bookmark support.")),
1407         INIT_OPT_STRING("ui.sessions", N_("Homepage URI"),
1408                 "homepage", 0, WWW_HOME_URL,
1409                 N_("The URI to load either at startup time when no URI was "
1410                 "given on the command line or when requested by the "
1411                 "goto-url-home action. Set to \"\" if the environment "
1412                 "variable WWW_HOME should be used as homepage URI instead.")),
1414 #ifdef HAVE_STRFTIME
1415         INIT_OPT_STRING("ui", N_("Date format"),
1416                 "date_format", 0, "%b %e %H:%M",
1417                 N_("Date format to use in dialogs. See strftime(3).")),
1418 #endif
1420         INIT_OPT_BOOL("ui", N_("Set window title"),
1421                 "window_title", 0, 1,
1422                 N_("Set the window title when running in a windowing "
1423                 "environment in an xterm-like terminal. This way the "
1424                 "document's title is shown on the window titlebar.")),
1428         /* Compatibility alias: added by pasky at 2004-07-22, 0.9.CVS. */
1429         INIT_OPT_ALIAS("", "secure_file_saving", 0, "infofiles.secure_save"),
1431         NULL_OPTION_INFO,
1434 /* vim: set filetype=c : */