diff options
Diffstat (limited to 'qutebrowser/config.py')
-rw-r--r-- | qutebrowser/config.py | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/qutebrowser/config.py b/qutebrowser/config.py new file mode 100644 index 0000000..e75f46c --- /dev/null +++ b/qutebrowser/config.py @@ -0,0 +1,275 @@ +# Autogenerated config.py +# +# NOTE: config.py is intended for advanced users who are comfortable +# with manually migrating the config file on qutebrowser upgrades. If +# you prefer, you can also configure qutebrowser using the +# :set/:bind/:config-* commands without having to write a config.py +# file. +# +# Documentation: +# qute://help/configuring.html +# qute://help/settings.html + +import sys, os + +try: + home = os.environ['XDG_CONFIG_HOME'] +except KeyError: + home = os.environ['HOME'] + '/.config' + +sys.path.append(os.path.join(sys.path[0], 'jmatrix')) +config.source(home + "/qutebrowser/jmatrix/jmatrix/integrations/qutebrowser.py") + +# Change the argument to True to still load settings configured via autoconfig.yml +config.load_autoconfig(True) + +# Backend to use to display websites. qutebrowser supports two different +# web rendering engines / backends, QtWebEngine and QtWebKit (not +# recommended). QtWebEngine is Qt's official successor to QtWebKit, and +# both the default/recommended backend. It's based on a stripped-down +# Chromium and regularly updated with security fixes and new features by +# the Qt project: https://wiki.qt.io/QtWebEngine QtWebKit was +# qutebrowser's original backend when the project was started. However, +# support for QtWebKit was discontinued by the Qt project with Qt 5.6 in +# 2016. The development of QtWebKit was picked up in an official fork: +# https://github.com/qtwebkit/qtwebkit - however, the project seems to +# have stalled again. The latest release (5.212.0 Alpha 4) from March +# 2020 is based on a WebKit version from 2016, with many known security +# vulnerabilities. Additionally, there is no process isolation and +# sandboxing. Due to all those issues, while support for QtWebKit is +# still available in qutebrowser for now, using it is strongly +# discouraged. +# Type: String +# Valid values: +# - webengine: Use QtWebEngine (based on Chromium - recommended). +# - webkit: Use QtWebKit (based on WebKit, similar to Safari - many known security issues!). +c.backend = 'webengine' + +# Always restore open sites when qutebrowser is reopened. Without this +# option set, `:wq` (`:quit --save`) needs to be used to save open tabs +# (and restore them), while quitting qutebrowser in any other way will +# not save/restore the session. By default, this will save to the +# session which was last loaded. This behavior can be customized via the +# `session.default_name` setting. +# Type: Bool +c.auto_save.session = False + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. If this setting is used with URL patterns, the pattern gets +# applied to the origin/first party URL of the page making the request, +# not the request URL. With QtWebEngine 5.15.0+, paths will be stripped +# from URLs, so URL patterns using paths will not match. With +# QtWebEngine 5.15.2+, subdomains are additionally stripped as well, so +# you will typically need to set this setting for `example.com` when the +# cookie is set on `somesubdomain.example.com` for it to work properly. +# To debug issues with this setting, start qutebrowser with `--debug +# --logfilter network --debug-flag log-cookies` which will show all +# cookies being set. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'no-3rdparty') + +# Value to send in the `Accept-Language` header. Note that the value +# read from JavaScript is always the global value. +# Type: String +config.set('content.headers.accept_language', '', 'https://matchmaker.krunker.io/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0', 'https://accounts.google.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'chrome-devtools://*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome-devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome://*/*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'qute://*/*') + +# List of user stylesheet filenames to use. +# Type: List of File, or File +c.content.user_stylesheets = [] + +# Editor (and arguments) to use for the `edit-*` commands. The following +# placeholders are defined: * `{file}`: Filename of the file to be +# edited. * `{line}`: Line in which the caret is found in the text. * +# `{column}`: Column in which the caret is found in the text. * +# `{line0}`: Same as `{line}`, but starting from index 0. * `{column0}`: +# Same as `{column}`, but starting from index 0. +# Type: ShellCommand +c.editor.command = ['neovide', '{file}'] + +# Page to open if :open -t/-b/-w is used without URL. Use `about:blank` +# for a blank page. +# Type: FuzzyUrl +c.url.default_page = 'https://search.brave.com' + +# Search engines which can be used via the address bar. Maps a search +# engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}` +# placeholder. The placeholder will be replaced by the search term, use +# `{{` and `}}` for literal `{`/`}` braces. The following further +# placeholds are defined to configure how special characters in the +# search terms are replaced by safe characters (called 'quoting'): * +# `{}` and `{semiquoted}` quote everything except slashes; this is the +# most sensible choice for almost all search engines (for the search +# term `slash/and&` this placeholder expands to `slash/and%26amp`). +# * `{quoted}` quotes all characters (for `slash/and&` this +# placeholder expands to `slash%2Fand%26amp`). * `{unquoted}` quotes +# nothing (for `slash/and&` this placeholder expands to +# `slash/and&`). * `{0}` means the same as `{}`, but can be used +# multiple times. The search engine named `DEFAULT` is used when +# `url.auto_search` is turned on and something else than a URL was +# entered to be opened. Other search engines can be used by prepending +# the search engine name to the search term, e.g. `:open google +# qutebrowser`. +# Type: Dict +c.url.searchengines = {'DEFAULT': 'https://search.brave.com/search?q={}', 'dg': 'https://duckduckgo.com/?q={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'sp': 'https://startpage.com/sp/search?q={}', 'yt': 'https://yewtu.be/search?q={}', 'lv': 'https://videos.lukesmith.xyz/search?search={}&searchTarget=local'} + +# Page(s) to open at the start. +# Type: List of FuzzyUrl, or FuzzyUrl +c.url.start_pages = 'https://search.brave.com' + +# Background color for webpages if unset (or empty to use the theme's +# color). +# Type: QtColor +c.colors.webpage.bg = 'black' + +# Render all web contents using a dark theme. Example configurations +# from Chromium's `chrome://flags`: - "With simple HSL/CIELAB/RGB-based +# inversion": Set `colors.webpage.darkmode.algorithm` accordingly. - +# "With selective image inversion": Set +# `colors.webpage.darkmode.policy.images` to `smart`. - "With selective +# inversion of non-image elements": Set +# `colors.webpage.darkmode.threshold.text` to 150 and +# `colors.webpage.darkmode.threshold.background` to 205. - "With +# selective inversion of everything": Combines the two variants above. +# Type: Bool +c.colors.webpage.darkmode.enabled = True + +# Which algorithm to use for modifying how colors are rendered with +# darkmode. The `lightness-cielab` value was added with QtWebEngine 5.14 +# and is treated like `lightness-hsl` with older QtWebEngine versions. +# Type: String +# Valid values: +# - lightness-cielab: Modify colors by converting them to CIELAB color space and inverting the L value. Not available with Qt < 5.14. +# - lightness-hsl: Modify colors by converting them to the HSL color space and inverting the lightness (i.e. the "L" in HSL). +# - brightness-rgb: Modify colors by subtracting each of r, g, and b from their maximum value. +c.colors.webpage.darkmode.algorithm = 'lightness-cielab' + +# Which images to apply dark mode to. With QtWebEngine 5.15.0, this +# setting can cause frequent renderer process crashes due to a +# https://codereview.qt-project.org/c/qt/qtwebengine- +# chromium/+/304211[bug in Qt]. +# Type: String +# Valid values: +# - always: Apply dark mode filter to all images. +# - never: Never apply dark mode filter to any images. +# - smart: Apply dark mode based on image content. Not available with Qt 5.15.0. +c.colors.webpage.darkmode.policy.images = 'never' + +# Threshold for inverting background elements with dark mode. Background +# elements with brightness above this threshold will be inverted, and +# below it will be left as in the original, non-dark-mode page. Set to +# 256 to never invert the color or to 0 to always invert it. Note: This +# behavior is the opposite of `colors.webpage.darkmode.threshold.text`! +# Type: Int +c.colors.webpage.darkmode.threshold.background = 48 + +# Map keys to other keys, so that they are equivalent in all modes. When +# the key used as dictionary-key is pressed, the binding for the key +# used as dictionary-value is invoked instead. This is useful for global +# remappings of keys, for example to map <Ctrl-[> to <Escape>. NOTE: +# This should only be used if two keys should always be equivalent, i.e. +# for things like <Enter> (keypad) and <Return> (non-keypad). For normal +# command bindings, qutebrowser works differently to vim: You always +# bind keys to commands, usually via `:bind` or `config.bind()`. Instead +# of using this setting, consider finding the command a key is bound to +# (e.g. via `:bind gg`) and then binding the same command to the desired +# key. Note that when a key is bound (via `bindings.default` or +# `bindings.commands`), the mapping is ignored. +# Type: Dict +c.bindings.key_mappings = {'<Ctrl+6>': '<Ctrl+^>', '<Ctrl+Enter>': '<Ctrl+Return>', '<Ctrl+i>': '<Tab>', '<Ctrl+j>': '<Return>', '<Ctrl+m>': '<Return>', '<Ctrl+[>': '<Escape>', '<Enter>': '<Return>', '<Shift+Enter>': '<Return>', '<Shift+Return>': '<Return>'} + +# Bindings for normal mode +config.bind('<Ctrl+0>', 'tab-select 10') +config.bind('<Ctrl+1>', 'tab-select 1') +config.bind('<Ctrl+2>', 'tab-select 2') +config.bind('<Ctrl+3>', 'tab-select 3') +config.bind('<Ctrl+4>', 'tab-select 4') +config.bind('<Ctrl+5>', 'tab-select 5') +config.bind('<Ctrl+6>', 'tab-select 6') +config.bind('<Ctrl+7>', 'tab-select 7') +config.bind('<Ctrl+8>', 'tab-select 8') +config.bind('<Ctrl+9>', 'tab-select 9') +config.bind('X', 'hint links spawn mpv {hint-url}') +config.bind('ar', 'download-retry') +config.bind('pa', 'spawn --userscript qute-pass') |