# 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={}', 'py': 'https://vid.puffyan.us/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 to . NOTE: # This should only be used if two keys should always be equivalent, i.e. # for things like (keypad) and (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 = {'': '', '': '', '': '', '': '', '': '', '': '', '': '', '': '', '': ''} # Bindings for normal mode config.bind('', 'tab-select 10') config.bind('', 'tab-select 1') config.bind('', 'tab-select 2') config.bind('', 'tab-select 3') config.bind('', 'tab-select 4') config.bind('', 'tab-select 5') config.bind('', 'tab-select 6') config.bind('', 'tab-select 7') config.bind('', 'tab-select 8') config.bind('', 'tab-select 9') config.bind('X', 'hint links spawn mpv {hint-url}') config.bind('ar', 'download-retry') config.bind('pa', 'spawn --userscript qute-pass')