Deprecated
- Running qutebrowser with Qt 5.12.0 is now unsupported and logs a warning. It
should still work - however, a workaround for issues with the Nvidia graphic
driver was dropped. Newer Qt 5.12.x versions are still fully supported. - The
--force
argument for:tab-only
is deprecated, use--pinned close
instead. - Using
:tab-focus
without an argument or count is now deprecated, use
:tab-next
instead.
Added
- New dependency on the
QtDBus
module. If this requirement is an issue for you
or your distribution, please open an issue! Note that a DBus connection at
runtime is still optional. - New
input.media_keys
setting which can be used to disable Chromium's
handling of media keys. - New
:process
command (and associatedqute://process
pages) which can be
used to view and terminate/kill external processes spawned by qutebrowser. - New
content.site_specific_quirks.skip
setting which can be used to disable
individual site-specific quirks. - New
--pinned
argument for:tab-only
, which replaces--force
(with
--pinned close
), but also can take--pinned keep
to keep pinned tabs
without prompting. - New
fileselect.folder.command
which can be used with
fileselect.handler = external
to customize the command to use to upload
directories (<input type="file" webkitdirectory />
elements, which are
non-standard but in wide use). - New
content.notifications.presenter
setting with various new ways to show
web notifications:auto
(default): Automatically detect the best available optionqt
: Use Qt's built-in mechanism (like before this release)libnotify
: Use a libnotify-compatible notification server (i.e. native
notifications on Linux)systray
: Use a systray icon (very similar toqt
but without some of
its drawbacks)messages
: Use qutebrowser messagesherbe
: Use herbe
- New
content.notifications.show_origin
setting, which can be used to decide
for which notifications to show the origin (the URL the notification was sent
from).
Changed
- The
content.ssl_strict
setting got renamed to
content.tls.certificate_errors
, with new values:ask
: Prompt on overridable certificate errors (ssl_strict = 'ask'
)ask-block-thirdparty
: See belowblock
: Block the page load (ssl_strict = True
)load-insecurely
: Load the page despite the error (ssl_strict = False
)
- The new
content.tls.certificate_errors
setting now also understands the
valueask-block-thirdparty
, which asks for page loads but automatically blocks
resource loads on TLS errors. This behavior is consistent with what other
browsers do. - The prompt text shown on certificate errors has been improved to make it
clearer what kind of error occurred exactly. - The
content.site_specific_quirks
setting got renamed to
content.site_specific_quirks.enabled
. - The
content.notifications
option got renamed to
content.notifications.enabled
. - The completion now also shows bindings starting with
set-cmd-text
in its
third column, such aso
for:open
. - When
:spawn
is used with the-m
/--output-messages
flag, the output now
appears live, while the process is running. - When a shown message replaces an existing related one (e.g. for zoom levels),
the replacing now also works even if a different message was shown in between. - The
.redirect(...)
method on interceptors now supports an
ignore_unsupported=True
argument which supresses exceptions if a request could
not be redirected. Note, however, that it is still not public API. - When the
--config-py
argument is used, no warning about a missing
config.load_autoconfig
is shown anymore, as the argument is typically used
for temporarily testing a config. - The internal
_autosave
session used for crash recovery is now only saved
once per minute, since saving it for every page load is a noticable performance
issue. - The
readability-js
userscript now displays a small header with page
information. - When an external file selector is used, some additional validation is done on
the picked files now, so that errors are shown if e.g. a directory is selected
when a file was expected. - The default binding for
T
(:tab-focus
) got changed so that it fills the
command line with:tab-focus
if used without a count (instead of being
equivalent to:tab-next
in that case). - The
:config-unset
command now understands the--pattern
(-u
) flag to
unset options customized for a given URL pattern (such as after answering a
prompt with "always"/"never"). - The
:config-unset
command now shows an error when used on an option which is
valid, but was never customized. - The
statusbar.widgets
setting now understandstext:...
entries which
allows adding a hard-coded text to the statusbar. - The polyfill for
String.replaceAll
(required for Nextcloud Calendar < 2.2.0
with QtWebEngine < 5.15.3) is now disabled by default, as it's not fully
compliant to the ECMAScript spec and might cause issues on other websites.
If you still need it (e.g. if you're still on an old Nextcloud Calendar
version), removejs-string-replaceall
from
content.site_specific_quirks.skip
.
Fixed
- When an editor exits with a != 0 exit status, the temporary editor file is now
persisted. This already was the case when the editor crashed. - When a nonexistent file gets passed to
--config-py
, qutebrowser now
complains instead of silently not loading it. - With some (rare) setups, opening the report dialog or using a PAC proxy with
QtWebKit could result in qutebrowser hanging due to a PyQt bug. There's now a
workaround which prevents the hang. - QtWebEngine version detection (influencing things like dark mode settings or
certain workarounds) now works correctly on OpenBSD. - Certain version number formats in
/etc/os-release
caused qutebrowser to
crash. Those are now handled correctly. - The macOS releases now properly support Dark Mode for UI elements by setting
NSRequiresAquaSystemAppearance
to false.
Removed
- The
qute://spawn-output
page used by:spawn -o
is now removed, as it's
replaced by the newqute://process
pages.