From 4c453d79416bdf9849c80ebd465a1fba4fbfd4eb Mon Sep 17 00:00:00 2001 From: Trey Blancher Date: Sun, 14 Apr 2024 16:48:24 -0400 Subject: [PATCH] 2024-04-14 ~/.config/qutebrowser/config.py --- .../config.py | 542 ++++++++++++++++++ 1 file changed, 542 insertions(+) create mode 100644 bugs/2024-04-14_qutebrowser_Googe_Docs/config.py diff --git a/bugs/2024-04-14_qutebrowser_Googe_Docs/config.py b/bugs/2024-04-14_qutebrowser_Googe_Docs/config.py new file mode 100644 index 0000000..c59aaa9 --- /dev/null +++ b/bugs/2024-04-14_qutebrowser_Googe_Docs/config.py @@ -0,0 +1,542 @@ +# 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. +# +# try: +# import qutebrowser.config as config +# from qutebrowser.config import (config as c, configfiles) +# c.load_autoconfig(False) +# except ImportError: +# pass +from qutebrowser.config.configfiles import ConfigAPI +from qutebrowser.config.config import ConfigContainer +config: ConfigAPI = config +c: ConfigContainer = c +config.load_autoconfig(False) +# Documentation: +# qute://help/configuring.html +# qute://help/settings.html + +# Change the argument to True to still load settings configured via +# autoconfig.yml +# c.load_autoconfig(False) + +# How to open links in an existing instance if a new one is launched. +# This happens when e.g. opening a link from a terminal. See +# `new_instance_open_target_window` to customize in which window the +# link is opened in. +# Type: String +# Valid values: +# - tab: Open a new tab in the existing window and activate the window. +# - tab-bg: Open a new background tab in the existing window and activate the +# window. +# - tab-silent: Open a new tab in the existing window without activating the +# window. +# - tab-bg-silent: Open a new background tab in the existing window without +# activating the window. +# - window: Open in a new window. +# - private-window: Open in a new private window. +c.new_instance_open_target = 'tab' + +# 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 = True + +# 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', 'all', 'chrome-devtools://*') + +# 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', 'all', 'devtools://*') + +# Allow websites to request geolocations. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.geolocation', True, 'https://order.firehousesubs.com') +config.set('content.geolocation', True, 'https://www.aetna.com') + +# Allow websites to request geolocations. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.geolocation', True, 'https://www.google.com') + +# Allow websites to request geolocations. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.geolocation', False, 'https://www.neworleanssaints.com') + +# Allow websites to request geolocations. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.geolocation', False, 'https://www.tracfone.com') + +# 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/*') + +# fix for instacart +config.set('content.blocking.enabled', False, 'https://*.instacart.com/*') + +# fix for Rocket Mortgage +config.set('content.blocking.enabled', False, 'https://*.rocketaccount.com/*') +config.set('content.blocking.enabled', False, 'https://*.rocketmortgage.com/*') + +c.content.blocking.whitelist = [ + 'https://cdn.eu1.exponea.com/zagg-us-production-2/*', + 'https://*.apple.com/*', + 'https://network.bazaarvoice.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/{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/*') + +config.set('content.headers.user_agent', + 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36' + + '(KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36', + 'https://forum.ghost.org') + +# config.set('content.headers.user_agent', +# 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36' +# + '(KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36', +# 'https://*.instacart.com/*') + +config.set('content.headers.user_agent', + 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} ' + + '(KHTML, like Gecko) {qt_key}/{qt_version} ' + + '{upstream_browser_key}/{upstream_browser_version} ' + + 'Safari/{webkit_version}', + '*') +# 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://*/*') + +# Allow websites to show notifications. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.notifications.enabled', + True, + 'https://calendar.google.com') + +# Allow websites to show notifications. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.notifications.enabled', + True, + 'https://messages.google.com') + +# Allow websites to show notifications. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.notifications.enabled', False, 'https://www.youtube.com') +config.set('content.notifications.enabled', False, 'https://mail.google.com') + +# Allow websites to register protocol handlers via +# `navigator.registerProtocolHandler`. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.register_protocol_handler', + True, 'https://calendar.google.com?cid=%25s') + +# Allow websites to register protocol handlers via +# `navigator.registerProtocolHandler`. +# Type: BoolAsk +# Valid values: +# - true +# - false +# - ask +config.set('content.register_protocol_handler', + False, + 'https://mail.google.com?extsrc=mailto&url=%25s') + +# Number of commands to save in the command history. 0: no history / -1: +# unlimited +# Type: Int +c.completion.cmd_history_max_items = -1 + +# Move on to the next part when there's only one possible completion +# left. +# Type: Bool +c.completion.quick = True + +# Which categories to show (in which order) in the :open completion. +# Type: FlagList +# Valid values: +# - searchengines +# - quickmarks +# - bookmarks +# - history +# - filesystem +c.completion.open_categories = [ + 'searchengines', + 'quickmarks', + 'bookmarks', + 'history', + 'filesystem'] + +# 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 = [ + 'alacritty', + '--command', + 'vim', + '{file}', + '-c', + 'normal {line0}G{column0}l'] + +# What search to start when something else than a URL is entered. +# Type: String +# Valid values: +# - naive: Use simple/naive check. +# - dns: Use DNS requests (might be slow!). +# - never: Never search automatically. +# - schemeless: Always search automatically unless URL explicitly contains a +# scheme. +c.url.auto_search = 'naive' + +# 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 = 'about:blank' + +# 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://google.com/search?q={semiquoted}'} + +# Page(s) to open at the start. +# Type: List of FuzzyUrl, or FuzzyUrl +c.url.start_pages = 'about:blank' + +# tab configs +c.tabs.position = 'left' +c.tabs.new_position.related = 'last' +c.tabs.pinned.shrink = False +c.tabs.title.format = '{audio}{aligned_index}: {current_title}' +c.tabs.title.format_pinned = '{audio}{aligned_index}: {current_title}' + +# Foreground color of the statusbar. +# Type: QssColor +c.colors.statusbar.normal.fg = '#ffd7af' + +# Background color of the statusbar. +# Type: QssColor +c.colors.statusbar.normal.bg = '#282828' + +# Default foreground color of the URL in the statusbar. +# Type: QssColor +c.colors.statusbar.url.fg = '#ffd7af' + +# Foreground color of the URL in the statusbar on successful load +# (http). +# Type: QssColor +c.colors.statusbar.url.success.http.fg = '#ffd7af' + +# Background color of the tab bar. +# Type: QssColor +c.colors.tabs.bar.bg = '#282828' + +# Foreground color of unselected odd tabs. +# Type: QtColor +c.colors.tabs.odd.fg = '#ffd7af' + +# Background color of unselected odd tabs. +# Type: QtColor +c.colors.tabs.odd.bg = '#444444' + +# Foreground color of unselected even tabs. +# Type: QtColor +c.colors.tabs.even.fg = '#ffd7af' + +# Background color of unselected even tabs. +# Type: QtColor +c.colors.tabs.even.bg = '#333333' + +# Foreground color of selected odd tabs. +# Type: QtColor +c.colors.tabs.selected.odd.fg = '#000000' +c.colors.tabs.selected.odd.bg = '#cccccc' + +# Foreground color of selected even tabs. +# Type: QtColor +c.colors.tabs.selected.even.fg = '#000000' +c.colors.tabs.selected.even.bg = '#cccccc' + +# Foreground color of pinned unselected odd tabs. +# Type: QtColor +c.colors.tabs.pinned.odd.fg = '#ffd7af' + +# Background color of pinned unselected odd tabs. +# Type: QtColor +c.colors.tabs.pinned.odd.bg = '#282828' + +# Foreground color of pinned unselected even tabs. +# Type: QtColor +c.colors.tabs.pinned.even.fg = '#ffd7af' + +# Background color of pinned unselected even tabs. +# Type: QtColor +c.colors.tabs.pinned.even.bg = '#333333' + +# Foreground color of pinned selected odd tabs. +# Type: QtColor +c.colors.tabs.pinned.selected.odd.fg = '#000000' +c.colors.tabs.pinned.selected.odd.bg = '#cccccc' + +# Foreground color of pinned selected even tabs. +# Type: QtColor +c.colors.tabs.pinned.selected.even.fg = '#000000' +c.colors.tabs.pinned.selected.even.bg = '#cccccc' + +# 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 +c.colors.webpage.darkmode.policy.images = 'smart' +c.colors.webpage.darkmode.threshold.foreground = 150 +c.colors.webpage.darkmode.threshold.background = 205 +c.colors.webpage.preferred_color_scheme = 'dark' +c.colors.webpage.darkmode.algorithm = "lightness-cielab" +# c.qt.workarounds.disable_accelerated_2d_canvas = "always" +# c.colors.webpage.darkmode.algorithm = "lightness-hsl" +# c.colors.webpage.darkmode.algorithm = "brightness-rgb" + +# c.fonts.default_family = 'Iosevka Term' +c.fonts.default_family = 'IntelOne Mono Light' +c.fonts.default_size = "10pt" +c.colors.hints.bg = 'qlineargradient(x1:0, y1:0, x2:0, y2:1, ' + \ + 'stop:0 rgba(0, 0, 133, 0.8),' + \ + 'stop:1 rgba(0, 0, 66, 0.8))' +c.colors.hints.fg = 'white' +c.content.cookies.accept = 'all' +c.zoom.default = "100%" +# c.content.blocking.whitelist = ['https://www.amazon.com'] + +# Allow Javascript access to clipboard +config.set('content.javascript.clipboard', 'access') + +# BitWarden stuff +bitwarden = """spawn --userscript qute-bitwarden """ +invocation = """--password-prompt-invocation """ +script = """/home/trey/bin/qutebrowser-bitwarden-prompt.sh """ +lock = """--auto-lock """ +# Bindings for normal mode +config.unbind('r', mode='normal') +config.unbind('R', mode='normal') +config.bind('', 'reload') +config.bind('', 'reload --force') +config.bind('gl', + bitwarden + invocation + script + lock + "86400") +config.bind('gp', + bitwarden + invocation + script + "-w " + lock + "86400") +config.bind('gP', + bitwarden + invocation + script + "-w " + lock + "0") +config.bind('gc', + bitwarden + invocation + script + lock + "0") + +config.bind('', 'tab-focus')