## general aliases: default: w: session-save q: close qa: quit wq: quit --save wqa: quit --save type: name: Dict keytype: name: String forbidden: ' ' valtype: Command none_ok: true desc: >- Aliases for commands. The keys of the given dictionary are the aliases, while the values are the commands they map to. confirm_quit: type: ConfirmQuit default: [never] desc: Require a confirmation before quitting the application. history_gap_interval: type: Int default: 30 desc: >- Maximum time (in minutes) between two history items for them to be considered being from the same browsing session. Items with less time between them are grouped when being displayed in `:history`. Use -1 to disable separation. changelog_after_upgrade: type: name: 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. default: minor desc: When to show a changelog after qutebrowser was upgraded. ignore_case: renamed: search.ignore_case search.ignore_case: type: IgnoreCase default: smart desc: When to find text on a page case-insensitively. search.incremental: type: Bool default: true desc: >- Find text on a page incrementally, renewing the search for each typed character. search.wrap: type: Bool default: true backend: QtWebEngine: Qt 5.14 QtWebKit: true desc: >- Wrap around at the top and bottom of the page when advancing through text matches using `:search-next` and `:search-prev`. new_instance_open_target: type: name: 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. default: tab desc: >- 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. new_instance_open_target_window: type: name: String valid_values: - first-opened: Open new tabs in the first (oldest) opened window. - last-opened: Open new tabs in the last (newest) opened window. - last-focused: Open new tabs in the most recently focused window. - last-visible: Open new tabs in the most recently visible window. default: last-focused desc: >- Which window to choose when opening links as new tabs. When `new_instance_open_target` is set to `window`, this is ignored. session_default_name: renamed: session.default_name session.default_name: type: name: SessionName none_ok: true default: null desc: >- Name of the session to save by default. If this is set to null, the session which was last loaded is saved. session.lazy_restore: type: Bool default: false desc: Load a restored tab as soon as it takes focus. backend: type: name: String valid_values: - webengine: "Use QtWebEngine (based on Chromium - recommended)." - webkit: "Use QtWebKit (based on WebKit, similar to Safari - many known security issues!)." default: webengine restart: true desc: >- 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. ## qt qt_args: renamed: qt.args qt.args: type: name: List valtype: String none_ok: true default: [] restart: true desc: >- Additional arguments to pass to Qt, without leading `--`. With QtWebEngine, some Chromium arguments (see https://peter.sh/experiments/chromium-command-line-switches/ for a list) will work. qt.environ: type: name: Dict keytype: String valtype: name: String none_ok: true none_ok: true default: {} restart: true desc: >- Additional environment variables to set. Setting an environment variable to null/None will unset it. force_software_rendering: renamed: qt.force_software_rendering qt.force_software_rendering: type: name: 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. default: none backend: QtWebEngine restart: true desc: >- 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. qt.force_platform: type: name: String none_ok: true default: null restart: true desc: >- 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. qt.force_platformtheme: type: name: String none_ok: true default: null restart: true desc: >- 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. qt.process_model: type: name: 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`. default: process-per-site-instance backend: QtWebEngine restart: true desc: >- 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-5/qtwebengine-features.html#process-models qt.low_end_device_mode: type: name: String valid_values: - always: Always use low-end device mode. - auto: Decide automatically (uses low-end mode with < 1 GB available RAM). - never: Never use low-end device mode. default: auto backend: QtWebEngine restart: true desc: >- When to use Chromium's low-end device mode. This improves the RAM usage of renderer processes, at the expense of performance. qt.highdpi: type: Bool default: false restart: true desc: >- Turn on Qt HighDPI scaling. This is equivalent to setting QT_AUTO_SCREEN_SCALE_FACTOR=1 or 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. qt.workarounds.remove_service_workers: type: Bool default: false desc: >- Delete the QtWebEngine Service Worker directory on every start. This workaround can help with certain crashes caused by an unknown QtWebEngine bug related to Service Workers. Those crashes happen seemingly immediately on Windows; after one hour of operation on other systems. Note however that enabling this option *can lead to data loss* on some pages (as Service Worker data isn't persisted) and will negatively impact start-up time. qt.workarounds.locale: type: Bool default: false backend: QtWebEngine desc: >- Work around locale parsing issues in QtWebEngine 5.15.3. With some locales, QtWebEngine 5.15.3 is unusable without this workaround. In affected scenarios, QtWebEngine will log "Network service crashed, restarting service." and only display a blank page. However, It is expected that distributions shipping QtWebEngine 5.15.3 follow up with a proper fix soon, so it is disabled by default. ## auto_save auto_save.interval: type: name: Int minval: 0 maxval: maxint default: 15000 desc: Time interval (in milliseconds) between auto-saves of config/cookies/etc. auto_save.session: type: Bool default: false desc: >- 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. ## content content.autoplay: default: true type: Bool backend: QtWebEngine supports_pattern: true desc: >- Automatically start playing `