431 lines
18 KiB
Python
431 lines
18 KiB
Python
# pylint: disable=C0111,E0601
|
|
# pyflakes: noqa
|
|
from qutebrowser.config.configfiles import ConfigAPI # noqa: F401
|
|
from qutebrowser.config.config import ConfigContainer # noqa: F401
|
|
config: ConfigAPI = config # noqa: F821 pylint: disable=E0602,C0103
|
|
c: ConfigContainer = c # noqa: F821 pylint: disable=E0602,C0103
|
|
# ref: https://www.qutebrowser.org/doc/help/configuring.html
|
|
|
|
# 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
|
|
|
|
# Change the argument to True to still load settings configured via autoconfig.yml
|
|
config.load_autoconfig(False)
|
|
|
|
# Aliases for commands. The keys of the given dictionary are the
|
|
# aliases, while the values are the commands they map to.
|
|
# Type: Dict
|
|
c.aliases = {
|
|
'w': 'session-save', 'q': 'quit', 'qa': 'quit', 'wq': 'quit --save',
|
|
'wqa': 'quit --save',
|
|
'tor': 'config-cycle -p content.proxy socks://localhost:9050/ system',
|
|
'toroff': 'set content.proxy system',
|
|
'toron': 'set content.proxy socks://localhost:9050'
|
|
}
|
|
|
|
# Force a Qt platform to use. This sets the `QT_QPA_PLATFORM`
|
|
# environment variable and is useful to force using the XCB plugin when
|
|
# running QtWebEngine on Wayland.
|
|
# Type: String
|
|
c.qt.force_platform = 'wayland'
|
|
|
|
# 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
|
|
|
|
# Automatically start playing `<video>` elements.
|
|
# Type: Bool
|
|
c.content.autoplay = 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', '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://*')
|
|
|
|
# Default encoding to use for websites. The encoding must be a string
|
|
# describing an encoding such as _utf-8_, _iso-8859-1_, etc.
|
|
# Type: String
|
|
c.content.default_encoding = 'utf-8'
|
|
|
|
# Allow websites to share screen content.
|
|
# Type: BoolAsk
|
|
# Valid values:
|
|
# - true
|
|
# - false
|
|
# - ask
|
|
c.content.desktop_capture = 'ask'
|
|
|
|
# Try to pre-fetch DNS entries to speed up browsing.
|
|
# Type: Bool
|
|
c.content.dns_prefetch = True
|
|
|
|
# Allow websites to request geolocations.
|
|
# Type: BoolAsk
|
|
# Valid values:
|
|
# - true
|
|
# - false
|
|
# - ask
|
|
c.content.geolocation = 'ask'
|
|
|
|
# Allow websites to lock your mouse pointer.
|
|
# Type: BoolAsk
|
|
# Valid values:
|
|
# - true
|
|
# - false
|
|
# - ask
|
|
c.content.mouse_lock = 'ask'
|
|
|
|
# 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}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version} Edg/{upstream_browser_version}', '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/*')
|
|
|
|
# Which method of blocking ads should be used. Support for Adblock Plus
|
|
# (ABP) syntax blocklists using Brave's Rust library requires the
|
|
# `adblock` Python package to be installed, which is an optional
|
|
# dependency of qutebrowser. It is required when either `adblock` or
|
|
# `both` are selected.
|
|
# Type: String
|
|
# Valid values:
|
|
# - auto: Use Brave's ABP-style adblocker if available, host blocking otherwise
|
|
# - adblock: Use Brave's ABP-style adblocker
|
|
# - hosts: Use hosts blocking
|
|
# - both: Use both hosts blocking and Brave's ABP-style adblocker
|
|
c.content.blocking.method = 'both'
|
|
|
|
# List of URLs to ABP-style adblocking rulesets. Only used when Brave's
|
|
# ABP-style adblocker is used (see `content.blocking.method`). You can
|
|
# find an overview of available lists here:
|
|
# https://adblockplus.org/en/subscriptions - note that the special
|
|
# `subscribe.adblockplus.org` links aren't handled by qutebrowser, you
|
|
# will instead need to find the link to the raw `.txt` file (e.g. by
|
|
# extracting it from the `location` parameter of the subscribe URL and
|
|
# URL-decoding it).
|
|
# Type: List of Url
|
|
c.content.blocking.adblock.lists = ['https://easylist.to/easylist/easylist.txt', 'https://easylist.to/easylist/easyprivacy.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/annoyances.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/quick-fixes.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/unbreak.txt', 'https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt', 'https://filters.adtidy.org/extension/ublock/filters/11.txt', 'https://secure.fanboy.co.nz/fanboy-annoyance.txt', 'https://filters.adtidy.org/extension/ublock/filters/4.txt', 'https://secure.fanboy.co.nz/fanboy-antifacebook.txt', 'https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/annoyances.txt', 'https://filters.adtidy.org/extension/ublock/filters/3.txt', 'https://cdn.statically.io/gh/uBlockOrigin/uAssets/master/filters/filters.txt', 'https://gitlab.com/curben/urlhaus-filter/raw/master/urlhaus-filter-online.txt']
|
|
|
|
# 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://*')
|
|
|
|
# Allow JavaScript to read from or write to the clipboard. With
|
|
# QtWebEngine, writing the clipboard as response to a user interaction
|
|
# is always allowed.
|
|
# Type: Bool
|
|
c.content.javascript.can_access_clipboard = False
|
|
|
|
config.set('content.javascript.can_access_clipboard', True, 'git.dotya.ml')
|
|
|
|
config.set('content.javascript.can_access_clipboard', True, 'dotya.ml')
|
|
|
|
config.set('content.javascript.can_access_clipboard', True, 'drone.dotya.ml')
|
|
|
|
## Allow JavaScript to close tabs.
|
|
## Type: Bool
|
|
c.content.javascript.can_close_tabs = False
|
|
|
|
# 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 pdf.js to view PDF files in the browser. Note that the files can
|
|
# still be downloaded by clicking the download button in the pdf.js
|
|
# viewer.
|
|
# Type: Bool
|
|
c.content.pdfjs = False
|
|
|
|
# List of user stylesheet filenames to use.
|
|
# Type: List of File, or File
|
|
c.content.user_stylesheets = 'stylesheets/user.css'
|
|
|
|
# CSS selectors used to determine which elements on a page should have
|
|
# hints.
|
|
# Type: Dict
|
|
c.hints.selectors = {
|
|
'all': [
|
|
'a', 'area', 'textarea', 'select', 'input:not([type="hidden"])',
|
|
'button', 'frame', 'iframe', 'img', 'link', 'summary',
|
|
'[contenteditable]:not([contenteditable="false"])', '[onclick]',
|
|
'[onmousedown]', '[role="link"]', '[role="option"]', '[role="button"]',
|
|
'[ng-click]', '[ngClick]', '[data-ng-click]', '[x-ng-click]',
|
|
'[tabindex]'
|
|
],
|
|
'links': [
|
|
'a[href]', 'area[href]', 'link[href]', '[role="link"][href]'
|
|
],
|
|
'images': [
|
|
'img'
|
|
],
|
|
'media': [
|
|
'audio', 'img', 'video'
|
|
],
|
|
'url': [
|
|
'[src]', '[href]'
|
|
],
|
|
'inputs': [
|
|
'input[type="text"]', 'input[type="date"]',
|
|
'input[type="datetime-local"]', 'input[type="email"]',
|
|
'input[type="month"]', 'input[type="number"]',
|
|
'input[type="password"]', 'input[type="search"]', 'input[type="tel"]',
|
|
'input[type="time"]', 'input[type="url"]', 'input[type="week"]',
|
|
'input:not([type])',
|
|
'[contenteditable]:not([contenteditable="false"])', 'textarea'
|
|
],
|
|
'code': [
|
|
':not(pre) > code', 'pre'
|
|
]
|
|
}
|
|
|
|
# Position of the tab bar.
|
|
# Type: Position
|
|
# Valid values:
|
|
# - top
|
|
# - bottom
|
|
# - left
|
|
# - right
|
|
c.tabs.position = 'top'
|
|
|
|
# Width (in pixels or as percentage of the window) of the tab bar if
|
|
# it's vertical.
|
|
# Type: PercOrInt
|
|
c.tabs.width = '25%'
|
|
|
|
# Minimum width (in pixels) of tabs (-1 for the default minimum size
|
|
# behavior). This setting only applies when tabs are horizontal. This
|
|
# setting does not apply to pinned tabs, unless `tabs.pinned.shrink` is
|
|
# False.
|
|
# Type: Int
|
|
c.tabs.min_width = -1
|
|
|
|
# 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://duckduckgo.com/?q={}',
|
|
'wa': 'https://wiki.archlinux.org/?search={}'
|
|
}
|
|
|
|
# Hide the window decoration. This setting requires a restart on
|
|
# Wayland.
|
|
# Type: Bool
|
|
c.window.hide_decoration = False
|
|
|
|
# Set the main window background to transparent. This allows having a
|
|
# transparent tab- or statusbar (might require a compositor such as
|
|
# picom). However, it breaks some functionality such as dmenu embedding
|
|
# via its `-w` option. On some systems, it was additionally reported
|
|
# that main window transparency negatively affects performance. Note
|
|
# this setting only affects windows opened after setting it.
|
|
# Type: Bool
|
|
c.window.transparent = False
|
|
|
|
# Default zoom level.
|
|
# Type: Perc
|
|
c.zoom.default = '110%'
|
|
|
|
# Available zoom levels.
|
|
# Type: List of Perc
|
|
c.zoom.levels = [
|
|
'25%', '33%', '50%', '67%', '75%', '90%', '100%', '110%', '120%',
|
|
'125%', '150%', '175%', '200%', '250%', '300%', '400%', '500%'
|
|
]
|
|
|
|
# Background color for webpages if unset (or empty to use the theme's
|
|
# color).
|
|
# Type: QtColor
|
|
c.colors.webpage.bg = '#1c1b22'
|
|
|
|
# Default font size to use. Whenever "default_size" is used in a font
|
|
# setting, it's replaced with the size listed here. Valid values are
|
|
# either a float value with a "pt" suffix, or an integer value with a
|
|
# "px" suffix.
|
|
# Type: String
|
|
c.fonts.default_size = '16px'
|
|
|
|
# Font used for the context menu. If set to null, the Qt default is
|
|
# used.
|
|
# Type: Font
|
|
c.fonts.contextmenu = 'FiraCode'
|
|
|
|
# Font used for selected tabs.
|
|
# Type: Font
|
|
c.fonts.tabs.selected = 'FiraCode'
|
|
|
|
# Font family for fixed fonts.
|
|
# Type: FontFamily
|
|
c.fonts.web.family.fixed = 'FiraCode'
|
|
|
|
c.fonts.web.family.standard = 'FiraCode'
|
|
c.fonts.web.family.sans_serif = 'FiraCode'
|
|
|
|
# Default font size (in pixels) for regular text.
|
|
# Type: Int
|
|
c.fonts.web.size.default = 18
|
|
|
|
# Default font size (in pixels) for fixed-pitch text.
|
|
# Type: Int
|
|
c.fonts.web.size.default_fixed = 20
|
|
|
|
# Hard minimum font size (in pixels).
|
|
# Type: Int
|
|
c.fonts.web.size.minimum = 15
|
|
|
|
# Bindings for normal mode
|
|
config.bind(';#', 'hint code userscript code_select.py')
|
|
config.bind(';g', 'hint links userscript qute-gemini')
|
|
config.bind(';G', 'hint links userscript qute-gemini-tab')
|
|
config.bind(';b', 'hint links userscript getbib')
|
|
config.bind(';m', 'hint links spawn mpv --gpu-context=wayland --hwdec=auto {hint-url}')
|
|
config.bind('<Ctrl-=>', 'zoom-in')
|
|
config.bind('<Ctrl-->', 'zoom-out')
|
|
# save web pages in MHTML
|
|
# ref: https://www.ii.com/qutebrowser-tips-fragments/#_my_configpy_settings
|
|
config.bind(',sm', 'set-cmd-text :download --mhtml')
|
|
|
|
import dracula.draw
|
|
|
|
dracula.draw.blood(c, {
|
|
'spacing': {
|
|
# set to zero to not alter the default tab sizes
|
|
'vertical': 0,
|
|
'horizontal': 0
|
|
}
|
|
})
|