2022-04-06 14:24:23 +02:00
# 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
2021-05-20 20:57:40 +02:00
# 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 )
2022-04-06 22:18:57 +02:00
# 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 '
}
2021-11-10 03:21:50 +01:00
# 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 '
2021-05-20 20:57:40 +02:00
# 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://* ' )
2022-04-07 11:03:02 +02:00
# 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 '
2022-04-07 11:04:39 +02:00
# Allow websites to share screen content.
# Type: BoolAsk
# Valid values:
# - true
# - false
# - ask
c . content . desktop_capture = ' ask '
2022-04-07 11:04:56 +02:00
# Try to pre-fetch DNS entries to speed up browsing.
# Type: Bool
c . content . dns_prefetch = True
2022-04-07 11:04:39 +02:00
# 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 '
2021-05-20 20:57:40 +02:00
# 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/* ' )
2022-07-03 12:56:45 +02:00
# 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 ' ]
2021-05-20 20:57:40 +02:00
# 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://* ' )
2021-11-15 23:46:26 +01:00
# 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
2022-03-31 14:54:30 +02:00
c . content . javascript . can_access_clipboard = False
2021-11-15 23:46:26 +01:00
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 ' )
2022-03-31 14:55:15 +02:00
## Allow JavaScript to close tabs.
## Type: Bool
c . content . javascript . can_close_tabs = False
2021-05-20 20:57:40 +02:00
# 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
2022-04-06 13:59:46 +02:00
# List of user stylesheet filenames to use.
# Type: List of File, or File
c . content . user_stylesheets = ' stylesheets/user.css '
2021-06-14 11:26:21 +02:00
# CSS selectors used to determine which elements on a page should have
# hints.
# Type: Dict
2022-04-06 22:18:57 +02:00
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 '
]
}
2021-06-14 11:26:21 +02:00
2021-05-20 20:57:40 +02:00
# 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
2022-04-06 15:37:26 +02:00
# 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= {} '
}
2021-05-20 20:57:40 +02:00
# 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
2022-04-06 22:18:57 +02:00
c . zoom . levels = [
' 25 % ' , ' 33 % ' , ' 50 % ' , ' 67 % ' , ' 75 % ' , ' 90 % ' , ' 100 % ' , ' 110 % ' , ' 120 % ' ,
' 125 % ' , ' 150 % ' , ' 175 % ' , ' 200 % ' , ' 250 % ' , ' 300 % ' , ' 400 % ' , ' 500 % '
]
2021-05-20 20:57:40 +02:00
# Background color for webpages if unset (or empty to use the theme's
# color).
# Type: QtColor
2022-04-06 13:59:46 +02:00
c . colors . webpage . bg = ' #1c1b22 '
2021-05-20 20:57:40 +02:00
# 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 '
2022-04-01 13:24:47 +02:00
c . fonts . web . family . standard = ' FiraCode '
c . fonts . web . family . sans_serif = ' FiraCode '
2021-05-20 20:57:40 +02:00
# 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
2021-06-14 11:26:21 +02:00
# 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} ' )
2022-04-06 14:28:30 +02:00
config . bind ( ' <Ctrl-=> ' , ' zoom-in ' )
config . bind ( ' <Ctrl--> ' , ' zoom-out ' )
2022-04-06 14:35:21 +02:00
# save web pages in MHTML
# ref: https://www.ii.com/qutebrowser-tips-fragments/#_my_configpy_settings
config . bind ( ' ,sm ' , ' set-cmd-text :download --mhtml ' )
2021-11-14 18:16:29 +01:00
import dracula . draw
dracula . draw . blood ( c , {
' spacing ' : {
# set to zero to not alter the default tab sizes
' vertical ' : 0 ,
' horizontal ' : 0
}
} )