qutebrowser/qutebrowser/config/configdata.py

1001 lines
36 KiB
Python
Raw Normal View History

2014-06-19 09:04:37 +02:00
# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
2014-02-27 18:46:30 +01:00
# Copyright 2014 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
#
# This file is part of qutebrowser.
#
# qutebrowser is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# qutebrowser is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
2014-04-17 17:44:27 +02:00
"""Configuration data for config.py.
Module attributes:
FIRST_COMMENT: The initial comment header to place in the config.
SECTION_DESC: A dictionary with descriptions for sections.
DATA: The config defaults, an OrderedDict of sections.
"""
2014-02-27 18:46:30 +01:00
2014-05-01 15:27:32 +02:00
import re
2014-02-27 18:46:30 +01:00
from collections import OrderedDict
2014-06-03 14:57:57 +02:00
from qutebrowser.config.value import SettingValue
import qutebrowser.config.conftypes as types
import qutebrowser.config.sections as sect
2014-06-23 07:45:04 +02:00
from qutebrowser.utils.qt import MAXVALS
2014-05-04 01:06:52 +02:00
FIRST_COMMENT = r"""
2014-02-27 21:05:51 +01:00
# vim: ft=dosini
2014-02-27 21:23:06 +01:00
2014-02-27 21:05:51 +01:00
# Configfile for qutebrowser.
#
# This configfile is parsed by python's configparser in extended
# interpolation mode. The format is very INI-like, so there are
# categories like [general] with "key = value"-pairs.
#
# Note that you shouldn't add your own comments, as this file is
# regenerated every time the config is saved.
#
# Interpolation looks like ${value} or ${section:value} and will be
# replaced by the respective value.
#
# This is the default config, so if you want to remove anything from
# here (as opposed to change/add), for example a keybinding, set it to
# an empty value.
2014-05-01 20:51:07 +02:00
#
2014-05-02 13:30:51 +02:00
# You will need to escape the following values:
2014-05-01 20:51:07 +02:00
# - # at the start of the line (at the first position of the key) (\#)
2014-05-02 13:30:51 +02:00
# - $ in a value ($$)
2014-05-11 21:55:41 +02:00
# - = in a value as <eq>
2014-02-27 21:05:51 +01:00
"""
2014-02-27 18:46:30 +01:00
SECTION_DESC = {
'general': "General/misc. options.",
2014-05-17 23:45:31 +02:00
'ui': "General options related to the user interface.",
2014-04-27 21:21:14 +02:00
'input': "Options related to input modes.",
'network': "Settings related to the network.",
'completion': "Options related to completion and command history.",
2014-04-22 08:42:58 +02:00
'tabbar': "Configuration of the tab bar.",
2014-06-03 20:28:51 +02:00
'storage': "Settings related to cache and storage.",
'permissions': "Loaded plugins/scripts and allowed actions.",
2014-04-22 08:42:58 +02:00
'hints': "Hinting settings.",
2014-02-27 18:46:30 +01:00
'searchengines': (
2014-04-22 08:42:58 +02:00
"Definitions of search engines which can be used via the address "
"bar.\n"
2014-04-27 21:21:14 +02:00
"The searchengine named DEFAULT is used when general.auto-search "
"is true and something else than a URL was entered to be opened. "
2014-04-22 08:42:58 +02:00
"Other search engines can be used via the bang-syntax, e.g. "
2014-05-12 15:58:09 +02:00
'"qutebrowser !google". The string "{}" will be replaced by the '
'search term, use "{{" and "}}" for literal {/} signs.'),
2014-02-27 18:46:30 +01:00
'keybind': (
2014-04-22 08:42:58 +02:00
"Bindings from a key(chain) to a command.\n"
"For special keys (can't be part of a keychain), enclose them in "
2014-04-24 17:48:38 +02:00
"<...>. For modifiers, you can use either - or + as delimiters, and "
2014-04-22 08:42:58 +02:00
"these names:\n"
" Control: Control, Ctrl\n"
" Meta: Meta, Windows, Mod4\n"
" Alt: Alt, Mod1\n"
" Shift: Shift\n"
2014-04-24 17:48:38 +02:00
"For simple keys (no <>-signs), a capital letter means the key is "
"pressed with Shift. For special keys (with <>-signs), you need "
2014-05-12 15:58:09 +02:00
'to explicitely add "Shift-" to match a key pressed with shift. '
'You can bind multiple commands by separating them with ";;".'),
2014-04-24 21:12:55 +02:00
'keybind.insert': (
"Keybindings for insert mode.\n"
"Since normal keypresses are passed through, only special keys are "
"supported in this mode.\n"
2014-04-29 18:00:22 +02:00
"Useful hidden commands to map in this section:\n"
2014-05-16 23:01:40 +02:00
" open-editor: Open a texteditor with the focused field.\n"
" leave-mode: Leave the command mode."),
2014-04-24 23:47:02 +02:00
'keybind.hint': (
"Keybindings for hint mode.\n"
"Since normal keypresses are passed through, only special keys are "
"supported in this mode.\n"
2014-04-27 21:59:23 +02:00
"Useful hidden commands to map in this section:\n"
2014-05-16 23:01:40 +02:00
" follow-hint: Follow the currently selected hint.\n"
" leave-mode: Leave the command mode."),
2014-04-25 07:13:57 +02:00
'keybind.passthrough': (
"Keybindings for passthrough mode.\n"
2014-04-25 07:50:21 +02:00
"Since normal keypresses are passed through, only special keys are "
"supported in this mode.\n"
2014-05-16 23:01:40 +02:00
"An useful command to map here is the hidden command leave-mode."),
2014-04-25 07:50:21 +02:00
'keybind.command': (
"Keybindings for command mode.\n"
2014-04-25 07:13:57 +02:00
"Since normal keypresses are passed through, only special keys are "
"supported in this mode.\n"
"Useful hidden commands to map in this section:\n"
2014-05-16 23:01:40 +02:00
" command-history-prev: Switch to previous command in history.\n"
" command-history-next: Switch to next command in history.\n"
" completion-item-prev: Select previous item in completion.\n"
" completion-item-next: Select next item in completion.\n"
" command-accept: Execute the command currently in the commandline.\n"
" leave-mode: Leave the command mode."),
2014-05-19 17:01:05 +02:00
'keybind.prompt': (
"Keybindings for prompts in the status line.\n"
2014-05-20 12:05:14 +02:00
"You can bind normal keys in this mode, but they will be only active "
"when a yes/no-prompt is asked. For other prompt modes, you can only "
"bind special keys.\n"
2014-05-19 17:01:05 +02:00
"Useful hidden commands to map in this section:\n"
2014-05-20 12:05:14 +02:00
" prompt-accept: Confirm the entered value.\n"
" prompt-yes: Answer yes to a yes/no question.\n"
" prompt-no: Answer no to a yes/no question.\n"
2014-05-19 17:01:05 +02:00
" leave-mode: Leave the prompt mode."),
2014-02-27 18:46:30 +01:00
'aliases': (
2014-04-22 08:42:58 +02:00
"Aliases for commands.\n"
"By default, no aliases are defined. Example which adds a new command "
":qtb to open qutebrowsers website:\n"
" qtb = open http://www.qutebrowser.org/"),
2014-02-27 18:46:30 +01:00
'colors': (
2014-04-22 08:42:58 +02:00
"Colors used in the UI.\n"
"A value can be in one of the following format:\n"
" - #RGB/#RRGGBB/#RRRGGGBBB/#RRRRGGGGBBBB\n"
" - A SVG color name as specified in [1].\n"
" - transparent (no color)\n"
" - rgb(r, g, b) / rgba(r, g, b, a) (values 0-255 or "
"percentages)\n"
" - hsv(h, s, v) / hsva(h, s, v, a) (values 0-255, hue 0-359)\n"
2014-05-12 15:58:09 +02:00
' - A gradient as explained at [2] under "Gradient"\n'
2014-04-22 08:42:58 +02:00
" [1] http://www.w3.org/TR/SVG/types.html#ColorKeywords\n"
" [2] http://qt-project.org/doc/qt-4.8/stylesheet-reference.html"
"#list-of-property-types\n"
2014-05-12 15:58:09 +02:00
'The "hints.*" values are a special case as they\'re real CSS '
2014-04-22 08:42:58 +02:00
"colors, not Qt-CSS colors. There, for a gradient, you need to use "
"-webkit-gradient, see [3].\n"
" [3] https://www.webkit.org/blog/175/introducing-css-gradients/"),
2014-02-27 18:46:30 +01:00
'fonts': (
2014-04-22 08:42:58 +02:00
"Fonts used for the UI, with optional style/weight/size.\n"
" Style: normal/italic/oblique\n"
" Weight: normal, bold, 100..900\n"
" Size: Number + px/pt\n"
"Note: The font for hints is a true CSS font, not a Qt-CSS one, "
2014-05-12 15:58:09 +02:00
'because of that, a general "Monospace" family is enough and we '
'don\'t use "${_monospace}" there.'),
2014-02-27 18:46:30 +01:00
}
2014-04-17 17:44:27 +02:00
DATA = OrderedDict([
('general', sect.KeyValue(
2014-04-27 21:21:14 +02:00
('ignore-case',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Whether to do case-insensitive searching."),
2014-04-27 21:21:14 +02:00
('wrap-search',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Whether to wrap search to the top when arriving at the end."),
('startpage',
2014-04-25 16:53:23 +02:00
SettingValue(types.List(), 'http://www.duckduckgo.com'),
"The default page(s) to open at the start, separated by commas."),
2014-04-27 21:21:14 +02:00
('auto-search',
2014-04-25 16:53:23 +02:00
SettingValue(types.AutoSearch(), 'naive'),
"Whether to start a search when something else than a URL is "
"entered."),
2014-04-27 21:21:14 +02:00
('auto-save-config',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Whether to save the config automatically on quit."),
2014-04-27 21:21:14 +02:00
('background-tabs',
SettingValue(types.Bool(), 'false'),
"Whether to open new tabs (middleclick/ctrl+click) in background."),
2014-04-29 18:00:22 +02:00
2014-05-08 20:43:40 +02:00
('window-open-behaviour',
SettingValue(types.WindowOpenBehaviour(), 'new-tab'),
"What to do when the WebView requests a new window to be opened "
"(e.g. via javascript)."),
2014-05-08 20:43:40 +02:00
2014-04-29 18:00:22 +02:00
('editor',
SettingValue(types.ShellCommand(placeholder=True), 'gvim -f "{}"'),
2014-05-16 23:01:40 +02:00
"The editor (and arguments) to use for the open-editor binding. "
2014-04-29 18:00:22 +02:00
"Use {} for the filename. Gets split via shutils."),
2014-06-03 20:28:51 +02:00
('private-browsing',
SettingValue(types.Bool(), 'false'),
"Private browsing prevents WebKit from recording visited pages in "
"the history and storing web page icons."),
('developer-extras',
SettingValue(types.Bool(), 'false'),
"Enables extra tools for Web developers (e.g. webinspector)."),
('print-element-backgrounds',
SettingValue(types.Bool(), 'true'),
"Specifies whether the background color and images are also drawn "
"when the page is printed."),
('xss-auditing',
SettingValue(types.Bool(), 'false'),
"Specifies whether load requests should be monitored for cross-site "
"scripting attempts. Suspicious scripts will be blocked and reported "
"in the inspector's JavaScript console. Enabling this feature might "
"have an impact on performance."),
('site-specific-quirks',
SettingValue(types.Bool(), 'true'),
"This setting enables WebKit's workaround for broken sites."),
('default-encoding',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Default encoding to use for websites."),
2014-05-17 23:45:31 +02:00
)),
('ui', sect.KeyValue(
('zoom-levels',
SettingValue(types.PercList(minval=0),
'25%,33%,50%,67%,75%,90%,100%,110%,125%,150%,175%,200%,'
'250%,300%,400%,500%'),
"The available zoom levels, separated by commas."),
('default-zoom',
SettingValue(types.ZoomPerc(), '100%'),
"The default zoom level."),
2014-05-16 14:20:37 +02:00
2014-05-16 15:33:36 +02:00
('message-timeout',
2014-05-16 17:21:43 +02:00
SettingValue(types.Int(), '2000'),
2014-05-16 15:33:36 +02:00
"Time (in ms) to show messages in the statusbar for."),
2014-05-26 12:16:03 +02:00
('confirm-quit',
SettingValue(types.ConfirmQuit(), 'never'),
"Whether to confirm quitting the application."),
('display-statusbar-messages',
SettingValue(types.Bool(), 'false'),
"Whether to display javascript statusbar messages."),
2014-06-03 20:28:51 +02:00
('zoom-text-only',
SettingValue(types.Bool(), 'false'),
"Specifies whether the zoom factor on a frame applies only to the "
"text or to all content."),
('frame-flattening',
SettingValue(types.Bool(), 'false'),
"With this setting each subframe is expanded to its contents. This "
"will flatten all the frames to become one scrollable "
"page."),
('frame-flattening',
SettingValue(types.Bool(), 'false'),
"With this setting each subframe is expanded to its contents. This "
"will flatten all the frames to become one scrollable "
"page."),
('user-stylesheet',
SettingValue(types.WebSettingsFile(), ''),
"User stylesheet to set."),
('user-stylesheet',
SettingValue(types.WebSettingsFile(), ''),
"User stylesheet to set."),
('css-media-type',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Set the CSS media type."),
('css-media-type',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Set the CSS media type."),
#('accelerated-compositing',
# SettingValue(types.Bool(), 'true'),
# "This feature, when used in conjunction with QGraphicsWebView, "
# "accelerates animations of web content. CSS animations of the "
# "transform and opacity properties will be rendered by composing the "
# "cached content of the animated elements."),
#('tiled-backing-store',
# SettingValue(types.Bool(), 'false'),
# "This setting enables the tiled backing store feature for a "
# "QGraphicsWebView. With the tiled backing store enabled, the web "
# "page contents in and around the current visible area is "
# "speculatively cached to bitmap tiles. The tiles are automatically "
# "kept in sync with the web page as it changes. Enabling tiling can "
# "significantly speed up painting heavy operations like scrolling. "
# "Enabling the feature increases memory consuption."),
2014-04-27 21:21:14 +02:00
)),
('network', sect.KeyValue(
('do-not-track',
SettingValue(types.Bool(), 'true'),
"Value to send in the DNT header."),
('accept-language',
SettingValue(types.String(none_ok=True), 'en-US,en'),
"Value to send in the accept-language header."),
2014-05-02 06:54:46 +02:00
('user-agent',
SettingValue(types.String(none_ok=True), ''),
2014-05-02 06:54:46 +02:00
"User agent to send. Empty to send the default."),
2014-05-05 16:28:43 +02:00
2014-05-05 22:07:41 +02:00
('proxy',
SettingValue(types.Proxy(), 'system'),
"The proxy to use."),
2014-05-12 11:22:32 +02:00
('ssl-strict',
SettingValue(types.Bool(), 'true'),
"Whether to validate SSL handshakes."),
2014-06-03 20:28:51 +02:00
('dns-prefetch',
SettingValue(types.Bool(), 'true'),
2014-06-03 20:28:51 +02:00
"Specifies whether QtWebkit will try to pre-fetch DNS entries to "
"speed up browsing."),
)),
2014-04-27 21:21:14 +02:00
('completion', sect.KeyValue(
('show',
SettingValue(types.Bool(), 'true'),
"Whether to show the autocompletion window or not."),
('height',
SettingValue(types.PercOrInt(minperc=0, maxperc=100, minint=1),
'50%'),
"The height of the completion, in px or as percentage of the "
"window."),
('history-length',
2014-04-25 16:53:23 +02:00
SettingValue(types.Int(minval=-1), '100'),
"How many commands to save in the history. 0: no history / -1: "
"unlimited"),
('quick-complete',
SettingValue(types.Bool(), 'true'),
"Whether to move on to the next part when there's only one possible "
"completion left."),
('shrink',
SettingValue(types.Bool(), 'false'),
"Whether to shrink the completion to be smaller than the configured "
"size if there are no scrollbars."),
2014-04-27 21:21:14 +02:00
)),
2014-04-22 16:45:13 +02:00
2014-04-27 21:21:14 +02:00
('input', sect.KeyValue(
('timeout',
SettingValue(types.Int(minval=0, maxval=MAXVALS['int']), '500'),
2014-04-22 16:45:13 +02:00
"Timeout for ambiguous keybindings."),
2014-04-24 07:41:20 +02:00
2014-04-27 21:21:14 +02:00
('insert-mode-on-plugins',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
2014-04-24 07:41:20 +02:00
"Whether to switch to insert mode when clicking flash and other "
"plugins."),
2014-04-24 16:03:16 +02:00
('auto-leave-insert-mode',
SettingValue(types.Bool(), 'true'),
"Whether to leave insert mode if a non-editable element is clicked."),
2014-04-27 21:21:14 +02:00
('auto-insert-mode',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
2014-04-24 16:03:16 +02:00
"Whether to automatically enter insert mode if an editable element "
"is focused after page load."),
2014-04-27 21:21:14 +02:00
('forward-unbound-keys',
SettingValue(types.ForwardUnboundKeys(), 'auto'),
"Whether to forward unbound keys to the webview in normal mode."),
2014-06-03 20:28:51 +02:00
('spatial-navigation',
SettingValue(types.Bool(), 'false'),
"Enables or disables the Spatial Navigation feature, which consists "
"in the ability to navigate between focusable elements in a Web "
"page, such as hyperlinks and form controls, by using Left, Right, "
"Up and Down arrow keys."),
('links-included-in-focus-chain',
SettingValue(types.Bool(), 'true'),
"Specifies whether hyperlinks should be included in the keyboard "
"focus chain."),
)),
('tabbar', sect.KeyValue(
('movable',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Whether tabs should be movable."),
('close-on-right-click',
SettingValue(types.Bool(), 'false'),
"Whether tabs should close when right-clicked."),
2014-04-27 21:21:14 +02:00
('close-buttons',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
"Whether tabs should have close-buttons."),
2014-04-27 21:21:14 +02:00
('scroll-buttons',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Whether there should be scroll buttons if there are too many tabs."),
('position',
2014-04-25 16:53:23 +02:00
SettingValue(types.Position(), 'north'),
"The position of the tab bar."),
2014-04-27 21:21:14 +02:00
('select-on-remove',
2014-04-25 16:53:23 +02:00
SettingValue(types.SelectOnRemove(), 'previous'),
"Which tab to select when the focused tab is removed."),
2014-04-27 21:21:14 +02:00
('last-close',
2014-04-25 16:53:23 +02:00
SettingValue(types.LastClose(), 'ignore'),
"Behaviour when the last tab is closed."),
('wrap',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Whether to wrap when changing tabs."),
2014-05-12 16:04:43 +02:00
('min-tab-width',
SettingValue(types.Int(minval=1), '100'),
2014-05-12 16:04:43 +02:00
"The minimum width of a tab."),
('max-tab-width',
SettingValue(types.Int(minval=1), '200'),
2014-05-12 16:04:43 +02:00
"The maximum width of a tab."),
2014-05-12 23:03:55 +02:00
('show-favicons',
SettingValue(types.Bool(), 'true'),
"Whether to show favicons in the tab bar."),
2014-06-10 14:30:31 +02:00
('expand',
SettingValue(types.Bool(), 'false'),
"Whether to expand tabs to use the full window width."),
)),
2014-06-03 20:28:51 +02:00
('storage', sect.KeyValue(
2014-06-11 21:55:23 +02:00
('download-directory',
SettingValue(types.Directory(none_ok=True), ''),
2014-06-11 21:55:23 +02:00
"The directory to save downloads to. An empty value selects a "
"sensible os-specific default."),
2014-06-03 20:28:51 +02:00
('maximum-pages-in-cache',
SettingValue(types.Int(none_ok=True, minval=0, maxval=MAXVALS['int']),
2014-06-03 20:28:51 +02:00
''),
"Sets the maximum number of pages to hold in the memory page cache."),
('object-cache-capacities',
SettingValue(types.WebKitBytesList(length=3, maxsize=MAXVALS['int']),
''),
"Specifies the capacities for the memory cache for dead objects "
"such as stylesheets or scripts. Three values are expected: "
"cacheMinDeadCapacity, cacheMaxDead, totalCapacity."),
2014-06-03 20:28:51 +02:00
('offline-storage-default-quota',
SettingValue(types.WebKitBytes(maxsize=MAXVALS['int64']), ''),
"Default quota for new offline storage databases."),
('offline-web-application-cache-quota',
SettingValue(types.WebKitBytes(maxsize=MAXVALS['int64']), ''),
"Quota for the offline web application cache."),
('offline-storage-database',
SettingValue(types.Bool(), 'true'),
2014-06-03 20:28:51 +02:00
"Specifies whether support for the HTML 5 offline storage feature is "
"enabled or not."),
('offline-web-application-storage',
SettingValue(types.Bool(), 'true'),
2014-06-03 20:28:51 +02:00
"Specifies whether support for the HTML 5 web application cache "
"feature is enabled or not."),
2014-06-03 20:28:51 +02:00
('local-storage',
SettingValue(types.Bool(), 'true'),
2014-06-03 20:28:51 +02:00
"Specifies whether support for the HTML 5 local storage feature is "
"enabled or not."),
)),
('permissions', sect.KeyValue(
('allow-images',
SettingValue(types.Bool(), 'true'),
"Specifies whether images are automatically loaded in web pages."),
('allow-javascript',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Enables or disables the running of JavaScript programs."),
2014-06-03 20:28:51 +02:00
#('allow-java',
2014-04-25 16:53:23 +02:00
# SettingValue(types.Bool(), 'true'),
# "Enables or disables Java applets. Currently Java applets are "
# "not supported"),
2014-06-03 20:28:51 +02:00
('allow-plugins',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
"Enables or disables plugins in Web pages."),
2014-06-03 20:28:51 +02:00
('allow-javascript',
SettingValue(types.Bool(), 'true'),
"Enables or disables the running of JavaScript programs."),
#('allow-java',
# SettingValue(types.Bool(), 'true'),
# "Enables or disables Java applets. Currently Java applets are "
# "not supported"),
('allow-plugins',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
2014-06-03 20:28:51 +02:00
"Enables or disables plugins in Web pages."),
2014-04-27 21:21:14 +02:00
('javascript-can-open-windows',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
"Specifies whether JavaScript programs can open new windows."),
2014-04-27 21:21:14 +02:00
('javascript-can-close-windows',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
"Specifies whether JavaScript programs can close windows."),
2014-04-27 21:21:14 +02:00
('javascript-can-access-clipboard',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
"Specifies whether JavaScript programs can read or write to the "
"clipboard."),
2014-04-27 21:21:14 +02:00
('local-content-can-access-remote-urls',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'false'),
"Specifies whether locally loaded documents are allowed to access "
"remote urls."),
2014-04-27 21:21:14 +02:00
('local-content-can-access-file-urls',
2014-04-25 16:53:23 +02:00
SettingValue(types.Bool(), 'true'),
"Specifies whether locally loaded documents are allowed to access "
"other local urls."),
2014-06-03 20:28:51 +02:00
('cookies-accept',
SettingValue(types.AcceptCookies(), 'default'),
"Whether to accept cookies."),
2014-06-03 20:28:51 +02:00
('cookies-store',
2014-06-03 20:30:50 +02:00
SettingValue(types.Bool(), 'true'),
2014-06-03 20:28:51 +02:00
"Whether to store cookies."),
2014-05-04 01:06:52 +02:00
)),
2014-04-20 19:24:22 +02:00
('hints', sect.KeyValue(
('border',
2014-04-25 16:53:23 +02:00
SettingValue(types.String(), '1px solid #E3BE23'),
2014-04-20 19:24:22 +02:00
"CSS border value for hints."),
2014-04-21 21:05:39 +02:00
2014-04-20 19:24:22 +02:00
('opacity',
2014-04-25 16:53:23 +02:00
SettingValue(types.Float(minval=0.0, maxval=1.0), '0.7'),
2014-04-20 19:24:22 +02:00
"Opacity for hints."),
2014-04-21 21:05:39 +02:00
2014-05-02 17:53:16 +02:00
('mode',
SettingValue(types.HintMode(), 'letter'),
"Mode to use for hints."),
2014-05-02 17:53:16 +02:00
2014-04-21 21:05:39 +02:00
('chars',
2014-04-25 16:53:23 +02:00
SettingValue(types.String(minlen=2), 'asdfghjkl'),
2014-04-20 23:58:14 +02:00
"Chars used for hint strings."),
2014-04-27 21:59:23 +02:00
('auto-follow',
SettingValue(types.Bool(), 'true'),
"Whether to auto-follow a hint if there's only one left."),
2014-05-01 15:27:32 +02:00
('next-regexes',
SettingValue(types.RegexList(flags=re.IGNORECASE),
r'\bnext\b,\bmore\b,\bnewer\b,^>$$,^(>>|»|→|≫)$$,'
r'^(>|»|→|≫),(>|»|→|≫)$$'),
2014-05-01 15:27:32 +02:00
"A comma-separated list of regexes to use for 'next' links."),
('prev-regexes',
SettingValue(types.RegexList(flags=re.IGNORECASE),
r'\bprev(ious)\b,\bback\b,\bolder\b,^<$$,^(<<|«|←|≪)$$,'
r'^(<|«|←|≪),(<|«|←|≪)$$'),
2014-05-01 15:27:32 +02:00
"A comma-separated list of regexes to use for 'prev' links."),
2014-04-20 19:24:22 +02:00
)),
('searchengines', sect.ValueList(
types.SearchEngineName(), types.SearchEngineUrl(),
('DEFAULT', '${duckduckgo}'),
('duckduckgo', 'https://duckduckgo.com/?q={}'),
('ddg', '${duckduckgo}'),
('google', 'https://encrypted.google.com/search?q={}'),
('g', '${google}'),
('wikipedia', 'http://en.wikipedia.org/w/index.php?'
'title=Special:Search&search={}'),
('wiki', '${wikipedia}'),
)),
('keybind', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
('o', 'open'),
2014-05-16 23:01:40 +02:00
('go', 'open-cur'),
('O', 'open-tab'),
('gO', 'open-tab-cur'),
('xo', 'open-tab-bg'),
('xO', 'open-tab-bg-cur'),
('ga', 'open-tab about:blank'),
('d', 'tab-close'),
('co', 'tab-only'),
('T', 'tab-focus'),
('gm', 'tab-move'),
('gl', 'tab-move -'),
('gr', 'tab-move +'),
('J', 'tab-next'),
('K', 'tab-prev'),
('r', 'reload'),
('H', 'back'),
('L', 'forward'),
2014-04-21 16:59:03 +02:00
('f', 'hint'),
2014-04-21 19:29:11 +02:00
('F', 'hint all tab'),
2014-05-16 23:01:40 +02:00
(';b', 'hint all tab-bg'),
2014-04-21 19:29:11 +02:00
(';i', 'hint images'),
(';I', 'hint images tab'),
2014-05-16 23:01:40 +02:00
('.i', 'hint images tab-bg'),
2014-04-21 19:29:11 +02:00
(';e', 'hint editable'),
(';o', 'hint links cmd'),
2014-05-16 23:01:40 +02:00
(';O', 'hint links cmd-tab'),
('.o', 'hint links cmd-tab-bg'),
(';y', 'hint links yank'),
2014-05-16 23:01:40 +02:00
(';Y', 'hint links yank-primary'),
(';r', 'hint links rapid'),
2014-06-19 17:58:46 +02:00
(';d', 'hint links download'),
('h', 'scroll -50 0'),
('j', 'scroll 0 50'),
('k', 'scroll 0 -50'),
('l', 'scroll 50 0'),
('u', 'undo'),
2014-05-16 23:01:40 +02:00
('gg', 'scroll-perc-y 0'),
('G', 'scroll-perc-y'),
('n', 'search-next'),
2014-05-19 05:05:54 +02:00
('N', 'search-prev'),
2014-05-16 23:01:40 +02:00
('i', 'enter-mode insert'),
('yy', 'yank'),
('yY', 'yank sel'),
2014-05-16 23:01:40 +02:00
('yt', 'yank-title'),
('yT', 'yank-title sel'),
('pp', 'paste'),
('pP', 'paste sel'),
2014-05-16 23:01:40 +02:00
('Pp', 'paste-tab'),
('PP', 'paste-tab sel'),
2014-05-22 16:44:47 +02:00
('m', 'quickmark-save'),
('b', 'quickmark-load'),
('B', 'quickmark-load-tab'),
(';b', 'quickmark-load-tab-bg'),
2014-05-09 13:12:24 +02:00
('sf', 'save'),
('ss', 'set'),
2014-05-16 23:01:40 +02:00
('sl', 'set-temp'),
('sk', 'set keybind'),
2014-05-16 23:01:40 +02:00
('-', 'zoom-out'),
('+', 'zoom-in'),
2014-05-11 21:55:41 +02:00
('=', 'zoom'),
2014-05-16 23:01:40 +02:00
('[[', 'prev-page'),
(']]', 'next-page'),
('{{', 'prev-page-tab'),
('}}', 'next-page-tab'),
2014-05-26 12:20:42 +02:00
('wi', 'inspector'),
2014-06-19 17:58:46 +02:00
('gd', 'download-page'),
('ad', 'cancel-download'),
2014-05-16 23:01:40 +02:00
('<Ctrl-Tab>', 'tab-focus-last'),
('<Ctrl-V>', 'enter-mode passthrough'),
2014-04-24 17:48:38 +02:00
('<Ctrl-Q>', 'quit'),
('<Ctrl-Shift-T>', 'undo'),
2014-05-16 23:01:40 +02:00
('<Ctrl-W>', 'tab-close'),
('<Ctrl-T>', 'open-tab about:blank'),
('<Ctrl-F>', 'scroll-page 0 1'),
('<Ctrl-B>', 'scroll-page 0 -1'),
('<Ctrl-D>', 'scroll-page 0 0.5'),
('<Ctrl-U>', 'scroll-page 0 -0.5'),
('<Alt-1>', 'tab-focus 1'),
('<Alt-2>', 'tab-focus 2'),
('<Alt-3>', 'tab-focus 3'),
('<Alt-4>', 'tab-focus 4'),
('<Alt-5>', 'tab-focus 5'),
('<Alt-6>', 'tab-focus 6'),
('<Alt-7>', 'tab-focus 7'),
('<Alt-8>', 'tab-focus 8'),
('<Alt-9>', 'tab-focus 9'),
2014-04-24 17:48:38 +02:00
('<Backspace>', 'back'),
2014-05-09 13:09:37 +02:00
('<Ctrl-h>', 'home'),
2014-05-09 13:11:47 +02:00
('<Ctrl-s>', 'stop'),
2014-05-09 13:16:16 +02:00
('<Ctrl-Alt-p>', 'print'),
)),
2014-04-24 21:12:55 +02:00
('keybind.insert', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
2014-05-16 23:01:40 +02:00
('<Escape>', 'leave-mode'),
('<Ctrl-N>', 'leave-mode'),
('<Ctrl-E>', 'open-editor'),
('<Ctrl-[>', '${<Escape>}'),
2014-04-24 21:12:55 +02:00
)),
2014-04-24 23:47:02 +02:00
('keybind.hint', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
2014-05-16 23:01:40 +02:00
('<Return>', 'follow-hint'),
('<Escape>', 'leave-mode'),
('<Ctrl-N>', 'leave-mode'),
('<Ctrl-[>', '${<Escape>}'),
2014-04-24 23:47:02 +02:00
)),
2014-04-25 07:13:57 +02:00
('keybind.passthrough', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
2014-05-16 23:01:40 +02:00
('<Escape>', 'leave-mode'),
('<Ctrl-[>', '${<Escape>}'),
2014-04-25 07:13:57 +02:00
)),
2014-05-22 10:49:19 +02:00
# FIXME we should probably have a common section for input modes with a
# text field.
2014-04-25 07:50:21 +02:00
('keybind.command', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
2014-05-16 23:01:40 +02:00
('<Escape>', 'leave-mode'),
2014-05-22 10:54:18 +02:00
('<Ctrl-P>', 'command-history-prev'),
('<Ctrl-N>', 'command-history-next'),
2014-05-16 23:01:40 +02:00
('<Shift-Tab>', 'completion-item-prev'),
2014-05-22 10:54:18 +02:00
('<Up>', 'completion-item-prev'),
2014-05-16 23:01:40 +02:00
('<Tab>', 'completion-item-next'),
2014-05-22 10:54:18 +02:00
('<Down>', 'completion-item-next'),
2014-05-16 23:01:40 +02:00
('<Return>', 'command-accept'),
2014-05-22 10:49:19 +02:00
('<Ctrl-B>', 'rl-backward-char'),
('<Ctrl-F>', 'rl-forward-char'),
('<Alt-B>', 'rl-backward-word'),
('<Alt-F>', 'rl-forward-word'),
('<Ctrl-A>', 'rl-beginning-of-line'),
('<Ctrl-E>', 'rl-end-of-line'),
('<Ctrl-U>', 'rl-unix-line-discard'),
('<Ctrl-K>', 'rl-kill-line'),
('<Alt-D>', 'rl-kill-word'),
('<Ctrl-W>', 'rl-unix-word-rubout'),
('<Ctrl-Y>', 'rl-yank'),
('<Ctrl-?>', 'rl-delete-char'),
('<Ctrl-H>', 'rl-backward-delete-char'),
('<Ctrl-J>', '${<Return>}'),
('<Ctrl-[>', '${<Escape>}'),
2014-04-25 07:50:21 +02:00
)),
2014-05-19 17:01:05 +02:00
('keybind.prompt', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
2014-05-19 17:57:58 +02:00
('<Escape>', 'leave-mode'),
2014-05-19 17:01:05 +02:00
('<Return>', 'prompt-accept'),
2014-05-20 12:05:14 +02:00
('y', 'prompt-yes'),
('n', 'prompt-no'),
2014-05-22 10:49:19 +02:00
('<Ctrl-B>', 'rl-backward-char'),
('<Ctrl-F>', 'rl-forward-char'),
('<Alt-B>', 'rl-backward-word'),
('<Alt-F>', 'rl-forward-word'),
('<Ctrl-A>', 'rl-beginning-of-line'),
('<Ctrl-E>', 'rl-end-of-line'),
('<Ctrl-U>', 'rl-unix-line-discard'),
('<Ctrl-K>', 'rl-kill-line'),
('<Alt-D>', 'rl-kill-word'),
('<Ctrl-W>', 'rl-unix-word-rubout'),
('<Ctrl-Y>', 'rl-yank'),
('<Ctrl-?>', 'rl-delete-char'),
('<Ctrl-H>', 'rl-backward-delete-char'),
('<Ctrl-J>', '${<Return>}'),
('<Ctrl-[>', '${<Escape>}'),
2014-05-19 17:01:05 +02:00
)),
('aliases', sect.ValueList(
2014-05-02 15:21:48 +02:00
types.String(forbidden=' '), types.Command(),
)),
('colors', sect.KeyValue(
('completion.fg',
2014-06-21 16:42:58 +02:00
SettingValue(types.QtColor(), 'white'),
2014-05-09 19:47:20 +02:00
"Text color of the completion widget."),
('completion.bg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), '#333333'),
"Text color of the completion widget."),
('completion.item.bg',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), '${completion.bg}'),
"Background color of completion widget items."),
2014-05-09 19:47:20 +02:00
('completion.category.fg',
2014-06-21 16:42:58 +02:00
SettingValue(types.QtColor(), 'white'),
2014-05-09 19:47:20 +02:00
"Foreground color of completion widget category headers."),
('completion.category.bg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'qlineargradient(x1:0, y1:0, x2:0, y2:1, '
2014-05-09 19:47:20 +02:00
'stop:0 #888888, stop:1 #505050)'),
"Background color of the completion widget category headers."),
('completion.category.border.top',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), 'black'),
"Top border color of the completion widget category headers."),
('completion.category.border.bottom',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), '${completion.category.border.top}'),
"Bottom border color of the completion widget category headers."),
('completion.item.selected.fg',
2014-06-21 16:42:58 +02:00
SettingValue(types.QtColor(), 'black'),
"Foreground color of the selected completion item."),
('completion.item.selected.bg',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), '#e8c000'),
"Background color of the selected completion item."),
('completion.item.selected.border.top',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), '#bbbb00'),
"Top border color of the completion widget category headers."),
('completion.item.selected.border.bottom',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), '${completion.item.selected.border.top}'),
"Bottom border color of the selected completion item."),
('completion.match.fg',
2014-05-09 19:47:20 +02:00
SettingValue(types.Color(), '#ff4444'),
"Foreground color of the matched text in the completion."),
('statusbar.bg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'black'),
"Foreground color of the statusbar."),
('statusbar.fg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'white'),
"Foreground color of the statusbar."),
('statusbar.bg.error',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'red'),
"Background color of the statusbar if there was an error."),
2014-05-26 16:59:11 +02:00
('statusbar.bg.prompt',
SettingValue(types.Color(), 'darkblue'),
"Background color of the statusbar if there is a prompt."),
2014-06-23 16:43:59 +02:00
('statusbar.bg.insert',
SettingValue(types.Color(), 'darkgreen'),
"Background color of the statusbar in insert mode."),
('statusbar.progress.bg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'white'),
"Background color of the progress bar."),
('statusbar.url.fg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), '${statusbar.fg}'),
"Default foreground color of the URL in the statusbar."),
('statusbar.url.fg.success',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'lime'),
"Foreground color of the URL in the statusbar on successful "
"load."),
('statusbar.url.fg.error',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'orange'),
"Foreground color of the URL in the statusbar on error."),
('statusbar.url.fg.warn',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'yellow'),
"Foreground color of the URL in the statusbar when there's a "
"warning."),
('statusbar.url.fg.hover',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'aqua'),
"Foreground color of the URL in the statusbar for hovered "
"links."),
('tab.fg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'white'),
2014-04-22 20:49:16 +02:00
"Foreground color of tabs."),
('tab.bg',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'grey'),
2014-04-22 20:49:16 +02:00
"Background color of unselected tabs."),
('tab.bg.selected',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), 'black'),
2014-04-22 20:49:16 +02:00
"Background color of selected tabs."),
('tab.bg.bar',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), '#555555'),
2014-04-22 20:49:16 +02:00
"Background color of the tabbar."),
('tab.seperator',
2014-04-25 16:53:23 +02:00
SettingValue(types.Color(), '#555555'),
"Color for the tab seperator."),
2014-04-20 19:24:22 +02:00
('hints.fg',
2014-04-25 16:53:23 +02:00
SettingValue(types.CssColor(), 'black'),
2014-04-20 19:24:22 +02:00
"Font color for hints."),
2014-04-21 15:45:29 +02:00
('hints.fg.match',
2014-04-25 16:53:23 +02:00
SettingValue(types.CssColor(), 'green'),
2014-04-21 15:45:29 +02:00
"Font color for the matched part of hints."),
2014-04-20 19:24:22 +02:00
('hints.bg',
2014-04-25 16:53:23 +02:00
SettingValue(types.CssColor(), '-webkit-gradient(linear, left top, '
'left bottom, color-stop(0%,#FFF785), '
'color-stop(100%,#FFC542))'),
2014-04-20 19:24:22 +02:00
"Background color for hints."),
2014-06-12 21:43:30 +02:00
2014-06-13 07:41:51 +02:00
('downloads.fg',
2014-06-12 21:43:30 +02:00
SettingValue(types.QtColor(), '#ffffff'),
"Foreground color for downloads."),
2014-06-13 07:41:51 +02:00
('downloads.bg.bar',
2014-06-13 07:42:53 +02:00
SettingValue(types.Color(), 'black'),
2014-06-13 07:39:47 +02:00
"Background color for the download bar."),
2014-06-13 07:41:51 +02:00
('downloads.bg.start',
2014-06-12 21:43:30 +02:00
SettingValue(types.QtColor(), '#0000aa'),
"Color gradient start for downloads."),
2014-06-13 07:41:51 +02:00
('downloads.bg.stop',
2014-06-12 21:43:30 +02:00
SettingValue(types.QtColor(), '#00aa00'),
"Color gradient end for downloads."),
2014-06-13 07:41:51 +02:00
('downloads.bg.system',
2014-06-12 21:43:30 +02:00
SettingValue(types.ColorSystem(), 'rgb'),
"Color gradient interpolation system for downloads."),
)),
('fonts', sect.KeyValue(
('_monospace',
SettingValue(types.Font(), 'Monospace, "DejaVu Sans Mono", Consolas, '
'Monaco, "Bitstream Vera Sans Mono", "Andale Mono", '
'"Liberation Mono", "Courier New", Courier, monospace, '
'Fixed, Terminal'),
"Default monospace fonts."),
('completion',
2014-04-25 16:53:23 +02:00
SettingValue(types.Font(), '8pt ${_monospace}'),
"Font used in the completion widget."),
('tabbar',
2014-04-25 16:53:23 +02:00
SettingValue(types.Font(), '8pt ${_monospace}'),
"Font used in the tabbar."),
('statusbar',
2014-04-25 16:53:23 +02:00
SettingValue(types.Font(), '8pt ${_monospace}'),
"Font used in the statusbar."),
2014-06-13 07:41:51 +02:00
('downloads',
2014-06-13 07:39:47 +02:00
SettingValue(types.Font(), '8pt ${_monospace}'),
"Font used for the downloadbar."),
2014-04-20 19:24:22 +02:00
('hints',
2014-04-25 16:53:23 +02:00
SettingValue(types.Font(), 'bold 12px Monospace'),
2014-04-20 19:24:22 +02:00
"Font used for the hints."),
2014-06-03 20:28:51 +02:00
('web-family-standard',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Font family for standard fonts."),
('web-family-fixed',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Font family for fixed fonts."),
('web-family-serif',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Font family for serif fonts."),
('web-family-sans-serif',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Font family for sans-serif fonts."),
('web-family-cursive',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Font family for cursive fonts."),
('web-family-fantasy',
SettingValue(types.String(none_ok=True), ''),
2014-06-03 20:28:51 +02:00
"Font family for fantasy fonts."),
('web-size-minimum',
SettingValue(types.Int(none_ok=True, minval=1, maxval=MAXVALS['int']),
2014-06-03 20:28:51 +02:00
''),
"The hard minimum font size."),
('web-size-minimum-logical',
SettingValue(types.Int(none_ok=True, minval=1, maxval=MAXVALS['int']),
2014-06-03 20:28:51 +02:00
''),
"The minimum logical font size that is applied when zooming out."),
('web-size-default',
SettingValue(types.Int(none_ok=True, minval=1, maxval=MAXVALS['int']),
2014-06-03 20:28:51 +02:00
''),
"The default font size for regular text."),
('web-size-default-fixed',
SettingValue(types.Int(none_ok=True, minval=1, maxval=MAXVALS['int']),
2014-06-03 20:28:51 +02:00
''),
"The default font size for fixed-pitch text."),
)),
])