-import subprocess
-config.load_autoconfig()
-
-## testing
+# Autogenerated config.py
#
-config.bind('<Alt-Shift-u>', 'spawn --userscript qute-keepassxc --key 285D16B66B11BD45BFD57B6CB22C3113D0E83104', mode='insert')
-config.bind('pw', 'spawn --userscript qute-keepassxc --key 285D16B66B11BD45BFD57B6CB22C3113D0E83104', mode='normal')
-
-## Generic
+# 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.
#
-c.auto_save.session = True
+# 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)
+
+# Require a confirmation before quitting the application.
+# Type: ConfirmQuit
+# Valid values:
+# - always: Always show a confirmation.
+# - multiple-tabs: Show a confirmation if multiple tabs are opened.
+# - downloads: Show a confirmation if downloads are running
+# - never: Never show a confirmation.
+c.confirm_quit = ['never']
+
+# When to show a changelog after qutebrowser was upgraded.
+# Type: String
+# Valid values:
+# - major: Show changelog for major upgrades (e.g. v2.0.0 -> v3.0.0).
+# - minor: Show changelog for major and minor upgrades (e.g. v2.0.0 -> v2.1.0).
+# - patch: Show changelog for major, minor and patch upgrades (e.g. v2.0.0 -> v2.0.1).
+# - never: Never show changelog after upgrades.
+c.changelog_after_upgrade = 'patch'
+
+# 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-bg'
+
+# Load a restored tab as soon as it takes focus.
+# Type: Bool
c.session.lazy_restore = 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'
+
+# Force software rendering for QtWebEngine. This is needed for
+# QtWebEngine to work with Nouveau drivers and can be useful in other
+# scenarios related to graphic issues.
+# Type: String
+# Valid values:
+# - software-opengl: Tell LibGL to use a software implementation of GL (`LIBGL_ALWAYS_SOFTWARE` / `QT_XCB_FORCE_SOFTWARE_OPENGL`)
+# - qt-quick: Tell Qt Quick to use a software renderer instead of OpenGL. (`QT_QUICK_BACKEND=software`)
+# - chromium: Tell Chromium to disable GPU support and use Skia software rendering instead. (`--disable-gpu`)
+# - none: Don't force software rendering.
+c.qt.force_software_rendering = 'chromium'
+
+# 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 = None
+
+# Force a Qt platformtheme to use. This sets the `QT_QPA_PLATFORMTHEME`
+# environment variable which controls dialogs like the filepicker. By
+# default, Qt determines the platform theme based on the desktop
+# environment.
+# Type: String
+c.qt.force_platformtheme = 'qt6ct'
+
+# Which Chromium process model to use. Alternative process models use
+# less resources, but decrease security and robustness. See the
+# following pages for more details: -
+# https://www.chromium.org/developers/design-documents/process-models
+# - https://doc.qt.io/qt-6/qtwebengine-features.html#process-models
+# Type: String
+# Valid values:
+# - process-per-site-instance: Pages from separate sites are put into separate processes and separate visits to the same site are also isolated.
+# - process-per-site: Pages from separate sites are put into separate processes. Unlike Process per Site Instance, all visits to the same site will share an OS process. The benefit of this model is reduced memory consumption, because more web pages will share processes. The drawbacks include reduced security, robustness, and responsiveness.
+# - single-process: Run all tabs in a single process. This should be used for debugging purposes only, and it disables `:open --private`.
+c.qt.chromium.process_model = 'process-per-site'
+
+# Turn on Qt HighDPI scaling. This is equivalent to setting
+# QT_ENABLE_HIGHDPI_SCALING=1 (Qt >= 5.14) in the environment. It's off
+# by default as it can cause issues with some bitmap fonts. As an
+# alternative to this, it's possible to set font sizes and the
+# `zoom.default` setting.
+# Type: Bool
+c.qt.highdpi = False
+
+# 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
+
+# Automatically start playing `<video>` elements.
+# Type: Bool
+c.content.autoplay = False
+
+# Size (in bytes) of the HTTP network cache. Null to use the default
+# value. With QtWebEngine, the maximum supported value is 2147483647 (~2
+# GB).
+# Type: Int
+c.content.cache.size = 0
+
+# Allow websites to read canvas elements. Note this is needed for some
+# websites to work properly.
+# Type: Bool
+c.content.canvas_reading = 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://*')
+
+# 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.
+c.content.cookies.accept = 'no-3rdparty'
+
+# 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_,iso-8859-1'
+
+# Limit fullscreen to the browser window (does not expand to fill the
+# screen).
+# Type: Bool
c.content.fullscreen.window = True
+
+# Try to pre-fetch DNS entries to speed up browsing.
+# Type: Bool
+c.content.dns_prefetch = False
+
+# Allow websites to request geolocations.
+# Type: BoolAsk
+# Valid values:
+# - true
+# - false
+# - ask
+config.set('content.geolocation', False, 'https://www.clubderdampfer.de')
+
+# Allow websites to request geolocations.
+# Type: BoolAsk
+# Valid values:
+# - true
+# - false
+# - ask
+config.set('content.geolocation', False, 'https://www.r-m.de')
+
+# 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/*')
+
+# Value to send in the `Accept-Language` header. Note that the value
+# read from JavaScript is always the global value.
+# Type: String
+c.content.headers.accept_language = 'en-US,en;q=0.9'
+
+# Value to send in the `DNT` header. When this is set to true,
+# qutebrowser asks websites to not track your identity. If set to null,
+# the DNT header is not sent at all.
+# Type: Bool
+c.content.headers.do_not_track = False
+
+# 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/112 Safari/537.36', 'https://*.slack.com/*')
+
+# Enable the ad/host blocker
+# Type: Bool
+c.content.blocking.enabled = True
+
+# Block subdomains of blocked hosts. Note: If only a single subdomain is
+# blocked but should be allowed, consider using
+# `content.blocking.whitelist` instead.
+# Type: Bool
+c.content.blocking.hosts.block_subdomains = True
+
+# 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']
+
+# A list of patterns that should always be loaded, despite being blocked
+# by the ad-/host-blocker. Local domains are always exempt from
+# adblocking. Note this whitelists otherwise blocked requests, not
+# first-party URLs. As an example, if `example.org` loads an ad from
+# `ads.example.org`, the whitelist entry could be
+# `https://ads.example.org/*`. If you want to disable the adblocker on a
+# given page, use the `content.blocking.enabled` setting with a URL
+# pattern instead.
+# Type: List of UrlPattern
+c.content.blocking.whitelist = ['piwik.org']
+
+# 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: String
+# Valid values:
+# - none: Disable access to clipboard.
+# - access: Allow reading from and writing to the clipboard.
+# - access-paste: Allow accessing the clipboard and pasting clipboard content.
+config.set('content.javascript.clipboard', 'access', 'wago.io')
+
+# 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: String
+# Valid values:
+# - none: Disable access to clipboard.
+# - access: Allow reading from and writing to the clipboard.
+# - access-paste: Allow accessing the clipboard and pasting clipboard content.
+config.set('content.javascript.clipboard', 'access', 'wowhead.com')
+
+# 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://*/*')
+
+# Enable JavaScript.
+# Type: Bool
+c.content.javascript.enabled = True
+
+# Javascript messages to *not* show in the UI, despite a corresponding
+# `content.javascript.log_message.levels` setting. Both keys and values
+# are glob patterns, with the key matching the location of the error,
+# and the value matching the error message. By default, the
+# https://web.dev/csp/[Content security policy] violations triggered by
+# qutebrowser's stylesheet handling are excluded, as those errors are to
+# be expected and can't be easily handled by the underlying code.
+# Type: Dict
+c.content.javascript.log_message.excludes = {'userscript:_qute_stylesheet': ['*Refused to apply inline style because it violates the following Content Security Policy directive: *']}
+
+# Allow locally loaded documents to access remote URLs.
+# Type: Bool
+config.set('content.local_content_can_access_remote_urls', True, 'file:///home/andy/.local/share/qutebrowser/userscripts/*')
+
+# Allow locally loaded documents to access other local URLs.
+# Type: Bool
+config.set('content.local_content_can_access_file_urls', False, 'file:///home/andy/.local/share/qutebrowser/userscripts/*')
+
+# Allow websites to show notifications.
+# Type: BoolAsk
+# Valid values:
+# - true
+# - false
+# - ask
c.content.notifications.enabled = True
-c.content.cookies.accept = 'no-3rdparty'
-c.content.blocking.whitelist = ["piwik.org"]
-c.downloads.position = "bottom"
-c.editor.command = ["konsole", "--separate", "-e", "kak", "{file}"]
-c.statusbar.widgets = ["url", "progress", "scroll"]
-c.zoom.default = "123%"
+
+# What notification presenter to use for web notifications. Note that
+# not all implementations support all features of notifications: - The
+# `qt` and `systray` options only support showing one notification at
+# the time and ignore the `tag` option to replace existing
+# notifications. - The `herbe` option only supports showing one
+# notification at the time and doesn't show icons. - The `messages`
+# option doesn't show icons and doesn't support the `click` and
+# `close` events.
+# Type: String
+# Valid values:
+# - auto: Tries `libnotify`, `systray` and `messages`, uses the first one available without showing error messages.
+# - qt: Use Qt's native notification presenter, based on a system tray icon. Switching from or to this value requires a restart of qutebrowser.
+# - libnotify: Shows messages via DBus in a libnotify-compatible way. If DBus isn't available, falls back to `systray` or `messages`, but shows an error message.
+# - systray: Use a notification presenter based on a systray icon. Falls back to `libnotify` or `messages` if not systray is available. This is a reimplementation of the `qt` setting value, but with the possibility to switch to it at runtime.
+# - messages: Show notifications as qutebrowser messages. Most notification features aren't available.
+# - herbe: (experimental!) Show notifications using herbe (github.com/dudik/herbe). Most notification features aren't available.
+c.content.notifications.presenter = 'auto'
+
+# Display PDF files via PDF.js in the browser without showing a download
+# prompt. Note that the files can still be downloaded by clicking the
+# download button in the pdf.js viewer. With this set to `false`, the
+# `:prompt-open-download --pdfjs` command (bound to `<Ctrl-p>` by
+# default) can be used in the download prompt.
+# Type: Bool
+c.content.pdfjs = False
+
+# Enable plugins in Web pages.
+# Type: Bool
+c.content.plugins = True
+
+# Allow websites to register protocol handlers via
+# `navigator.registerProtocolHandler`.
+# Type: BoolAsk
+# Valid values:
+# - true
+# - false
+# - ask
+config.set('content.register_protocol_handler', True, 'https://mail.google.com?extsrc=mailto&url=%25s')
+
+# Enable WebGL.
+# Type: Bool
+c.content.webgl = True
+
+# Monitor load requests for cross-site scripting attempts. Suspicious
+# scripts will be blocked and reported in the devtools JavaScript
+# console. Note that bypasses for the XSS auditor are widely known and
+# it can be abused for cross-site info leaks in some scenarios, see:
+# https://www.chromium.org/developers/design-documents/xss-auditor
+# Type: Bool
+c.content.xss_auditing = False
+
+# Width (in pixels) of the scrollbar in the completion window.
+# Type: Int
+c.completion.scrollbar.width = 16
+
+# Number of URLs to show in the web history. 0: no history / -1:
+# unlimited
+# Type: Int
c.completion.web_history.max_items = 1000
+
+# Directory to save downloads to. If unset, a sensible OS-specific
+# default is used.
+# Type: Directory
+c.downloads.location.directory = None
+
+# Prompt the user for the download location. If set to false,
+# `downloads.location.directory` will be used.
+# Type: Bool
+c.downloads.location.prompt = False
+
+# Remember the last used download directory.
+# Type: Bool
+c.downloads.location.remember = True
+
+# What to display in the download filename input.
+# Type: String
+# Valid values:
+# - path: Show only the download path.
+# - filename: Show only download filename.
+# - both: Show download path and filename.
+c.downloads.location.suggestion = 'both'
+
+# 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']
+
+# Where to show the downloaded files.
+# Type: VerticalPosition
+# Valid values:
+# - top
+# - bottom
+c.downloads.position = 'bottom'
+
+# Automatically abort insecure (HTTP) downloads originating from secure
+# (HTTPS) pages. For per-domain settings, the relevant URL is the URL
+# initiating the download, not the URL the download itself is coming
+# from. It's not recommended to set this setting to false globally.
+# Type: Bool
+c.downloads.prevent_mixed_content = True
+
+# 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 = ['konsole', '--separate', '-e', 'kak', '{file}']
+
+# Handler for selecting file(s) in forms. If `external`, then the
+# commands specified by `fileselect.single_file.command`,
+# `fileselect.multiple_files.command` and `fileselect.folder.command`
+# are used to select one file, multiple files, and folders,
+# respectively.
+# Type: String
+# Valid values:
+# - default: Use the default file selector.
+# - external: Use an external command.
+c.fileselect.handler = 'external'
+
+# Command (and arguments) to use for selecting a single file in forms.
+# The command should write the selected file path to the specified file
+# or stdout. The following placeholders are defined: * `{}`: Filename of
+# the file to be written to. If not contained in any argument, the
+# standard output of the command is read instead.
+# Type: ShellCommand
+c.fileselect.single_file.command = ['kitty', 'nnn', '-p', '-']
+
+# Command (and arguments) to use for selecting multiple files in forms.
+# The command should write the selected file paths to the specified file
+# or to stdout, separated by newlines. The following placeholders are
+# defined: * `{}`: Filename of the file to be written to. If not
+# contained in any argument, the standard output of the command is
+# read instead.
+# Type: ShellCommand
+c.fileselect.multiple_files.command = ['kitty', 'nnn', '-p', '-']
+
+# Command (and arguments) to use for selecting a single folder in forms.
+# The command should write the selected folder path to the specified
+# file or stdout. The following placeholders are defined: * `{}`:
+# Filename of the file to be written to. If not contained in any
+# argument, the standard output of the command is read instead.
+# Type: ShellCommand
+c.fileselect.folder.command = ['kitty', 'nnn', '-p', '-']
+
+# Minimum number of characters used for hint strings.
+# Type: Int
+c.hints.min_chars = 2
+
+# Scatter hint key chains (like Vimium) or not (like dwb). Ignored for
+# number hints.
+# Type: Bool
+c.hints.scatter = True
+
+# Automatically enter insert mode if an editable element is focused
+# after loading the page.
+# Type: Bool
c.input.insert_mode.auto_load = True
-c.new_instance_open_target = "tab-bg"
-## Key bindings
-#
-config.unbind('d')
-config.unbind('ga')
-config.unbind('+')
-config.unbind('-')
-config.bind ('gg', 'scroll-to-perc 0')
-config.bind ('ge', 'scroll-to-perc 100')
-config.bind ('gh', 'open duckduckgo.com')
-config.bind('dd', 'tab-close')
-config.bind('tda', 'tab-only')
-config.bind('tgg', 'tab-give 0')
-config.bind('tg1', 'tab-give 1')
-config.bind('tg2', 'tab-give 2')
-config.bind('tg3', 'tab-give 3')
-config.bind('tp', 'tab-pin')
-config.bind('E', 'edit-url')
-config.bind('eu', 'edit-url')
-config.bind('ttl', 'set tabs.position left')
-config.bind('ttr', 'set tabs.position right')
-config.bind('ttt', 'set tabs.position top')
-config.bind('ttb', 'set tabs.position bottom')
-config.bind('tw1', 'set tabs.width 48')
-config.bind('tw2', 'set tabs.width 96')
-config.bind('tw3', 'set tabs.width 160')
-config.bind('tw4', 'set tabs.width 240')
-config.bind('tw5', 'set tabs.width 320')
-config.bind('tw6', 'set tabs.width 480')
-config.unbind('<Ctrl-h>')
-config.bind('<Ctrl-h>', 'back')
-config.bind('<Ctrl-l>', 'forward')
-config.bind('<Alt-h>', 'home')
-config.bind('tG', 'home')
-config.bind('dlV', 'spawn -u yt-dlp-video {url}')
-config.bind('dlA', 'spawn -u yt-dlp-video {url}')
-config.bind('dlv', 'hint links userscript yt-dlp-video')
-config.bind('dla', 'hint links userscript yt-dlp-audio')
-config.bind(',m', 'spawn vlc {url}')
-config.bind(',M', 'hint links spawn vlc {hint-url}')
-config.bind('<Ctrl-+>', 'zoom-in')
-config.bind('<Ctrl-->', 'zoom-out')
+# Enter insert mode if an editable element is clicked.
+# Type: Bool
+c.input.insert_mode.auto_enter = True
+
+# Leave insert mode when starting a new page load. Patterns may be
+# unreliable on this setting, and they may match the url you are
+# navigating to, or the URL you are navigating from.
+# Type: Bool
+c.input.insert_mode.leave_on_load = True
+
+# Mode to change to when focusing on a tab/URL changes.
+# Type: String
+# Valid values:
+# - normal
+# - insert
+# - passthrough
+c.input.mode_override = 'normal'
+
+# When/how to show the scrollbar.
+# Type: String
+# Valid values:
+# - always: Always show the scrollbar.
+# - never: Never show the scrollbar.
+# - when-searching: Show the scrollbar when searching for text in the webpage. With the QtWebKit backend, this is equal to `never`.
+# - overlay: Show an overlay scrollbar. On macOS, this is unavailable and equal to `when-searching`; with the QtWebKit backend, this is equal to `never`. Enabling/disabling overlay scrollbars requires a restart.
+c.scrolling.bar = 'overlay'
+
+# Enable smooth scrolling for web pages. Note smooth scrolling does not
+# work with the `:scroll-px` command.
+# Type: Bool
+c.scrolling.smooth = True
+
+# When to show the statusbar.
+# Type: String
+# Valid values:
+# - always: Always show the statusbar.
+# - never: Always hide the statusbar.
+# - in-mode: Show the statusbar when in modes other than normal mode.
+c.statusbar.show = 'always'
+
+# List of widgets displayed in the statusbar.
+# Type: List of StatusbarWidget
+# Valid values:
+# - url: Current page URL.
+# - scroll: Percentage of the current page position like `10%`.
+# - scroll_raw: Raw percentage of the current page position like `10`.
+# - history: Display an arrow when possible to go back/forward in history.
+# - search_match: A match count when searching, e.g. `Match [2/10]`.
+# - tabs: Current active tab, e.g. `2`.
+# - keypress: Display pressed keys when composing a vi command.
+# - progress: Progress bar for the current page loading.
+# - text:foo: Display the static text after the colon, `foo` in the example.
+# - clock: Display current time. The format can be changed by adding a format string via `clock:...`. For supported format strings, see https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes[the Python datetime documentation].
+c.statusbar.widgets = ['url', 'progress', 'scroll']
+
+# Open new tabs (middleclick/ctrl+click) in the background.
+# Type: Bool
+c.tabs.background = True
-## Font config
-#
-c.fonts.completion.category = 'bold 12pt LiterationMono\ Nerd\ Font'
-c.fonts.completion.entry = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.downloads = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.hints = 'bold 12pt LiterationMono\ Nerd\ Font'
-c.fonts.keyhint = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.messages.error = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.messages.info = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.messages.warning = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.prompts = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.statusbar = '12pt LiterationMono\ Nerd\ Font'
-c.fonts.tabs.selected= '12pt LiterationMono\ Nerd\ Font'
-c.fonts.tabs.unselected= '12pt LiterationMono\ Nerd\ Font'
-
-## Tabs config
-#
-c.tabs.position = "left"
-c.tabs.indicator.width = 12
-c.tabs.favicons.show = "always"
+# Scaling factor for favicons in the tab bar. The tab size is unchanged,
+# so big favicons also require extra `tabs.padding`.
+# Type: Float
+c.tabs.favicons.scale = 1.0
+
+# When to show favicons in the tab bar. When switching this from never
+# to always/pinned, note that favicons might not be loaded yet, thus
+# tabs might require a reload to display them.
+# Type: String
+# Valid values:
+# - always: Always show favicons.
+# - never: Always hide favicons.
+# - pinned: Show favicons only on pinned tabs.
+c.tabs.favicons.show = 'always'
+
+# Padding (in pixels) around text for tabs.
+# Type: Padding
+c.tabs.padding = {'bottom': 4, 'left': 5, 'right': 5, 'top': 4}
+
+# Position of the tab bar.
+# Type: Position
+# Valid values:
+# - top
+# - bottom
+# - left
+# - right
+c.tabs.position = 'left'
+
+# Which tab to select when the focused tab is removed.
+# Type: SelectOnRemove
+# Valid values:
+# - prev: Select the tab which came before the closed one (left in horizontal, above in vertical).
+# - next: Select the tab which came after the closed one (right in horizontal, below in vertical).
+# - last-used: Select the previously selected tab.
c.tabs.select_on_remove = 'last-used'
-c.tabs.background = True
-## Color config
-#
-base00 = '#2a2e32' #black
-base01 = '#da4453' #red
-base02 = '#27ae60' #green
-base03 = '#fdbc4b' #yellow
-base04 = '#1d99f3' #blue
-base05 = '#9b59b6' #magenta
-base06 = '#1cdc9a' #cyan
-base07 = '#eff0f1' #white
-base08 = '#4d4d4d' #brightblack
-base09 = '#da4453' #brightred
-base0A = '#27ae60' #brightgreen
-base0B = '#fdbc4b' #brightyellow
-base0C = '#1d99f3' #brightblue
-base0D = '#9b59b6' #brightmagenta
-base0E = '#1cdc9a' #brightcyan
-base0F = '#fcfcfc' #brightwhite
-base10 = '#3b4045' #backgroundalternate1
+# Alignment of the text inside of tabs.
+# Type: TextAlignment
+# Valid values:
+# - left
+# - right
+# - center
+c.tabs.title.alignment = 'left'
+
+# Position of ellipsis in truncated title of tabs.
+# Type: ElidePosition
+# Valid values:
+# - left
+# - right
+# - middle
+# - none
+c.tabs.title.elide = 'right'
+
+# Format to use for the tab title. The following placeholders are
+# defined: * `{perc}`: Percentage as a string like `[10%]`. *
+# `{perc_raw}`: Raw percentage, e.g. `10`. * `{current_title}`: Title of
+# the current web page. * `{title_sep}`: The string `" - "` if a title
+# is set, empty otherwise. * `{index}`: Index of this tab. *
+# `{aligned_index}`: Index of this tab padded with spaces to have the
+# same width. * `{relative_index}`: Index of this tab relative to the
+# current tab. * `{id}`: Internal tab ID of this tab. * `{scroll_pos}`:
+# Page scroll position. * `{host}`: Host of the current web page. *
+# `{backend}`: Either `webkit` or `webengine` * `{private}`: Indicates
+# when private mode is enabled. * `{current_url}`: URL of the current
+# web page. * `{protocol}`: Protocol (http/https/...) of the current web
+# page. * `{audio}`: Indicator for audio/mute status.
+# Type: FormatString
+c.tabs.title.format = '{audio}{index}: {current_title}'
+
+# Format to use for the tab title for pinned tabs. The same placeholders
+# like for `tabs.title.format` are defined.
+# Type: FormatString
+c.tabs.title.format_pinned = '{audio}{index}: ** {current_title}'
+
+# Width (in pixels or as percentage of the window) of the tab bar if
+# it's vertical.
+# Type: PercOrInt
+c.tabs.width = 240
+
+# 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
+
+# Width (in pixels) of the progress indicator (0 to disable).
+# Type: Int
+c.tabs.indicator.width = 12
+
+# Padding (in pixels) for tab indicators.
+# Type: Padding
+c.tabs.indicator.padding = {'bottom': 1, 'left': 0, 'right': 6, 'top': 1}
+
+# Shrink pinned tabs down to their contents.
+# Type: Bool
+c.tabs.pinned.shrink = True
+
+# Number of closed tabs (per window) and closed windows to remember for
+# :undo (-1 for no maximum).
+# Type: Int
+c.tabs.undo_stack_size = 50
+
+# Hide the window decoration. This setting requires a restart on
+# Wayland.
+# Type: Bool
+c.window.hide_decoration = False
+
+# Default zoom level.
+# Type: Perc
+c.zoom.default = '123%'
+
+# Number of zoom increments to divide the mouse wheel movements to.
+# Type: Int
+c.zoom.mouse_divider = 1024
# Text color of the completion widget. May be a single color to use for
# all columns or a list of three colors, one for each column.
-c.colors.completion.fg = base07
+# Type: List of QtColor, or QtColor
+c.colors.completion.fg = '#eff0f1'
# Background color of the completion widget for odd rows.
-c.colors.completion.odd.bg = base10
+# Type: QssColor
+c.colors.completion.odd.bg = '#3b4045'
# Background color of the completion widget for even rows.
-c.colors.completion.even.bg = base00
+# Type: QssColor
+c.colors.completion.even.bg = '#2a2e32'
# Foreground color of completion widget category headers.
-c.colors.completion.category.fg = base04
+# Type: QtColor
+c.colors.completion.category.fg = '#1d99f3'
# Background color of the completion widget category headers.
-c.colors.completion.category.bg = base00
+# Type: QssColor
+c.colors.completion.category.bg = '#2a2e32'
# Top border color of the completion widget category headers.
-c.colors.completion.category.border.top = base00
+# Type: QssColor
+c.colors.completion.category.border.top = '#2a2e32'
# Bottom border color of the completion widget category headers.
-c.colors.completion.category.border.bottom = base00
+# Type: QssColor
+c.colors.completion.category.border.bottom = '#2a2e32'
# Foreground color of the selected completion item.
-c.colors.completion.item.selected.fg = base0F
+# Type: QtColor
+c.colors.completion.item.selected.fg = '#fcfcfc'
# Background color of the selected completion item.
-c.colors.completion.item.selected.bg = base04
+# Type: QssColor
+c.colors.completion.item.selected.bg = '#1d99f3'
-# Top border color of the completion widget category headers.
-c.colors.completion.item.selected.border.top = base10
+# Top border color of the selected completion item.
+# Type: QssColor
+c.colors.completion.item.selected.border.top = '#3b4045'
# Bottom border color of the selected completion item.
-c.colors.completion.item.selected.border.bottom = base10
+# Type: QssColor
+c.colors.completion.item.selected.border.bottom = '#3b4045'
# Foreground color of the matched text in the selected completion item.
-c.colors.completion.item.selected.match.fg = base10
+# Type: QtColor
+c.colors.completion.item.selected.match.fg = '#3b4045'
# Foreground color of the matched text in the completion.
-c.colors.completion.match.fg = base0B
+# Type: QtColor
+c.colors.completion.match.fg = '#fdbc4b'
# Color of the scrollbar handle in the completion view.
-c.colors.completion.scrollbar.fg = base05
+# Type: QssColor
+c.colors.completion.scrollbar.fg = '#9b59b6'
# Color of the scrollbar in the completion view.
-c.colors.completion.scrollbar.bg = base00
+# Type: QssColor
+c.colors.completion.scrollbar.bg = '#2a2e32'
# Background color for the download bar.
-c.colors.downloads.bar.bg = base00
+# Type: QssColor
+c.colors.downloads.bar.bg = '#2a2e32'
# Color gradient start for download text.
-c.colors.downloads.start.fg = base00
+# Type: QtColor
+c.colors.downloads.start.fg = '#2a2e32'
# Color gradient start for download backgrounds.
-c.colors.downloads.start.bg = base0D
+# Type: QtColor
+c.colors.downloads.start.bg = '#9b59b6'
# Color gradient end for download text.
-c.colors.downloads.stop.fg = base00
+# Type: QtColor
+c.colors.downloads.stop.fg = '#2a2e32'
# Color gradient stop for download backgrounds.
-c.colors.downloads.stop.bg = base0C
-
-# Background color for downloads with errors.
-c.colors.downloads.error.bg = base00
+# Type: QtColor
+c.colors.downloads.stop.bg = '#1d99f3'
# Foreground color for downloads with errors.
-c.colors.downloads.error.fg = base02
+# Type: QtColor
+c.colors.downloads.error.fg = '#27ae60'
+
+# Background color for downloads with errors.
+# Type: QtColor
+c.colors.downloads.error.bg = '#2a2e32'
# Font color for hints.
-c.colors.hints.fg = base03
+# Type: QssColor
+c.colors.hints.fg = '#fdbc4b'
# Background color for hints. Note that you can use a `rgba(...)` value
# for transparency.
-c.colors.hints.bg = base08
+# Type: QssColor
+c.colors.hints.bg = '#4d4d4d'
# Font color for the matched part of hints.
-c.colors.hints.match.fg = base05
+# Type: QtColor
+c.colors.hints.match.fg = '#9b59b6'
# Text color for the keyhint widget.
-c.colors.keyhint.fg = base05
+# Type: QssColor
+c.colors.keyhint.fg = '#9b59b6'
# Highlight color for keys to complete the current keychain.
-c.colors.keyhint.suffix.fg = base05
+# Type: QssColor
+c.colors.keyhint.suffix.fg = '#9b59b6'
# Background color of the keyhint widget.
-c.colors.keyhint.bg = base00
+# Type: QssColor
+c.colors.keyhint.bg = '#2a2e32'
# Foreground color of an error message.
-c.colors.messages.error.fg = base00
+# Type: QssColor
+c.colors.messages.error.fg = '#2a2e32'
# Background color of an error message.
-c.colors.messages.error.bg = base01
+# Type: QssColor
+c.colors.messages.error.bg = '#da4453'
# Border color of an error message.
-c.colors.messages.error.border = base01
+# Type: QssColor
+c.colors.messages.error.border = '#da4453'
# Foreground color of a warning message.
-c.colors.messages.warning.fg = base09
+# Type: QssColor
+c.colors.messages.warning.fg = '#da4453'
# Background color of a warning message.
-c.colors.messages.warning.bg = base03
+# Type: QssColor
+c.colors.messages.warning.bg = '#fdbc4b'
# Border color of a warning message.
-c.colors.messages.warning.border = base03
+# Type: QssColor
+c.colors.messages.warning.border = '#fdbc4b'
# Foreground color of an info message.
-c.colors.messages.info.fg = base0F
+# Type: QssColor
+c.colors.messages.info.fg = '#fcfcfc'
# Background color of an info message.
-c.colors.messages.info.bg = base02
+# Type: QssColor
+c.colors.messages.info.bg = '#27ae60'
# Border color of an info message.
-c.colors.messages.info.border = base02
+# Type: QssColor
+c.colors.messages.info.border = '#27ae60'
# Foreground color for prompts.
-c.colors.prompts.fg = base05
+# Type: QssColor
+c.colors.prompts.fg = '#9b59b6'
# Border used around UI elements in prompts.
-c.colors.prompts.border = base00
+# Type: String
+c.colors.prompts.border = '#2a2e32'
# Background color for prompts.
-c.colors.prompts.bg = base00
+# Type: QssColor
+c.colors.prompts.bg = '#2a2e32'
# Background color for the selected item in filename prompts.
-c.colors.prompts.selected.bg = base10
+# Type: QssColor
+c.colors.prompts.selected.bg = '#3b4045'
# Foreground color of the statusbar.
-c.colors.statusbar.normal.fg = base0B
+# Type: QssColor
+c.colors.statusbar.normal.fg = '#fdbc4b'
# Background color of the statusbar.
-c.colors.statusbar.normal.bg = base00
+# Type: QssColor
+c.colors.statusbar.normal.bg = '#2a2e32'
# Foreground color of the statusbar in insert mode.
-c.colors.statusbar.insert.fg = base00
+# Type: QssColor
+c.colors.statusbar.insert.fg = '#2a2e32'
# Background color of the statusbar in insert mode.
-c.colors.statusbar.insert.bg = base0D
+# Type: QssColor
+c.colors.statusbar.insert.bg = '#9b59b6'
# Foreground color of the statusbar in passthrough mode.
-c.colors.statusbar.passthrough.fg = base00
+# Type: QssColor
+c.colors.statusbar.passthrough.fg = '#2a2e32'
# Background color of the statusbar in passthrough mode.
-c.colors.statusbar.passthrough.bg = base0C
+# Type: QssColor
+c.colors.statusbar.passthrough.bg = '#1d99f3'
# Foreground color of the statusbar in private browsing mode.
-c.colors.statusbar.private.fg = base05
+# Type: QssColor
+c.colors.statusbar.private.fg = '#9b59b6'
# Background color of the statusbar in private browsing mode.
-c.colors.statusbar.private.bg = base00
+# Type: QssColor
+c.colors.statusbar.private.bg = '#2a2e32'
# Foreground color of the statusbar in command mode.
-c.colors.statusbar.command.fg = base0F
+# Type: QssColor
+c.colors.statusbar.command.fg = '#fcfcfc'
# Background color of the statusbar in command mode.
-c.colors.statusbar.command.bg = base04
+# Type: QssColor
+c.colors.statusbar.command.bg = '#1d99f3'
# Foreground color of the statusbar in private browsing + command mode.
-c.colors.statusbar.command.private.fg = base05
+# Type: QssColor
+c.colors.statusbar.command.private.fg = '#9b59b6'
# Background color of the statusbar in private browsing + command mode.
-c.colors.statusbar.command.private.bg = base00
+# Type: QssColor
+c.colors.statusbar.command.private.bg = '#2a2e32'
# Foreground color of the statusbar in caret mode.
-c.colors.statusbar.caret.fg = base00
+# Type: QssColor
+c.colors.statusbar.caret.fg = '#2a2e32'
# Background color of the statusbar in caret mode.
-c.colors.statusbar.caret.bg = base0E
+# Type: QssColor
+c.colors.statusbar.caret.bg = '#1cdc9a'
# Foreground color of the statusbar in caret mode with a selection.
-c.colors.statusbar.caret.selection.fg = base00
+# Type: QssColor
+c.colors.statusbar.caret.selection.fg = '#2a2e32'
# Background color of the statusbar in caret mode with a selection.
-c.colors.statusbar.caret.selection.bg = base0D
+# Type: QssColor
+c.colors.statusbar.caret.selection.bg = '#9b59b6'
# Background color of the progress bar.
-c.colors.statusbar.progress.bg = base0B
+# Type: QssColor
+c.colors.statusbar.progress.bg = '#fdbc4b'
# Default foreground color of the URL in the statusbar.
-c.colors.statusbar.url.fg = base05
+# Type: QssColor
+c.colors.statusbar.url.fg = '#9b59b6'
# Foreground color of the URL in the statusbar on error.
-c.colors.statusbar.url.error.fg = base10
+# Type: QssColor
+c.colors.statusbar.url.error.fg = '#3b4045'
# Foreground color of the URL in the statusbar for hovered links.
-c.colors.statusbar.url.hover.fg = base05
+# Type: QssColor
+c.colors.statusbar.url.hover.fg = '#9b59b6'
# Foreground color of the URL in the statusbar on successful load
# (http).
-c.colors.statusbar.url.success.http.fg = base0C
+# Type: QssColor
+c.colors.statusbar.url.success.http.fg = '#1d99f3'
# Foreground color of the URL in the statusbar on successful load
# (https).
-c.colors.statusbar.url.success.https.fg = base0F
+# Type: QssColor
+c.colors.statusbar.url.success.https.fg = '#fcfcfc'
# Foreground color of the URL in the statusbar when there's a warning.
-c.colors.statusbar.url.warn.fg = base01
+# Type: QssColor
+c.colors.statusbar.url.warn.fg = '#da4453'
# Background color of the tab bar.
-c.colors.tabs.bar.bg = base00
+# Type: QssColor
+c.colors.tabs.bar.bg = '#2a2e32'
# Color gradient start for the tab indicator.
-c.colors.tabs.indicator.start = base03
+# Type: QtColor
+c.colors.tabs.indicator.start = '#fdbc4b'
# Color gradient end for the tab indicator.
-c.colors.tabs.indicator.stop = base02
+# Type: QtColor
+c.colors.tabs.indicator.stop = '#27ae60'
# Color for the tab indicator on errors.
-c.colors.tabs.indicator.error = base01
+# Type: QtColor
+c.colors.tabs.indicator.error = '#da4453'
+
+# Color gradient interpolation system for the tab indicator.
+# Type: ColorSystem
+# Valid values:
+# - rgb: Interpolate in the RGB color system.
+# - hsv: Interpolate in the HSV color system.
+# - hsl: Interpolate in the HSL color system.
+# - none: Don't show a gradient.
+c.colors.tabs.indicator.system = 'rgb'
# Foreground color of unselected odd tabs.
-c.colors.tabs.odd.fg = base07
+# Type: QtColor
+c.colors.tabs.odd.fg = '#eff0f1'
# Background color of unselected odd tabs.
-c.colors.tabs.odd.bg = base10
+# Type: QtColor
+c.colors.tabs.odd.bg = '#3b4045'
# Foreground color of unselected even tabs.
-c.colors.tabs.even.fg = base07
+# Type: QtColor
+c.colors.tabs.even.fg = '#eff0f1'
# Background color of unselected even tabs.
-c.colors.tabs.even.bg = base00
+# Type: QtColor
+c.colors.tabs.even.bg = '#2a2e32'
-# Background color of pinned unselected even tabs.
-c.colors.tabs.pinned.even.bg = base03
+# Foreground color of selected odd tabs.
+# Type: QtColor
+c.colors.tabs.selected.odd.fg = '#eff0f1'
-# Foreground color of pinned unselected even tabs.
-c.colors.tabs.pinned.even.fg = base00
+# Background color of selected odd tabs.
+# Type: QtColor
+c.colors.tabs.selected.odd.bg = '#1d99f3'
-# Background color of pinned unselected odd tabs.
-c.colors.tabs.pinned.odd.bg = base03
+# Foreground color of selected even tabs.
+# Type: QtColor
+c.colors.tabs.selected.even.fg = '#eff0f1'
+
+# Background color of selected even tabs.
+# Type: QtColor
+c.colors.tabs.selected.even.bg = '#1d99f3'
# Foreground color of pinned unselected odd tabs.
-c.colors.tabs.pinned.odd.fg = base00
+# Type: QtColor
+c.colors.tabs.pinned.odd.fg = '#2a2e32'
-# Background color of pinned selected even tabs.
-c.colors.tabs.pinned.selected.even.bg = base03
+# Background color of pinned unselected odd tabs.
+# Type: QtColor
+c.colors.tabs.pinned.odd.bg = '#fdbc4b'
-# Foreground color of pinned selected even tabs.
-c.colors.tabs.pinned.selected.even.fg = base04
+# Foreground color of pinned unselected even tabs.
+# Type: QtColor
+c.colors.tabs.pinned.even.fg = '#2a2e32'
-# Background color of pinned selected odd tabs.
-c.colors.tabs.pinned.selected.odd.bg = base03
+# Background color of pinned unselected even tabs.
+# Type: QtColor
+c.colors.tabs.pinned.even.bg = '#fdbc4b'
# Foreground color of pinned selected odd tabs.
-c.colors.tabs.pinned.selected.odd.fg = base04
+# Type: QtColor
+c.colors.tabs.pinned.selected.odd.fg = '#1d99f3'
-# Foreground color of selected odd tabs.
-c.colors.tabs.selected.odd.fg = base07
-
-# Background color of selected odd tabs.
-c.colors.tabs.selected.odd.bg = base04
+# Background color of pinned selected odd tabs.
+# Type: QtColor
+c.colors.tabs.pinned.selected.odd.bg = '#fdbc4b'
-# Foreground color of selected even tabs.
-c.colors.tabs.selected.even.fg = base07
+# Foreground color of pinned selected even tabs.
+# Type: QtColor
+c.colors.tabs.pinned.selected.even.fg = '#1d99f3'
-# Background color of selected even tabs.
-c.colors.tabs.selected.even.bg = base04
+# Background color of pinned selected even tabs.
+# Type: QtColor
+c.colors.tabs.pinned.selected.even.bg = '#fdbc4b'
# Background color for webpages if unset (or empty to use the theme's
# color).
-# c.colors.webpage.bg = base00
+# Type: QtColor
+c.colors.webpage.bg = 'white'
+
+# 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.
+# - "With increased text contrast": Set
+# `colors.webpage.darkmode.increase_text_contrast` (QtWebEngine 6.3+)
+# Type: Bool
+c.colors.webpage.darkmode.enabled = False
+
+# Default font families to use. Whenever "default_family" is used in a
+# font setting, it's replaced with the fonts listed here. If set to an
+# empty value, a system-specific monospace default is used.
+# Type: List of Font, or Font
+c.fonts.default_family = '12pt LiterationMono Nerd Font'
+
+# 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 = '12pt'
+
+# Font used in the completion widget.
+# Type: Font
+c.fonts.completion.entry = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used in the completion categories.
+# Type: Font
+c.fonts.completion.category = 'bold 12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for tooltips. If set to null, the Qt default is used.
+# Type: Font
+c.fonts.tooltip = '12pt LiterationMono Nerd Font'
+
+# Font used for the context menu. If set to null, the Qt default is
+# used.
+# Type: Font
+c.fonts.contextmenu = '12pt LiterationMono Nerd Font'
+
+# Font used for the debugging console.
+# Type: Font
+c.fonts.debug_console = 'default_size default_family'
+
+# Font used for the downloadbar.
+# Type: Font
+c.fonts.downloads = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for the hints.
+# Type: Font
+c.fonts.hints = 'bold 12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used in the keyhint widget.
+# Type: Font
+c.fonts.keyhint = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for error messages.
+# Type: Font
+c.fonts.messages.error = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for info messages.
+# Type: Font
+c.fonts.messages.info = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for warning messages.
+# Type: Font
+c.fonts.messages.warning = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for prompts.
+# Type: Font
+c.fonts.prompts = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used in the statusbar.
+# Type: Font
+c.fonts.statusbar = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for selected tabs.
+# Type: Font
+c.fonts.tabs.selected = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font used for unselected tabs.
+# Type: Font
+c.fonts.tabs.unselected = '12pt LiterationMono\\ Nerd\\ Font'
+
+# Font family for standard fonts.
+# Type: FontFamily
+c.fonts.web.family.standard = 'Noto Sans'
+
+# Font family for fixed fonts.
+# Type: FontFamily
+c.fonts.web.family.fixed = 'LiterationMono Nerd Font'
+
+# Font family for serif fonts.
+# Type: FontFamily
+c.fonts.web.family.serif = 'Noto Serif'
+
+# Font family for sans-serif fonts.
+# Type: FontFamily
+c.fonts.web.family.sans_serif = 'Noto Sans'
+
+# Font family for cursive fonts.
+# Type: FontFamily
+c.fonts.web.family.cursive = 'Noto Sans Old Italic'
+
+# Font family for fantasy fonts.
+# Type: FontFamily
+c.fonts.web.family.fantasy = 'FantasqueSansM Nerd Font'
+
+# Default font size (in pixels) for regular text.
+# Type: Int
+c.fonts.web.size.default = 15
+
+# Default font size (in pixels) for fixed-pitch text.
+# Type: Int
+c.fonts.web.size.default_fixed = 15
+
+# Hard minimum font size (in pixels).
+# Type: Int
+c.fonts.web.size.minimum = 6
+
+# Minimum logical font size (in pixels) that is applied when zooming
+# out.
+# Type: Int
+c.fonts.web.size.minimum_logical = 7
+
+# Bindings for normal mode
+config.bind("'gh'", "'open duckduckgo.com'")
+config.unbind('+')
+config.bind(',M', 'hint links spawn vlc {hint-url}')
+config.bind(',m', 'spawn vlc {url}')
+config.unbind('-')
+config.bind('<Alt+h>', 'home')
+config.bind('<Ctrl++>', 'zoom-in')
+config.bind('<Ctrl+->', 'zoom-out')
+config.bind('<Ctrl+h>', 'back')
+config.bind('<Ctrl+l>', 'forward')
+config.bind('<Shift+PgDown>', 'scroll-page 0 +0.75')
+config.bind('<Shift+PgUp>', 'scroll-page 0 -0.75')
+config.bind('Ctrl-+', 'zoom-in')
+config.bind('Ctrl--', 'zoom-out')
+config.bind('E', 'edit-url')
+config.unbind('d')
+config.bind('dd', 'tab-close')
+config.bind('dlA', 'spawn -u yt-dlp-video {url}')
+config.bind('dlV', 'spawn -u yt-dlp-video {url}')
+config.bind('dla', 'hint links userscript yt-dlp-audio')
+config.bind('dlv', 'hint links userscript yt-dlp-video')
+config.bind('eu', 'edit-url')
+config.unbind('ga')
+config.bind('ge', 'scroll-to-perc 100')
+config.bind('gg', 'scroll-to-perc 0')
+config.bind('gh', 'open duckduckgo.com')
+config.bind('pw', 'spawn --userscript qute-keepassxc --key 285D16B66B11BD45BFD57B6CB22C3113D0E83104')
+config.bind('tG', 'home')
+config.bind('tda', 'tab-only')
+config.bind('tg1', 'tab-give 1')
+config.bind('tg2', 'tab-give 2')
+config.bind('tg3', 'tab-give 3')
+config.bind('tgg', 'tab-give 0')
+config.bind('tp', 'tab-pin')
+config.bind('ttb', 'set tabs.position bottom')
+config.bind('ttl', 'set tabs.position left')
+config.bind('ttr', 'set tabs.position right')
+config.bind('ttt', 'set tabs.position top')
+config.bind('tw1', 'set tabs.width 48')
+config.bind('tw2', 'set tabs.width 96')
+config.bind('tw3', 'set tabs.width 160')
+config.bind('tw4', 'set tabs.width 240')
+config.bind('tw5', 'set tabs.width 320')
+config.bind('tw6', 'set tabs.width 480')
+
+# Bindings for insert mode
+config.bind('<Alt+Shift+u>', 'spawn --userscript qute-keepassxc --key 285D16B66B11BD45BFD57B6CB22C3113D0E83104', mode='insert')
--- /dev/null
+import subprocess
+config.load_autoconfig()
+
+## testing
+#
+config.bind('<Alt-Shift-u>', 'spawn --userscript qute-keepassxc --key 285D16B66B11BD45BFD57B6CB22C3113D0E83104', mode='insert')
+config.bind('pw', 'spawn --userscript qute-keepassxc --key 285D16B66B11BD45BFD57B6CB22C3113D0E83104', mode='normal')
+
+## Generic
+#
+c.auto_save.session = True
+c.session.lazy_restore = True
+c.content.fullscreen.window = True
+c.content.notifications.enabled = True
+c.content.cookies.accept = 'no-3rdparty'
+c.content.blocking.whitelist = ["piwik.org"]
+c.downloads.position = "bottom"
+c.editor.command = ["konsole", "--separate", "-e", "kak", "{file}"]
+c.statusbar.widgets = ["url", "progress", "scroll"]
+c.zoom.default = "123%"
+c.completion.web_history.max_items = 1000
+c.input.insert_mode.auto_load = True
+c.new_instance_open_target = "tab-bg"
+
+## Key bindings
+#
+config.unbind('d')
+config.unbind('ga')
+config.unbind('+')
+config.unbind('-')
+config.bind ('gg', 'scroll-to-perc 0')
+config.bind ('ge', 'scroll-to-perc 100')
+config.bind ('gh', 'open duckduckgo.com')
+config.bind('dd', 'tab-close')
+config.bind('tda', 'tab-only')
+config.bind('tgg', 'tab-give 0')
+config.bind('tg1', 'tab-give 1')
+config.bind('tg2', 'tab-give 2')
+config.bind('tg3', 'tab-give 3')
+config.bind('tp', 'tab-pin')
+config.bind('E', 'edit-url')
+config.bind('eu', 'edit-url')
+config.bind('ttl', 'set tabs.position left')
+config.bind('ttr', 'set tabs.position right')
+config.bind('ttt', 'set tabs.position top')
+config.bind('ttb', 'set tabs.position bottom')
+config.bind('tw1', 'set tabs.width 48')
+config.bind('tw2', 'set tabs.width 96')
+config.bind('tw3', 'set tabs.width 160')
+config.bind('tw4', 'set tabs.width 240')
+config.bind('tw5', 'set tabs.width 320')
+config.bind('tw6', 'set tabs.width 480')
+config.unbind('<Ctrl-h>')
+config.bind('<Ctrl-h>', 'back')
+config.bind('<Ctrl-l>', 'forward')
+config.bind('<Alt-h>', 'home')
+config.bind('tG', 'home')
+config.bind('dlV', 'spawn -u yt-dlp-video {url}')
+config.bind('dlA', 'spawn -u yt-dlp-video {url}')
+config.bind('dlv', 'hint links userscript yt-dlp-video')
+config.bind('dla', 'hint links userscript yt-dlp-audio')
+config.bind(',m', 'spawn vlc {url}')
+config.bind(',M', 'hint links spawn vlc {hint-url}')
+config.bind('<Ctrl-+>', 'zoom-in')
+config.bind('<Ctrl-->', 'zoom-out')
+config.bind('<Shift-PgUp>', 'scroll-page 0 -0.75')
+config.bind('<Shift-PgDown>', 'scroll-page 0 +0.75')
+
+## Font config
+#
+c.fonts.completion.category = 'bold 12pt LiterationMono\ Nerd\ Font'
+c.fonts.completion.entry = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.downloads = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.hints = 'bold 12pt LiterationMono\ Nerd\ Font'
+c.fonts.keyhint = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.messages.error = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.messages.info = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.messages.warning = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.prompts = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.statusbar = '12pt LiterationMono\ Nerd\ Font'
+c.fonts.tabs.selected= '12pt LiterationMono\ Nerd\ Font'
+c.fonts.tabs.unselected= '12pt LiterationMono\ Nerd\ Font'
+
+## Tabs config
+#
+c.tabs.position = "left"
+c.tabs.indicator.width = 12
+c.tabs.favicons.show = "always"
+c.tabs.select_on_remove = 'last-used'
+c.tabs.background = True
+
+## Color config
+#
+base00 = '#2a2e32' #black
+base01 = '#da4453' #red
+base02 = '#27ae60' #green
+base03 = '#fdbc4b' #yellow
+base04 = '#1d99f3' #blue
+base05 = '#9b59b6' #magenta
+base06 = '#1cdc9a' #cyan
+base07 = '#eff0f1' #white
+base08 = '#4d4d4d' #brightblack
+base09 = '#da4453' #brightred
+base0A = '#27ae60' #brightgreen
+base0B = '#fdbc4b' #brightyellow
+base0C = '#1d99f3' #brightblue
+base0D = '#9b59b6' #brightmagenta
+base0E = '#1cdc9a' #brightcyan
+base0F = '#fcfcfc' #brightwhite
+base10 = '#3b4045' #backgroundalternate1
+
+# Text color of the completion widget. May be a single color to use for
+# all columns or a list of three colors, one for each column.
+c.colors.completion.fg = base07
+
+# Background color of the completion widget for odd rows.
+c.colors.completion.odd.bg = base10
+
+# Background color of the completion widget for even rows.
+c.colors.completion.even.bg = base00
+
+# Foreground color of completion widget category headers.
+c.colors.completion.category.fg = base04
+
+# Background color of the completion widget category headers.
+c.colors.completion.category.bg = base00
+
+# Top border color of the completion widget category headers.
+c.colors.completion.category.border.top = base00
+
+# Bottom border color of the completion widget category headers.
+c.colors.completion.category.border.bottom = base00
+
+# Foreground color of the selected completion item.
+c.colors.completion.item.selected.fg = base0F
+
+# Background color of the selected completion item.
+c.colors.completion.item.selected.bg = base04
+
+# Top border color of the completion widget category headers.
+c.colors.completion.item.selected.border.top = base10
+
+# Bottom border color of the selected completion item.
+c.colors.completion.item.selected.border.bottom = base10
+
+# Foreground color of the matched text in the selected completion item.
+c.colors.completion.item.selected.match.fg = base10
+
+# Foreground color of the matched text in the completion.
+c.colors.completion.match.fg = base0B
+
+# Color of the scrollbar handle in the completion view.
+c.colors.completion.scrollbar.fg = base05
+
+# Color of the scrollbar in the completion view.
+c.colors.completion.scrollbar.bg = base00
+
+# Background color for the download bar.
+c.colors.downloads.bar.bg = base00
+
+# Color gradient start for download text.
+c.colors.downloads.start.fg = base00
+
+# Color gradient start for download backgrounds.
+c.colors.downloads.start.bg = base0D
+
+# Color gradient end for download text.
+c.colors.downloads.stop.fg = base00
+
+# Color gradient stop for download backgrounds.
+c.colors.downloads.stop.bg = base0C
+
+# Background color for downloads with errors.
+c.colors.downloads.error.bg = base00
+
+# Foreground color for downloads with errors.
+c.colors.downloads.error.fg = base02
+
+# Font color for hints.
+c.colors.hints.fg = base03
+
+# Background color for hints. Note that you can use a `rgba(...)` value
+# for transparency.
+c.colors.hints.bg = base08
+
+# Font color for the matched part of hints.
+c.colors.hints.match.fg = base05
+
+# Text color for the keyhint widget.
+c.colors.keyhint.fg = base05
+
+# Highlight color for keys to complete the current keychain.
+c.colors.keyhint.suffix.fg = base05
+
+# Background color of the keyhint widget.
+c.colors.keyhint.bg = base00
+
+# Foreground color of an error message.
+c.colors.messages.error.fg = base00
+
+# Background color of an error message.
+c.colors.messages.error.bg = base01
+
+# Border color of an error message.
+c.colors.messages.error.border = base01
+
+# Foreground color of a warning message.
+c.colors.messages.warning.fg = base09
+
+# Background color of a warning message.
+c.colors.messages.warning.bg = base03
+
+# Border color of a warning message.
+c.colors.messages.warning.border = base03
+
+# Foreground color of an info message.
+c.colors.messages.info.fg = base0F
+
+# Background color of an info message.
+c.colors.messages.info.bg = base02
+
+# Border color of an info message.
+c.colors.messages.info.border = base02
+
+# Foreground color for prompts.
+c.colors.prompts.fg = base05
+
+# Border used around UI elements in prompts.
+c.colors.prompts.border = base00
+
+# Background color for prompts.
+c.colors.prompts.bg = base00
+
+# Background color for the selected item in filename prompts.
+c.colors.prompts.selected.bg = base10
+
+# Foreground color of the statusbar.
+c.colors.statusbar.normal.fg = base0B
+
+# Background color of the statusbar.
+c.colors.statusbar.normal.bg = base00
+
+# Foreground color of the statusbar in insert mode.
+c.colors.statusbar.insert.fg = base00
+
+# Background color of the statusbar in insert mode.
+c.colors.statusbar.insert.bg = base0D
+
+# Foreground color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.fg = base00
+
+# Background color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.bg = base0C
+
+# Foreground color of the statusbar in private browsing mode.
+c.colors.statusbar.private.fg = base05
+
+# Background color of the statusbar in private browsing mode.
+c.colors.statusbar.private.bg = base00
+
+# Foreground color of the statusbar in command mode.
+c.colors.statusbar.command.fg = base0F
+
+# Background color of the statusbar in command mode.
+c.colors.statusbar.command.bg = base04
+
+# Foreground color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.fg = base05
+
+# Background color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.bg = base00
+
+# Foreground color of the statusbar in caret mode.
+c.colors.statusbar.caret.fg = base00
+
+# Background color of the statusbar in caret mode.
+c.colors.statusbar.caret.bg = base0E
+
+# Foreground color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.fg = base00
+
+# Background color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.bg = base0D
+
+# Background color of the progress bar.
+c.colors.statusbar.progress.bg = base0B
+
+# Default foreground color of the URL in the statusbar.
+c.colors.statusbar.url.fg = base05
+
+# Foreground color of the URL in the statusbar on error.
+c.colors.statusbar.url.error.fg = base10
+
+# Foreground color of the URL in the statusbar for hovered links.
+c.colors.statusbar.url.hover.fg = base05
+
+# Foreground color of the URL in the statusbar on successful load
+# (http).
+c.colors.statusbar.url.success.http.fg = base0C
+
+# Foreground color of the URL in the statusbar on successful load
+# (https).
+c.colors.statusbar.url.success.https.fg = base0F
+
+# Foreground color of the URL in the statusbar when there's a warning.
+c.colors.statusbar.url.warn.fg = base01
+
+# Background color of the tab bar.
+c.colors.tabs.bar.bg = base00
+
+# Color gradient start for the tab indicator.
+c.colors.tabs.indicator.start = base03
+
+# Color gradient end for the tab indicator.
+c.colors.tabs.indicator.stop = base02
+
+# Color for the tab indicator on errors.
+c.colors.tabs.indicator.error = base01
+
+# Foreground color of unselected odd tabs.
+c.colors.tabs.odd.fg = base07
+
+# Background color of unselected odd tabs.
+c.colors.tabs.odd.bg = base10
+
+# Foreground color of unselected even tabs.
+c.colors.tabs.even.fg = base07
+
+# Background color of unselected even tabs.
+c.colors.tabs.even.bg = base00
+
+# Background color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.bg = base03
+
+# Foreground color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.fg = base00
+
+# Background color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.bg = base03
+
+# Foreground color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.fg = base00
+
+# Background color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.bg = base03
+
+# Foreground color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.fg = base04
+
+# Background color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.bg = base03
+
+# Foreground color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.fg = base04
+
+# Foreground color of selected odd tabs.
+c.colors.tabs.selected.odd.fg = base07
+
+# Background color of selected odd tabs.
+c.colors.tabs.selected.odd.bg = base04
+
+# Foreground color of selected even tabs.
+c.colors.tabs.selected.even.fg = base07
+
+# Background color of selected even tabs.
+c.colors.tabs.selected.even.bg = base04
+
+# Background color for webpages if unset (or empty to use the theme's
+# color).
+# c.colors.webpage.bg = base00