Removed
- The following command aliases were deprecated in v2.0.0 and are now removed:
* `run-macro` -> `macro-run`
* `record-macro` -> `macro-record`
* `buffer` -> `tab-select`
* `open-editor` -> `edit-text`
* `toggle-selection` -> `selection-toggle`
* `drop-selection` -> `selection-drop`
* `reverse-selection` -> `selection-reverse`
* `follow-selected` -> `selection-follow`
* `follow-hint` -> `hint-follow`
* `enter-mode` -> `mode-enter`
* `leave-mode` -> `mode-leave`
Added
- New `:screenshot` command which can be used to screenshot the visible part of
the page.
- New optional dependency on the `importlib_metadata` project on Python 3.7 and
below. This is only relevant when PyQtWebEngine is installed via pip - thus,
this dependency usually isn't relevant for packagers.
- New `qute-keepassxc` userscript integrating with the KeePassXC browser API.
Changed
- Initial support for QtWebEngine 5.15.3 and PyQt 5.15.3/.4
- The `colors.webpage.prefers_color_scheme_dark` setting got renamed to
`colors.webpage.preferred_color_scheme` and now takes the values `auto`, `light`
and `dark` (instead of being `True` for dark and `False` for auto).
Note that the `light` value is only supported with Qt 5.15.2+, falling back to
the same behavior as `auto` on older versions.
- On Linux, qutebrowser now tries harder to find details about the installed
QtWebEngine version by inspecting the QtWebEngine binary. This should reduce
issues with dark mode (and some workarounds) not working when using differing
versions of QtWebEngine/PyQtWebEngine/Qt.
This change also prepares qutebrowser for QtWebEngine 5.15.3, which will get
released without an updated Qt.
- When PyQtWebEngine >= 5.15.3 is installed via `pip` (as is e.g. the case with
`mkvenv.py`), qutebrowser now queries the associated metadata to find out the
QtWebEngine version.
- When doing `:hint links yank --rapid`, the messages shown now replace each
other, thus being less noisy.
- Newlines in JavaScript messages (`confirm`, `prompt` and `alert`) are now
preserved.
- Messages in prompts are now word-wrapped rather than displaying them in one
long line.
- If a command stats with space (e.g. `: open ...`, it's now not saved to
command history anymore (similar to how some shells work).
- When a tab is pinned, running `:open` will now open a new tab instead of
displaying an error.
- The `fileselect.*.command` settings now support file selectors writing the
selected paths to stdout, which is used if no `{}` placeholder is contained in
the configured command.
- The `--debug-flag` argument now understands a new `log-sensitive-keys` value
which logs all keypresses (including those in insert/passthrough/prompt/...
mode) for debugging.
- The `readability` and `readability-js` userscripts now add a
`qute-readability` CSS class to the page, so that it can be styled easily via
a user stylesheet.
Fixed
- With QtWebEngine 5.15.3 and some locales, Chromium can't start its
subprocesses. As a result, qutebrowser only shows a blank page and logs
"Network service crashed, restarting service.". This release adds a
`qt.workarounds.locale` setting working around the issue. It is disabled by
default since distributions shipping 5.15.3 will probably have a proper patch
for it backported very soon.
- The `colors.webpage.preferred_color_scheme` and `colors.webpage.darkmode.*`
settings now work correctly with QtWebEngine 5.15.3 (and Gentoo, which at the
time of writing packages 5.15.3 disguised as 5.15.2).
- When dark mode settings were set, existing `blink-features` arguments in
`qt.args` (or `--qt-flag`) were overridden. They are now combined properly.
- On QtWebEngine 5.15.2, auto detection for the `prefers-color-scheme` media
query is broken and always returns `no-preference`, which was removed from the
CSS WG Specification. This release contains a workaround to always return
`light` instead (as per the spec).
- When an external file selector deletes the temporary file (like `nnn` does
when quitting the terminal), qutebrowser would crash. It now displays an
error instead. The same applies if the temporary file is unreadable for any
other reason.
- On macOS, a change in v2.0.x caused certain shortcuts to not work with Cmd
anymore, using Ctrl instead. They now work correctly using Cmd (like usual on
macOS) again.
- On macOS, using `F` (`hint all tab`) sometimes would open a context menu
instead of following a link. This is now fixed.
- The quirk added for a missing `String.replaceAll` did not handle special
regexp characters correctly, thus breaking some sites. It now handles them
properly.
- The "try again" button on error pages now works correctly with JavaScript
disabled.
- If a GreaseMonkey script doesn't have a "run-at" comment, qutebrowser
accidentally treated that as "run-at document-idle". However, other
GreaseMonkey implementations default to "run-at document-end" instead, which
is what qutebrowser now does, too.
- The `hist_importer.py` script didn't work correctly after qutebrowser v2.0.0
and resulted in a history database qutebrowser couldn't read properly. It now
works properly again.
- With certain QtWebEngine versions (5.15.0 based on Chromium 80 and 5.15.3
based on Chromium 87), Chromium's dark mode doesn't invert certain SVG images,
even with `colors.wegpage.darkmode.policy.images` set to `smart`.
Most notably, this causes formulae on Wikipedia to display black on (almost)
black. If `content.site_specific_quirks` is enabled, qutebrowser now injects
some CSS as a workaround, which inverts all math formula images on Wikipedia
(and potentially other sites, if they use the same CSS class).
- When a hint label text started with an apostrophe, it would show an escaped
text until the hints first character has been pressed. It now shows up
correctly.