5289 lines
242 KiB
Plaintext
5289 lines
242 KiB
Plaintext
Change Log
|
|
===========
|
|
|
|
// https://keepachangelog.com/
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
This project adheres to https://semver.org/[Semantic Versioning], though minor
|
|
breaking changes (such as renamed commands) can happen in minor releases.
|
|
|
|
// tags:
|
|
// `Added` for new features.
|
|
// `Changed` for changes in existing functionality.
|
|
// `Deprecated` for once-stable features removed in upcoming releases.
|
|
// `Removed` for deprecated features removed in this release.
|
|
// `Fixed` for any bug fixes.
|
|
// `Security` to invite users to upgrade in case of vulnerabilities.
|
|
|
|
[[v3.6.3]]
|
|
v3.6.3 (2025-11-30)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- New `qt.workarounds.disable_accessibility` setting, which disables Chromium
|
|
accessibility support. By default, is it set to `auto`, which only disables
|
|
accessibility on Qt versions with known issues. This works around a bug in Qt
|
|
6.10.1 causing frequent segfaults (#8797).
|
|
|
|
[[v3.6.2]]
|
|
v3.6.2 (2025-11-27)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* Windows and macOS releases now ship with Qt 6.10.1, which include
|
|
security patches up to Chromium 142.0.7444.162.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The version info now includes the Wayland compositor name if wayland-client is
|
|
available under a different name than `libwayland-client.so` (#8771).
|
|
- The list of Chromium extensions in `--version` / `:version` now uses the
|
|
correct Chromium data profile, also fixing a crash with Qt 6.10.1 (#8785).
|
|
- With Qt 6.10.1, `qt.workarounds.disable_hangouts_extension` now doesn't apply
|
|
on private profiles, avoiding a Qt bug leading to a crash (#8785).
|
|
|
|
[[v3.6.1]]
|
|
v3.6.1 (2025-11-03)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- A regression in v3.6.0 where the page didn't have keyboard focus after closing
|
|
the completion, so e.g. typing in an input field after hinting didn't work.
|
|
(#8750)
|
|
|
|
[[v3.6.0]]
|
|
v3.6.0 (2025-10-24)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- The `:version` info now shows additional information:
|
|
* The X11 window manager / Wayland compositor name (mostly useful for
|
|
bug/crash reports).
|
|
* Loaded WebExtensions (partial support landed in QtWebEngine 6.10, no
|
|
official qutebrowser support yet).
|
|
- Support for hinting elements which are part of an (open) shadow DOM.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `qutedmenu` userscript now sorts history by the last access time.
|
|
- Hardware accelerated 2D canvas is now enabled by default on Qt 6.8.2+,
|
|
as graphic glitches with e.g. PDF.js and Google Sheets should be fixed
|
|
nowadays. If you still run into issues, please report them and set
|
|
`qt.workarounds.disable_accelerated_2d_canvas` to `always` to disable it
|
|
again.
|
|
- Changes to binary releases:
|
|
* Windows and macOS releases are now built with Qt 6.10.0, which is based
|
|
on Chromium 134.0.6998.208 with security patches up to 140.0.7339.207.
|
|
* Windows and macOS releases are now built with Python 3.14.
|
|
* Windows releases are now built on Windows Server 2022 (previously 2019),
|
|
which might break compatibility with older Windows releases (untested).
|
|
* If using `mkvenv.py` on Linux, note that Qt now requires glibc v2.34 (v2.28
|
|
previously). This is available down to Ubuntu 22.04 LTS and Debian Bookworm
|
|
(oldstable), so this should not affect most users of desktop distributions.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed crash if two new downloads start while a download prompt is already open
|
|
(#8674).
|
|
- Fixed exception when closing a qutebrowser window while a download prompt is
|
|
still open.
|
|
- Hopefully proper fix for some web pages jumping to the top when the statusbar
|
|
is hidden (#8223).
|
|
- Fix for the page header being shown on YouTube after the fullscreen
|
|
notification was hidden (#8625).
|
|
- Fix for videos losing keyboard focus when the fullscreen notification shows
|
|
(#8174).
|
|
- The workaround for microphone/camera permissions not being requested with
|
|
QtWebEngine 6.9 on Google Meet, Zoom, or other pages using the new
|
|
`<permission>` element now got extended to Qt 6.9.1+ as it's still not fixed
|
|
upstream. (#8612)
|
|
- The package version for Jinja 3.3+ is now correctly displayed in `:version`.
|
|
- Fixed crash with Qt 6.10 (and possibly older Qt versions) when navigating
|
|
from a `qute://` page to a web page, e.g. when searching on `qute://start`.
|
|
- On Wayland with Qt <= 6.9, `EGL_PLATFORM=wayland` is now set by qutebrowser to
|
|
get hardware rendering. Qt 6.10 includes an equivalent fix (#8637).
|
|
- Added workaround for per-domain User-Agent header not being used on redirects
|
|
(#8679).
|
|
- Added site-specific quirk for gitlab.gnome.org agressively blocking old
|
|
Chromium versions (and thus QtWebEngine) (#8509).
|
|
- Using `:config-list-remove` with an invalid value for the respective option
|
|
type now corrently displays an error instead of crashing.
|
|
|
|
[[v3.5.1]]
|
|
v3.5.1 (2025-06-05)
|
|
-------------------
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- QtWebKit (legacy) support got removed from CI and is now untested. If it
|
|
breaks, it's not going to be fixed, and support will be removed over the next
|
|
releases.
|
|
- Qt 5 support is currently still tested, but is also planned to get removed
|
|
over the next releases. Same goes for support for older Qt 6 versions (likely
|
|
6.2/6.3/6.4 and perhaps 6.5, see https://github.com/qutebrowser/qutebrowser/issues/8464[#8464]).
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS releases now bundle Qt 6.9.1, including many graphics-related
|
|
bugfixes, as well as security patches up to Chromium 136.0.7103.114.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- A bogus "wildcard call disconnects from destroyed signal" warning from Qt is
|
|
now suppressed.
|
|
- PDF.js now loads correctly on Windows installations with broken mimetype
|
|
configurations.
|
|
- A "Ignoring new child ..." debug log message which got spammy with Qt 6.9 is
|
|
now removed.
|
|
- A unknown crash (possibly related to using devtools) due to weird (Py)Qt
|
|
behavior now has a workaround.
|
|
- No "QtWebEngine version mismatch" warning is now logged anymore with newer Qt
|
|
5.15 releases (but you should still stop using Qt 5).
|
|
- The PDF.js version can now correctly be extracted/displayed with newer PDF.js
|
|
versions.
|
|
- The `qute-bitwarden`, `-lastpass` and `-pass` userscripts now properly avoid
|
|
a `DeprecationWarning` from the upcoming 6.0 release of `tldextract`. The
|
|
previous fix in v3.5.1 was insufficient.
|
|
|
|
[[v3.5.0]]
|
|
v3.5.0 (2025-04-12)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS releases are now built with Qt 6.9.0
|
|
* Based on Chromium 130.0.6723.192
|
|
* Security fixes up to Chromium 133.0.6943.141
|
|
* Also fixes issues with opening links on macOS
|
|
- The `content.headers.user_agent` setting now has a new
|
|
`{upstream_browser_version_short}` template field, which is the
|
|
upstream/Chromium version but shortened to only major version.
|
|
- The default user agent now uses the shortened Chromium version and doesn't
|
|
expose the `QtWebEngine/...` part anymore, thus making it equal to the
|
|
corresponding Chromium user agent. This increases compatibilty due to various
|
|
overzealous "security" products used by a variety of websites that block
|
|
QtWebEngine, presumably as a bot (known issues existed with Whatsapp Web, UPS,
|
|
Digitec Galaxus).
|
|
- Changed features in userscripts:
|
|
* `qute-bitwarden` now passes your password to the subprocess in an
|
|
environment variable when unlocking your vault, instead of as a command
|
|
line argument. (#7781)
|
|
- New `-D no-system-pdfjs` debug flag to ignore system-wide PDF.js installations
|
|
for testing.
|
|
- Polyfill for missing `URL.parse` with PDF.js v5 and QtWebEngine < 6.9. Note
|
|
this is a "best effort" fix and you should be using the "older browsers"
|
|
("legacy") build of PDF.js instead.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `ua-slack` site-specific quirk, as things seem to work better nowadays
|
|
without a quirk needed.
|
|
- The `ua-whatsapp` site-specific quirk, as it's unneeded with the default UA
|
|
change described above.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when trying to use the `DocumentPictureInPicture` JS API, such as done
|
|
by the new Google Workspaces Huddle feature. The API is unsupported by
|
|
QtWebEngine and now correctly disabled on the JS side. (#8449)
|
|
- Crash when a buggy notification presenter returns a duplicate ID (now an
|
|
error is shown instead).
|
|
- Crashes when running `:tab-move` or `:yank title` at startup, before a tab is
|
|
available.
|
|
- Crash with `input.insert_mode.auto_load`, when closing a new tab quickly after
|
|
opening it, but before it was fully loaded. (#3895, #8400)
|
|
- Workaround for microphone/camera permissions not being requested with
|
|
QtWebEngine 6.9.0 on Google Meet, Zoom, or other pages using the new
|
|
`<permission>` element. (#8539)
|
|
- Resolved issues in userscripts:
|
|
* `qute-bitwarden` will now prompt a re-login if its cached session has
|
|
been invalidated since last used. (#8456)
|
|
* `qute-bitwarden`, `-lastpass` and `-pass` now avoid a
|
|
`DeprecationWarning` from the upcoming 6.0 release of `tldextract`
|
|
|
|
[[v3.4.0]]
|
|
v3.4.0 (2024-12-14)
|
|
-------------------
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- Support for Python 3.8 is dropped, and Python 3.9 is now required. (#8325)
|
|
- Support for macOS 12 Monterey is now dropped, and binaries will be built on
|
|
macOS 13 Ventura. (#8327)
|
|
- When using the installer on Windows 10, build 1809 or newer is now required
|
|
(previous versions required 1607 or newer, but that's not officialy supported by
|
|
Qt upstream). (#8336)
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS binaries are now built with Qt 6.8.1. (#8242)
|
|
- Based on Chromium 122.0.6261.171
|
|
- With security patches up to 131.0.6778.70
|
|
- Windows/macOS binaries are now using Python 3.13. (#8205)
|
|
- The `.desktop` file now also declares qutebrowser as a valid viewer for
|
|
`image/webp`. (#8340)
|
|
- Updated mimetype information for getting a suitable extension when downloading
|
|
a `data:` URL.
|
|
- The `content.javascript.clipboard` setting now defaults to "ask", which on
|
|
Qt 6.8+ will prompt the user to grant clipboard access. On older Qt versions,
|
|
this is still equivalent to `"none"` and needs to be set manually. (#8348)
|
|
- If a XHR request made via JS sets a custom `Accept-Language` header, it now
|
|
correctly has precedence over the global `content.headers.accept_language`
|
|
setting (but not per-domain overrides). This fixes subtle JS issues on
|
|
websites that rely on the custom header being sent for those requests, and
|
|
e.g. block the requests server-side otherwise. (#8370)
|
|
- Our packaging scripts now prefer the "legacy"/"for older browsers" PDF.js
|
|
build as their normal release only supports the latest Chromium version and
|
|
might break in qutebrowser on updates. **Note to packagers:** If there's a
|
|
PDF.js package in your distribution as an (optional) qutebrowser dependency,
|
|
consider also switching to this variant (same code, built differently).
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash with recent Jinja/Markupsafe versions when viewing a finished userscript
|
|
(or potentially editor) process via `:process`.
|
|
- `scripts/open_url_in_instance.sh` now avoids `echo -n`, thus running
|
|
correctly on POSIX sh. (#8409)
|
|
- Added a workaround for a bogus QtWebEngine warning about missing spell
|
|
checking dictionaries. (#8330)
|
|
|
|
|
|
[[v3.3.1]]
|
|
v3.3.1 (2024-10-12)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Updated the workaround for Google sign-in issues.
|
|
|
|
[[v3.3.0]]
|
|
v3.3.0 (2024-10-12)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Added the `qt.workarounds.disable_hangouts_extension` setting,
|
|
for disabling the Google Hangouts extension built into Chromium/QtWebEngine.
|
|
- Failed end2end tests will now save screenshots of the browser window when
|
|
run under xvfb (the default on linux). Screenshots will be under
|
|
`$TEMP/pytest-current/pytest-screenshots/` or attached to the GitHub actions
|
|
run as an artifact. (#7625)
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- Support for macOS 11 Big Sur is dropped. Binaries are now built on macOS 12
|
|
Monterey and are unlikely to still run on older macOS versions.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The qute-pass userscript now has better support for internationalized domain
|
|
names when using the pass backend - both domain names and secret paths are
|
|
normalized before comparing (#8133)
|
|
- Ignored URL query parameters (via `url.yank_ignored_parameters`) are now
|
|
respected when yanking any URL (for example, through hints with `hint links
|
|
yank`). The `{url:yank}` substitution has also been added as a version of
|
|
`{url}` that respects ignored URL query parameters. (#7879)
|
|
- Windows and macOS releases now bundle Qt 6.7.3, which includes security fixes
|
|
up to Chromium 129.0.6668.58.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- A minor memory leak of QItemSelectionModels triggered by closing the
|
|
completion dialog has been resolved. (#7950)
|
|
- The link to the chrome https://developer.chrome.com/docs/extensions/develop/concepts/match-patterns/[URL match pattern]
|
|
documentation in our settings docs now loads a live page again. (#8268)
|
|
- A rare crash when on Qt 6, a renderer process terminates with an unknown
|
|
termination reason.
|
|
- Updated the workaround for Google sign-in issues.
|
|
|
|
[[v3.2.1]]
|
|
v3.2.1 (2024-06-25)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- There is now a separate macOS release built for Apple Silicon. A Universal
|
|
Binary might follow with a later release.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows and macOS releases now bundle Qt 6.7.2, which includes security fixes
|
|
up to Chromium 125.0.6422.142.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- When the selected Qt wrapper is unavailable, qutebrowser now again shows a
|
|
GUI error message instead of only an exception in the terminal.
|
|
|
|
[[v3.2.0]]
|
|
v3.2.0 (2024-06-03)
|
|
-------------------
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- This will be the last feature release supporting macOS 11 Big Sur.
|
|
Starting with qutebrowser v3.3.0, macOS 12 Monterey will be the oldest
|
|
supported version.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- When qutebrowser receives a SIGHUP it will now reload any config.py file
|
|
in use (same as the `:config-source` command does). (#8108)
|
|
- The Chromium security patch version is now shown in the backend string in
|
|
`--version` and `:version`. This reflects the latest Chromium version that
|
|
security fixes have been backported to the base QtWebEngine version from.
|
|
(#7187)
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows and macOS releases now ship with Qt 6.7.1, which is based on Chromium
|
|
118.0.5993.220 with security patches up to 124.0.6367.202.
|
|
- With QtWebEngine 6.7+, the `colors.webpage.darkmode.enabled` setting can now
|
|
be changed at runtime and supports URL patterns (#8182).
|
|
- A few more completions will now match search terms in any order:
|
|
`:quickmark-*`, `:bookmark-*`, `:tab-take` and `:tab-select` (for the quick
|
|
and bookmark categories). (#7955)
|
|
- Elements with an ARIA `role="switch"` now get hints (toggle switches like
|
|
e.g. on cookie banners).
|
|
- The `tor_identity` userscript now validates that the -c|--control-port
|
|
argument value is an int. (#8162)
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- `input.insert_mode.auto_load` sometimes not triggering due to a race
|
|
condition. (#8145)
|
|
- Worked around qutebrowser quitting when closing a KDE file dialog due to a Qt
|
|
bug. (#8143)
|
|
- Trying to use qutebrowser after it's been deleted/moved on disk (e.g. after a
|
|
Python upgrade) should now not crash anymore.
|
|
- When the QtWebEngine resources dir couldn't be found, qutebrowser now doesn't
|
|
crash anymore (but QtWebEngine still might).
|
|
- Fixed a rare crash in the completion widget when there was no selection model
|
|
when we went to clear that, probably when leaving a mode. (#7901)
|
|
- Worked around a minor issue around QTimers on Windows where the IPC server
|
|
could close the socket early. (#8191)
|
|
- The latest PDF.js release (v4.2.67) is now supported when backed by
|
|
QtWebEngine 6.6+ (#8170)
|
|
|
|
[[v3.1.0]]
|
|
v3.1.0 (2023-12-08)
|
|
-------------------
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The darkmode settings `grayscale.all`, `grayscale.images` and
|
|
`increase_text_contrast` got removed, following removals in Chromium.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `smart-simple` value for `colors.webpage.darkmode.policy.images`, which on
|
|
QtWebEngine 6.6+ uses a simpler classification algorithm to decide whether to
|
|
invert images.
|
|
- New `content.javascript.legacy_touch_events` setting, with those now being
|
|
disabled by default, following a Chromium change.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Upgraded the bundled Qt version to 6.6.1, based on Chromium 112. Note
|
|
this is only relevant for the macOS/Windows releases, on Linux those will be
|
|
upgraded via your distribution packages.
|
|
- Upgraded the bundled Python version for macOS/Windows to 3.12
|
|
- The `colors.webpage.darkmode.threshold.text` setting got renamed to
|
|
`colors.webpage.darkmode.threshold.foreground`, following a rename in
|
|
Chromium.
|
|
- With Qt 6.6, the `content.canvas_reading` setting now works without a restart
|
|
and supports URL patterns.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Some web pages jumping to the top when the statusbar is hidden or (with
|
|
v3.0.x) when a prompt is hidden.
|
|
- Compatibility with PDF.js v4
|
|
- Added an elaborate workaround for a bug in QtWebEngine 6.6.0 causing crashes
|
|
on Google Mail/Meet/Chat, and a bug in QtWebEngine 6.5.0/.1/.2 causing crashes
|
|
there with dark mode.
|
|
- Made a rare crash in QtWebEngine when starting/retrying a download less likely
|
|
to happen.
|
|
- Graphical glitches in Google sheets and PDF.js, again. Removed the version
|
|
restriction for the default application of
|
|
`qt.workarounds.disable_accelerated_2d_canvas` as the issue was still
|
|
evident on Qt 6.6.0. (#7489)
|
|
- The `colors.webpage.darkmode.threshold.foreground` setting (`.text` in older
|
|
versions) now works correctly with Qt 6.4+.
|
|
|
|
|
|
[[v3.0.2]]
|
|
v3.0.2 (2023-10-19)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Upgraded the bundled Qt version to 6.5.3. Note this is only relevant for the
|
|
macOS/Windows releases, on Linux those will be upgraded via your distribution
|
|
packages. This Qt patch release comes with
|
|
https://code.qt.io/cgit/qt/qtreleasenotes.git/tree/qt/6.5.3/release-note.md[various important fixes],
|
|
among them:
|
|
* Fix for crashes on Google Meet / GMail with dark mode enabled
|
|
* Fix for right-click in devtools not working properly
|
|
* Fix for drag & drop not working on Wayland
|
|
* Fix for some XKB key remappings not working
|
|
* Security fixes up to Chromium 116.0.5845.187, including
|
|
https://chromereleases.googleblog.com/2023/09/stable-channel-update-for-desktop_11.html[CVE-2023-4863],
|
|
a critical heap buffer overflow in WebP, for which "Google is aware that an
|
|
exploit [...] exists in the wild."
|
|
|
|
[[v3.0.1]]
|
|
v3.0.1 (2023-10-19)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The "restore video" functionality of the `view_in_mpv` script works again on
|
|
webengine.
|
|
- Setting `url.auto_search` to `dns` works correctly now with Qt 6.
|
|
- Counts passed via keypresses now have a digit limit (4300) to avoid
|
|
exceptions due to cats sleeping on numpads. (#7834)
|
|
- Navigating via hints to a remote URL from a file:// one works again. (#7847)
|
|
- The timers related to the tab audible indicator and the auto follow timeout
|
|
no longer accumulate connections over time. (#7888)
|
|
- The workaround for crashes when using drag & drop on Wayland with Qt 6.5.2 now also
|
|
works correctly when using `wayland-egl` rather than `wayland` as Qt platform.
|
|
- Worked around a weird `TypeError` with `QProxyStyle` / `TabBarStyle` on
|
|
certain platforms with Python 3.12.
|
|
- Removed 1px border for the downloads view, mostly noticeable when it's
|
|
transparent.
|
|
- Due to a Qt bug, cloning/undoing a tab which was not fully loaded caused
|
|
qutebrowser to crash. This is now fixed via a workaround.
|
|
- Graphical glitches in Google sheets and PDF.js via a new setting
|
|
`qt.workarounds.disable_accelerated_2d_canvas` to disable the accelerated 2D
|
|
canvas feature which defaults to enabled on affected Qt versions. (#7489)
|
|
- The download dialog should no longer freeze when browsing to directories
|
|
with many files. (#7925)
|
|
- The app.slack.com User-Agent quirk now targets chromium 112 on Qt versions
|
|
lower than 6.6.0 (previously it always targets chromium 99) (#7951)
|
|
- Workaround a Qt issue causing jpeg files to not show up in the upload file
|
|
picker when it was filtering for image filetypes (#7866)
|
|
|
|
[[v3.0.0]]
|
|
v3.0.0 (2023-08-18)
|
|
-------------------
|
|
|
|
Major changes
|
|
~~~~~~~~~~~~~
|
|
|
|
- qutebrowser now supports Qt 6 and uses it by default. Qt 5.15 is used as a
|
|
fallback if Qt 6 is unavailable. This behavior can be customized in three ways
|
|
(in order of precedence):
|
|
* Via `--qt-wrapper PyQt5` or `--qt-wrapper PyQt6` command-line arguments.
|
|
* Via the `QUTE_QT_WRAPPER` environment variable, set to `PyQt6` or `PyQt5`.
|
|
* For packagers wanting to provide packages specific to a Qt version,
|
|
patch `qutebrowser/qt/machinery.py` and set `_WRAPPER_OVERRIDE`.
|
|
- Various commands were renamed to better group related commands:
|
|
* `set-cmd-text` -> `cmd-set-text`
|
|
* `repeat` -> `cmd-repeat`
|
|
* `repeat-command` -> `cmd-repeat-last`
|
|
* `later` -> `cmd-later`
|
|
* `edit-command` -> `cmd-edit`
|
|
* `run-with-count` -> `cmd-run-with-count`
|
|
The old names continue to work for the time being, but are deprecated and
|
|
show a warning.
|
|
- Releases are now automated on CI, and GPG signed by
|
|
`qutebrowser bot <bot@qutebrowser.org>`, fingerprint
|
|
`27F3 BB4F C217 EECB 8585 78AE EF7E E4D0 3969 0B7B`.
|
|
The key is available as follows:
|
|
* On https://qutebrowser.org/pubkey.gpg
|
|
* Via keys.openpgp.org
|
|
* Via WKD for bot@qutebrowser.org
|
|
- Support for old Qt versions (< 5.15), old Python versions (< 3.8) and old
|
|
macOS (< 11)/Windows (< 10) versions were dropped. See the "Removed" section
|
|
below for details.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- On invalid commands/settings with a similarly spelled match, qutebrowser now
|
|
suggests the correct name in its error messages.
|
|
- New `:prompt-fileselect-external` command which can be used to spawn an
|
|
external file selector (`fileselect.folder.command`) from download filename
|
|
prompts (bound to `<Alt+e>` by default).
|
|
- New `qute://start` built-in start page (not set as the default start page yet).
|
|
- New `content.javascript.log_message.levels` setting, allowing to surface JS log
|
|
messages as qutebrowser messages (rather than only logging them). By default,
|
|
errors in internal `qute:` pages and userscripts are shown to the user.
|
|
- New `content.javascript.log_message.excludes` setting, which allows to exclude
|
|
certain messages from the `content.javascript.log_message.levels` setting
|
|
described above.
|
|
- New `tabs.title.elide` setting to configure where text should be elided
|
|
(replaced by `…`) in tab titles when space runs out.
|
|
- New `--quiet` switch for `:back` and `:forward`, to suppress the error message
|
|
about already being at beginning/end of history.
|
|
- New `qute-1pass` userscript using the 1password commandline to fill
|
|
passwords.
|
|
- On macOS when running with Qt < 6.3, `pyobjc-core` and
|
|
`pyobjc-framework-Cocoa` are now required dependencies.
|
|
They are *not* required on other systems or when running with Qt 6.3+, but
|
|
still listed in the `requirements.txt` because it's impossible to tell the
|
|
two cases apart there.
|
|
- New features in userscripts:
|
|
* `qutedmenu` gained new `window` and `private` options.
|
|
* `qute-keepassxc` now supports unlock-on-demand, multiple account
|
|
selection via rofi, and inserting TOTP-codes (experimental).
|
|
* `qute-pass` will now try looking up candidate pass entries based on the
|
|
calling tab's verbatim netloc (hostname including port and username) if it
|
|
can't find a match with an earlier candidate (FQDN, IPv4 etc).
|
|
- New `qt.chromium.experimental_web_platform_features` setting, which is enabled
|
|
on Qt 5 by default, to maximize compatibility with websites despite an aging
|
|
Chromium backend.
|
|
- New `colors.webpage.darkmode.increase_text_contrast` setting for Qt 6.3+
|
|
- New `fonts.tooltip`, `colors.tooltip.bg` and `colors.tooltip.fg` settings.
|
|
- New `log-qt-events` debug flag for `-D`
|
|
- New `--all` flags for `:bookmark-del` and `:quickmark-del` to delete all
|
|
quickmarks/bookmarks.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- Python 3.8.0 or newer is now required.
|
|
- Support for Python 3.6 and 3.7 is dropped, as they both reached
|
|
their https://endoflife.date/python[end of life] in December 2021 and June
|
|
2023, respectively.
|
|
- Support for Qt/PyQt before 5.15.0 and QtWebEngine before 5.15.2 are now
|
|
dropped, as older Qt versions are
|
|
https://endoflife.date/qt[end-of-life upstream] since mid/late 2020
|
|
(5.13/5.14) and late 2021 (5.12 LTS).
|
|
- The `--enable-webengine-inspector` flag is now dropped. It used to be ignored
|
|
but still accepted, to allow doing a `:restart` from versions older than v2.0.0.
|
|
Thus, switching from v1.x.x directly to v3.0.0 via `:restart` will not be possible.
|
|
- Support for macOS 10.14 and 10.15 is now dropped, raising the minimum
|
|
required macOS version to macOS 11 Big Sur.
|
|
* Qt 6.4 was the latest version to support macOS 10.14 and 10.15.
|
|
* It should be possible to build a custom .dmg with Qt 6.4, but this is
|
|
unsupported and not recommended.
|
|
- Support for Windows 8 and for Windows 10 before 1607 is now dropped.
|
|
* Support for older Windows 10 versions might still be present in Qt 6.0/6.1/6.2
|
|
* Support for Windows 8.1 is still present in Qt 5.15
|
|
* It should be possible to build a custom .exe with those versions, but this
|
|
is unsupported and not recommended.
|
|
- Support for 32-bit Windows is now dropped.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The qutebrowser icons got moved from `icons/` to `qutebrowser/icons` in the
|
|
repository, so that it's possible for qutebrowser to load them using Python's
|
|
resource system (rather than compiling them into a Qt resource file).
|
|
Packagers are advised to use `misc/Makefile` if possible, which has been
|
|
updated with the new paths.
|
|
- The `content.javascript.can_access_clipboard` setting got renamed to
|
|
`content.javascript.clipboard` and now understands three different values
|
|
rather than being a boolean: `none` (formerly `false`), `access` (formerly
|
|
`true`) and `access-paste` (additionally allows pasting content, needed for
|
|
websites like Photopea or GitHub Codespaces).
|
|
- The default `hints.selectors` now also match the `treeitem` ARIA roles.
|
|
- The `:click-element` command now can also click elements based on its ID
|
|
(`id`), a CSS selector (`css`), a position (`position`), or click the
|
|
currently focused element (`focused`).
|
|
- The `:click-element` command now can select the first found element via
|
|
`--select-first`.
|
|
- New `search.wrap_messages` setting, making it possible to disable search
|
|
wrapping messages.
|
|
- The `:session-save` command now has a new `--no-history` flag, to exclude tab
|
|
history.
|
|
- New widgets for `statusbar.widgets`:
|
|
* `clock`, showing the current time
|
|
* `search_match`, showing the current match and total count when finding text
|
|
on a page
|
|
- Messages shown by qutebrowser now don't automatically get interpreted as rich
|
|
text anymore. Thus, e.g. `:message-info <h1>test` now shows the given text.
|
|
To show rich text with `:message-*` commands, use their new `--rich` flag.
|
|
Note this is NOT a security issue, as only a small subset of HTML is
|
|
interpreted as rich text by Qt, independently from the website.
|
|
- Improved output when loading Greasemonkey scripts.
|
|
- The macOS `.app` now is registered as a handler for `.mhtml` files, such as
|
|
the ones produced by `:download --mhtml`.
|
|
- The "... called unimplemented GM_..." messages are now logged as info JS
|
|
messages instead of errors.
|
|
- For QtNetwork downloads (e.g. `:adblock-update`), various changes were done
|
|
for how redirects work:
|
|
- Insecure redirects (HTTPS -> HTTP) now fail the download.
|
|
- 20 redirects are now allowed before the download fails rather than only 10.
|
|
- A redirect to the same URL will now fail the download with too many
|
|
redirects instead of being ignored.
|
|
- When a download fails in a way it'd leave an empty file around, the empty
|
|
file is now deleted.
|
|
- With Qt 6, setting `content.headers.referer` to `always` will act as if it
|
|
was set to `same-domain`. The documentation is now updated to point that out.
|
|
- With QtWebEngine 5.15.5+, the load finished workaround was dropped, which
|
|
should make certain operations happen when the page has started loading rather
|
|
when it fully finished.
|
|
- `mkvenv.py` has a new `--pyqt-snapshot` flag, allowing to install certain packages
|
|
from the https://www.riverbankcomputing.com/pypi/[Riverbank development snapshots server].
|
|
- When `QUTE_QTWEBENGINE_VERSION_OVERRIDE` is set, it now always wins, no matter how
|
|
the version would otherwise have been determined. Note setting this value can break
|
|
things (if set to a wrong value), and usually isn't needed.
|
|
- When qutebrowser is run with an older QtWebEngine version as on the previous
|
|
launch, it now prints an error before starting (which causes the underlying
|
|
Chromium to remove all browsing data such as cookies).
|
|
- The keys "<To Do List>" and "<Contrast adjust>" are now named "<To-do list>"
|
|
and "<Adjust contrast>", respectively.
|
|
- The `tox.ini` now requires at least tox 3.20 (was tox 3.15 previously).
|
|
- `:config-diff` now has an `--include-hidden` flag, which also shows
|
|
internally-set settings.
|
|
- Improved error messages when `:spawn` can't find an executable.
|
|
- When a process fails, the error message now suggests using `:process PID` with
|
|
the correct PID (rather than always showing the latest process, which might not
|
|
be the failing one)
|
|
- When a process got killed with `SIGTERM`, no error message is now displayed
|
|
anymore (unless started with `:spawn --verbose`).
|
|
- When a process got killed by a signal, the signal name is now displayed in
|
|
the message.
|
|
- The `js-string-replaceall` quirk is now removed from the default
|
|
`content.site_specific_quirks.skip`, so that `String.replaceAll` is now
|
|
polyfilled on QtWebEngine < 5.15.3, hopefully improving website
|
|
compaitibility.
|
|
- Hints are now displayed for elements setting an `aria-haspopup` attribute.
|
|
- qutebrowser now uses SPDX license identifiers in its files. Full support for
|
|
the https://reuse.software/[REUSE specification] (license provided in a
|
|
machine-readable way for every single file) is not done yet, but planned for
|
|
a future release.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- When the devtools are clicked but `input.insert_mode.auto_enter` is set to
|
|
`false`, insert mode now isn't entered anymore.
|
|
- The search wrapping messages are now correctly displayed in (hopefully) all
|
|
cases with QtWebEngine.
|
|
- When a message with the same text as a currently already displayed one gets
|
|
shown, qutebrowser used to only show one message. This is now only done when the
|
|
two messages are completely equivalent (text, level, etc.) instead of doing so
|
|
when only the text matches.
|
|
- The `progress` and `backforward` statusbar widgets now stay removed if you
|
|
choose to remove them. Previously they would appear again on navigation.
|
|
- Rare crash when running userscripts with crashed renderer processes.
|
|
- Multiple rare crashes when quitting qutebrowser.
|
|
- The `asciidoc2html.py` script now correctly uses the virtualenv-installed
|
|
asciidoc rather than requiring a system-wide installation.
|
|
- "Package would be ignored" deprecation warnings when running `setup.py`.
|
|
- ResourceWarning when using `:restart`.
|
|
- Crash when shutting down before fully initialized.
|
|
- Crash with some notification servers when the server is quitting.
|
|
- Crash when using QtWebKit with PAC and the file has an invalid encoding.
|
|
- Crash with the "tiramisu" notification server.
|
|
- Crash when the "herbe" notification presenter doesn't start correctly.
|
|
- Crash when no notification server is installed/available.
|
|
- Warning with recent versions of the "deadd" (aka "linux notification center") notification server.
|
|
- Crash when using `:print --pdf` with a directory where its parent directory
|
|
did not exist.
|
|
- The `PyQt{5,6}.sip` version is now shown correctly in the `:version`/`--version`
|
|
output. Previously that showed the version from the standalone `sip` module
|
|
which was only set for PyQt5. (#7805)
|
|
- When a `config.py` calls `.redirect()` via a request interceptor (which is
|
|
unsupported) and supplies an invalid redirect target URL, an exception is now
|
|
raised for the `.redirect()` call instead of later inside qutebrowser.
|
|
- Crash when loading invalid history items from a session file.
|
|
|
|
[[v2.5.4]]
|
|
v2.5.4 (2023-03-13)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Support SQLite with DQS (double quoted string) compile time option turned
|
|
off.
|
|
|
|
[[v2.5.3]]
|
|
v2.5.3 (2023-02-17)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `array_at` quirk, polyfilling the
|
|
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at[`Array.at` method],
|
|
which is needed by various websites, but only natively available with Qt 6.2.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when the adblock filter file can't be read.
|
|
- Inconsistent behavior when using `:config-{dict,list}-*` commands with an
|
|
invalid value. Before the fix, using the same command again would complain that
|
|
the value was already present, despite the error and the value not being
|
|
actually changed.
|
|
- Incomplete error handling when mutating a dict/list in `config.py` and setting
|
|
an invalid value. Before the fix, this would result in either a message in the
|
|
terminal rather than GUI (startup), or in a crash (`:config-source`).
|
|
- Wrong type handling when using `:config-{dict,list}-*` commands with a config
|
|
option with non-string values. The only affected option is `bindings.commands`,
|
|
which is probably rarely used with those commands.
|
|
- The `readability` userscript now correctly passes the source URL to
|
|
Breadability, to make relative links work.
|
|
- Update `dictcli.py` to use the `main` branch, fixing a 404 error.
|
|
- Crash with some notification servers when the server did quit.
|
|
- Minor documentation fixes
|
|
|
|
[[v2.5.2]]
|
|
v2.5.2 (2022-06-22)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Packaging-related fixes:
|
|
* The `install` and `stacktrace` help pages are now included in the docs
|
|
shipped with qutebrowser when using the recommended packaging workflow.
|
|
* The Windows installer now more consistently uses the configured Windows
|
|
colors.
|
|
* The Windows installer now bases the desktop/start menu icon choices on
|
|
the existing install, if upgrading.
|
|
* The macOS release hopefully doesn't cause macOS to (falsely) claim that it
|
|
"is damaged and can't be opened" anymore.
|
|
- The notification fixes in v2.5.1 caused new notification crashes (probably
|
|
more common than the ones being fixed...). Those are now fixed, along with a
|
|
(rather involved) test case to prevent similar issues in the future.
|
|
- When a text was not found on a page, the associated message would be shown as
|
|
rich text (e.g. after `/<h1>`). With this release, this is fixed for search
|
|
messages, while the 3.0.0 release will change the default for all messages to be
|
|
plain-text. Note this is NOT a security issue, as only a small subset of HTML
|
|
is interpreted as rich text by Qt, independently from the website.
|
|
- When a Greasemonkey script couldn't be loaded (e.g. due to an unreadable file),
|
|
qutebrowser would crash. It now shows an error instead.
|
|
- Ever since the v1.2.0 release in 2018, the `content.default_encoding` setting
|
|
was not applied on start properly (only when it was changed afterwards). This
|
|
is now fixed.
|
|
|
|
[[v2.5.1]]
|
|
v2.5.1 (2022-05-26)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The `qute-pass` userscript is marked as executable again.
|
|
- PDF.js now works properly again with the macOS and Windows releases.
|
|
- The MathML workaround for darkmode (e.g. black on black Wikipedia formula)
|
|
now also works for display (rather than inline) math.
|
|
- The `content.proxy` setting can now correctly be set to arbitrary values via
|
|
the `qute://settings` page again.
|
|
- Fixed issues with Chromium version detection on Archlinux with
|
|
qt5-webengine 5.15.9-3.
|
|
- Fixed a rare possible crash with invalid `Content-Disposition` headers.
|
|
- Fixes for various notification-related crashes:
|
|
* With the `tiramisu` notification server (due to invalid behavior of the server, now a non-fatal error)
|
|
* With the `budgie` notification server when closing a notification (due to invalid behavior of the server, now worked around)
|
|
* When a server exits with an unsuccessful exit status (now a non-fatal error)
|
|
* When a server couldn't be started successfully (now a non-fatal error)
|
|
* With the `herbe` notification presenter, when the website tries to close
|
|
the notification after the user accepting (right-clicking) it.
|
|
- Fixes in userscripts:
|
|
* The `qute-bitwarden` userscript now correctly searches for entries for
|
|
sites on a subdomain of an unrecognized TLD. subdomain names. Previously
|
|
`my.site.local` would have searched in bitwarden for `my.sitelocal`,
|
|
losing the rightmost dot.
|
|
|
|
[[v2.5.0]]
|
|
v2.5.0 (2022-04-01)
|
|
-------------------
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- v2.5.x will be the last release of qutebrowser 2.
|
|
**For the upcoming 3.0.0 release**, it's planned to drop support for various
|
|
legacy platforms and libraries which are unsupported upstream, such as:
|
|
* Qt before 5.15 LTS (plus adding support for Qt 6.2+)
|
|
* Python 3.6
|
|
* The QtWebKit backend
|
|
* macOS 10.14 (via Homebrew)
|
|
* 32-bit Windows (via Qt)
|
|
* Windows 8 (via Qt)
|
|
* Windows 10 before 1809 (via Qt)
|
|
* Possibly other more minor dependency changes
|
|
- The `:rl-unix-word-rubout` command (`<Ctrl-W>` in command/prompt modes) has
|
|
been deprecated. Use `:rl-rubout " "` instead.
|
|
- The `:rl-unix-filename-rubout` command has been deprecated. Use either
|
|
`:rl-rubout "/ "` (classic readline behavior) or `:rl-filename-rubout` (using
|
|
OS path separator and ignoring spaces) instead.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Improved message if a spawned process wasn't found and a Flatpak container is
|
|
in use.
|
|
- The `:tab-move` command now takes `start` and `end` as `index` to move a tab
|
|
to the first/last position.
|
|
- Tests now automatically pick the backend (QtWebKit/QtWebEngine) based on
|
|
what's available. The `QUTE_BDD_WEBENGINE` environment variable and
|
|
`--qute-bdd-webengine` argument got replaced by `QUTE_TESTS_BACKEND` and
|
|
`--qute-backend` respectively, which can be set to either `webengine` or
|
|
`webkit`.
|
|
- Using `:tab-give` or `:tab-take` on the last tab in a window now always
|
|
closes that window, no matter what `tabs.last_close` is set to.
|
|
- Redesigned `qute://settings` (`:set`) page with buttons for options with
|
|
fixed values.
|
|
- The default `hint.selectors` now match more ARIA roles (`tab`, `checkbox`,
|
|
`menuitem`, `menuitemcheckbox` and `menuitemradio`).
|
|
- Using e.g. `:bind --mode=passthrough` now scrolls to the passthrough section
|
|
on the `qute://bindings` page.
|
|
- Clicking on a notification now tries to focus the tab where the notification
|
|
is coming from. Note this might not work properly if there is more than one
|
|
tab from the same host open.
|
|
- Improvements to userscripts:
|
|
* `qute-bitwarden` understands a new `--password-prompt-invocation`, which can
|
|
be used to specify a tool other than `rofi` to ask for a password.
|
|
* `cast` now uses `yt-dlp` if available (falling back to `youtube-dl` if not).
|
|
It also lets users override the tool to use via a `QUTE_CAST_YTDL_PROGRAM`
|
|
environment variable.
|
|
* `qute-pass` now understands a new `--prefix` argument if used in gopass
|
|
mode, which gets passed as subfolder prefix to `gopass`.
|
|
* `open_download` now supports Flatpak by using its XDG Desktop Portal.
|
|
* `open_download` now waits for the exit status of `xdg-open`, causing
|
|
qutebrowser to report any issues with it.
|
|
- The `content.headers.custom` setting now accepts empty strings as values,
|
|
resulting in an empty header being sent.
|
|
- Renamed settings:
|
|
* `qt.low_end_device_mode` -> `qt.chromium.low_end_device_mode`
|
|
* `qt.process_model` -> `qt.chromium.process_model`
|
|
- System-wide userscripts are now discovered from the correct location when
|
|
running via Flatpak (`/app/share` rather than `/usr/share`).
|
|
- Filename prompts now don't display a `..` entry in the list of files anymore.
|
|
To get back to the parent directory, either type `../` manually, or use the new
|
|
`:rl-filename-rubout` command, bound to `<Ctrl-Shift-W>` by default.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `input.match_counts` option which allows to turn off count matching for
|
|
more emacs-like bindings.
|
|
- New `{relative_index}` field for `tabs.title.format` (and `.pinned_format`)
|
|
which shows relative tab numbers.
|
|
- New `input.mode_override` option which allows overriding the current mode
|
|
based on the new URL when navigating or switching tabs.
|
|
- New `qt.chromium.sandboxing` setting which allows to disable Chromium's
|
|
sandboxing (mainly intended for development and testing).
|
|
- New `QUTE_TAB_INDEX` variable for userscripts, containing the index of the
|
|
current tab.
|
|
- New `editor.remove_file` setting which can be set to `False` to keep all
|
|
temporary editor files after closing the external editor.
|
|
- New `:rl-rubout` command replacing `:rl-unix-word-rubout` (and optionally
|
|
`:rl-unix-filename-rubout`), taking a delimiter as argument.
|
|
- New `:rl-filename-rubout` command, using the OS path separator and ignoring
|
|
spaces. The command also gets shown in the suggested commands for a download
|
|
filename prompt now.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- When `search.incremental` is disabled, searching using `/text` followed by a
|
|
backwards search via `?text` (or vice-versa) now correctly changes the search
|
|
direction.
|
|
- Elements getting a hint due to a `tabindex` now are skipped if it's set to
|
|
`-1`, reducing some false-positives.
|
|
- The audible indicator (`[A]`) now uses a 2s cooldown when the audio goes
|
|
silent, equivalent with the behavior of older QtWebEngine versions.
|
|
- With `confirm_quit` set to `downloads`, the confirmation dialog is now only
|
|
shown when closing the last window (rather than closing any window, which
|
|
would continue running that window's downloads). Unfortunately, more issues
|
|
with `confirm_quit` and multiple windows remain.
|
|
- Crash when a previous crash-log file contains non-ASCII characters (which
|
|
should never happen unless it was edited manually)
|
|
- Due to changes in Debian, an old workaround (for broken QtWebEngine patching
|
|
on Debian) caused the inferior qutebrowser error page to be displayed, when
|
|
Chromium's would have worked fine. The workaround was now dropped.
|
|
- Crash when using `<Ctrl-D>` (`:completion-item-del`) in the `:tab-focus`
|
|
list, rather than `:tab-select`.
|
|
- Work around a Qt issue causing `:spawn` to run executables from the current
|
|
directory if no system-wide executable was found. The underlying Qt bug is
|
|
tracked as https://lists.qt-project.org/pipermail/announce/2022-February/000333.html[CVE-2022-25255],
|
|
though the impact with typical qutebrowser usage is low: Normally,
|
|
qutebrowser is run from a fixed location (usually the users home directory),
|
|
and `:spawn` is not typically used with executables that don't exist. The main
|
|
security impact of this bug is in tools like text editors, which are often
|
|
executed in untrusted directories and might attempt to run auxiliary tools
|
|
automatically.
|
|
- When `:rl-rubout` or `:rl-filename-rubout` (formerly `:rl-unix-word-rubout`
|
|
and `:rl-unix-filename-rubout`) were used on a string not starting with the
|
|
given delimiter, they failed to delete the first character, which is now fixed.
|
|
- Fixes in userscripts:
|
|
* `ripbang` now works again (it got blocked due to a missing user agent and
|
|
used outdated qutebrowser commands before)
|
|
* `keepassxc` now has a properly working `--insecure` flag
|
|
- Speculative fix for an immediate crash at start with the macOS/Windows
|
|
binaries (in certain rare environments).
|
|
- Speculative fix for a qutebrowser crash when the notification daemon crashes
|
|
while showing the notification.
|
|
- Fix crash when using `:screenshot` with an invalid `--rect` argument.
|
|
- Added a site-specific quirk to make cookie dialogs on StackExchange pages
|
|
(such as Stack Overflow) work on Qt 5.12.
|
|
|
|
[[v2.4.0]]
|
|
v2.4.0 (2021-10-21)
|
|
-------------------
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
- **CVE-2021-41146**: Fix arbitrary command execution on Windows via URL handler
|
|
argument injection. See the
|
|
https://github.com/qutebrowser/qutebrowser/security/advisories/GHSA-vw27-fwjf-5qxm[security advisory]
|
|
for details.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `content.blocking.hosts.block_subdomains` setting which can be used to
|
|
disable the subdomain blocking for the hosts-based adblocker introduced in
|
|
v2.3.0.
|
|
- New `downloads.prevent_mixed_content` setting to prevent insecure
|
|
mixed-content downloads (true by default).
|
|
- New `--private` flag for `:tab-clone`, which clones a tab into a new private
|
|
window, mirroring the same flags for `:open` and `:tab-give`.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Switching tabs via mouse wheel scrolling now works properly on macOS. Set
|
|
`tabs.mousewheel_switching` to false if you prefer the previous behavior.
|
|
- Speculative fix for a crash when closing qutebrowser while a systray
|
|
notification is shown.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Typing in the filename prompt now filters matching directories.
|
|
- When opening a file qutebrowser can't handle from a `file:///` directory
|
|
listing, qutebrowser now opens it with the default application rather than
|
|
displaying a download prompt.
|
|
- In Greasemonkey scripts, using "overrideMimeType" with GM_xmlhttpRequest is
|
|
now supported.
|
|
- `:hint --rapid` is now supported for the `tab` hinting target no matter what
|
|
`tabs.background` is set to, as there are various scenarios where tabs can
|
|
open in the background.
|
|
- New flags for the `qute-pass` userscript:
|
|
* `--unfiltered` to show all secrets, not just the one matching the current
|
|
URL.
|
|
* `--always-show-selection` to confirm the password to be entered even if
|
|
there's only a single match.
|
|
- In insert mode, `<Shift-Escape>` is now bound to `fake-key <Escape>` by
|
|
default, i.e., sends an Escape keypress to the website.
|
|
- Using `GM_setClipboard` in Greasemonkey scripts is now supported.
|
|
|
|
[[v2.3.1]]
|
|
v2.3.1 (2021-07-28)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Updated the workaround for Google Account log in claiming that this browser
|
|
isn't secure. For an equivalent workaround on older versions, run:
|
|
`:set -u https://accounts.google.com/* content.headers.user_agent "Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0"`
|
|
- Corrupt cache file exceptions with `adblock` 0.5.0+ are now handled properly.
|
|
- Crash when entering unicode surrogates into the filename prompt.
|
|
- `UnboundLocalError` in `qute-keepass` when the database couldn't be opened.
|
|
|
|
[[v2.3.0]]
|
|
v2.3.0 (2021-06-28)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `content.prefers_reduced_motion` setting to request websites to reduce
|
|
non-essential motion/animations.
|
|
- New `colors.prompts.selected.fg` setting to customize the text color for
|
|
selected items in filename prompts.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The hosts-based adblocker (using `content.blocking.hosts.lists`) now also
|
|
blocks all requests to any subdomains of blocked hosts.
|
|
- The `fonts.web.*` settings now support URL patterns.
|
|
- The `:greasemonkey-reload` command now shows a list of loaded scripts and has
|
|
a new `--quiet` switch to suppress that message.
|
|
- When launching a userscript via hints, a new `QUTE_CURRENT_URL` environment
|
|
variable now points to the current page (rather than the URL of the selected
|
|
element, where `QUTE_URL` points to).
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash on macOS 10.14+ when logging into Google accounts -- the previous fix
|
|
was incomplete due wrong information in Apple's documentation.
|
|
- Crash when two Greasemonkey scripts have the same name (usually happening
|
|
because the same file is in both the data and the config directory).
|
|
- Deprecation warnings when using the `link_pyqt.py` script on Python 3.10
|
|
(e.g. via `tox` or `mkvenv.py`).
|
|
|
|
[[v2.2.3]]
|
|
v2.2.3 (2021-06-01)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Logging into Google accounts or sharing the camera on macOS 10.14+ crashed,
|
|
which is now fixed.
|
|
- The Windows installer now correctly aborts the installation on Windows 7
|
|
(rather than attempting an install which won't work, since Windows 7 is
|
|
unsupported since the v2.0.0 release).
|
|
- Using `--json-logging` without `--debug` caused qutebrowser to crash since the
|
|
v1.13.0 release. It now works correctly again.
|
|
- Mixing Qt 5.14+ with QtWebEngine 5.12 caused a crash related to qutebrowser's
|
|
notification support, which is now fixed.
|
|
- The documentation now points to the new IRC channels on irc.libera.chat
|
|
instead of the defunct Freenode channels (due to a hostile takeover by
|
|
Freenode staff).
|
|
- Setting `content.headers.user_agent` or `.accept_language` to a value
|
|
containing non-ascii characters was permitted by qutebrowser, but resulted in
|
|
a crash when loading a page. Such values are now rejected properly.
|
|
- When quitting qutebrowser on the `qute://settings` page, a crash could happen, which is now fixed.
|
|
- When `:edit-text` is used, but the existing text in the input isn't
|
|
representable in the configured encoding (`editor.encoding`), qutebrowser would
|
|
crash. It now shows a proper error instead.
|
|
- The testsuite should now work properly on aarch64.
|
|
- When QtWebEngine is in a "stuck" state while `:selection-follow` was used,
|
|
this could cause a crash in qutebrowser. This is now fixed (speculatively, due
|
|
to lack of a reproducer).
|
|
- When the brave adblock data (`adblock-cache.dat`) got corrupted, qutebrowser
|
|
would crash when trying to load it. It now displays an error instead.
|
|
- Combining `/S` (silent) and `/allusers` when uninstalling via the Windows
|
|
installer now works properly.
|
|
|
|
[[v2.2.2]]
|
|
v2.2.2 (2021-05-20)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- When awesomewm's "naughty" notification daemon was used with a development
|
|
version of AwesomeWM and an unknown version number, qutebrowser would crash
|
|
when trying to parse the version string. This is now fixed.
|
|
- Due to a bug with QtWebEngine 5.15.4, old Service Worker data could cause
|
|
renderer process crashes. This is now worked around by qutebrowser.
|
|
- When an (broken) binding to `set-cmd-text` without any argument existed,
|
|
using `:` would crash, which is now fixed.
|
|
- New site-specific quirk (again) working around not being able to type
|
|
accented/composed characters on Google Docs.
|
|
- When running with `python -OO` (which is not recommended), a notification
|
|
being shown would result in a crash, which is now fixed.
|
|
|
|
[[v2.2.1]]
|
|
v2.2.1 (2021-04-29)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- When an error occurs in a notification presenter, qutebrowser now shows that
|
|
error in the statusbar instead of just logging it.
|
|
- New site-specific-quirk for Discord logging users out when using vertical
|
|
tabs (yes, really)
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Certain errors from notification daemons are now displayed as non-fatal
|
|
errors instead of qutebrowser crashing:
|
|
* With the legacy GNOME Flashback notification daemon (not GNOME Shell), when
|
|
more than 20 notifications are currently shown.
|
|
* With the KDE Plasma notification daemon, when the same notification is
|
|
shown twice (with <1s delay).
|
|
- The `mkvenv.py` script now works when `ldconfig -p` is failing.
|
|
- Running `:spawn -u -o` broke in v2.2.0 and now works properly again.
|
|
- Fixes in userscripts:
|
|
* The `qute-bitwarden` userscript now still consumes returned data if the
|
|
Bitwarden CLI showed a warning but exited with a 0 (successful) exit code.
|
|
* The `qute-pass` userscript now doesn't try to match a username with
|
|
`--password-only`, and error messages with invalid patterns are improved.
|
|
* The `qute-pass` userscript now avoids running `pass` twice when `--otp-only`
|
|
is used.
|
|
|
|
[[v2.2.0]]
|
|
v2.2.0 (2021-04-13)
|
|
-------------------
|
|
|
|
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 associated `qute://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 option
|
|
* `qt`: 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 to `qt` but without some of
|
|
its drawbacks)
|
|
* `messages`: Use qutebrowser messages
|
|
* `herbe`: Use https://github.com/dudik/herbe[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 below
|
|
* `block`: 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
|
|
value `ask-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 as `o` 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 suppresses 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 noticeable 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 understands `text:...` 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), remove `js-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 new `qute://process` pages.
|
|
|
|
[[v2.1.1]]
|
|
v2.1.1 (2021-04-01)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Site-specific quirk for krunker.io, which shows a "Socket Error" with
|
|
qutebrowser's default Accept-Language header. The workaround is equivalent to
|
|
doing `:set -u matchmaker.krunker.io content.headers.accept_language ""`.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Clicking the 'x' in the devtools window to hide it now also leaves insert
|
|
mode.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The workaround for black on (almost) black formula images in dark mode now
|
|
also works with Qt 5.12 and 5.13.
|
|
- When running in Flatpak or with the Windows/macOS releases, the QtWebEngine
|
|
version is now detected properly. Before, a wrong version was assumed, breaking
|
|
dark mode and certain workarounds (resulting in crashes on websites like
|
|
LinkedIn or TradingView).
|
|
- When the metainfo in the completion database doesn't have the expected
|
|
structure, qutebrowser now tries to gracefully recover from the situation
|
|
instead of crashing.
|
|
- When qutebrowser displays an error during initialization, opening a second
|
|
instance would lead to a crash. Instead, qutebrowser now ignores the attempt
|
|
to open a new page as long as it's not fully initialized yet.
|
|
- When the Brave adblock cache folder was unreadable, qutebrowser crashed. It
|
|
now displays an error instead.
|
|
- Fixes in the `qute-pass` userscript for `gopass`:
|
|
* Generating OTP tokens now works correctly.
|
|
* Storing the username as part of the secret broke in v2.0.0 and now works
|
|
again.
|
|
- When using `bindings.key_mappings` to map a key to multiple other keys,
|
|
qutebrowser would crash. This is now handled correctly - however, note that
|
|
it's usually better to map keys to commands instead.
|
|
- When a minimized window is selected via `:tab-select`, it's now un-minimized
|
|
properly.
|
|
- When a format string in the config (e.g. `tabs.title_format`) used a value
|
|
like `{current_url.host}` (instead of `{current_url:host}`), qutebrowser
|
|
would crash. It now correctly reports an invalid config value instead.
|
|
- In rare circumstances, sending URLs/commands to existing instances would
|
|
result in a crash, which is now fixed.
|
|
- Running the testsuite should now fully work without internet access again.
|
|
- The `--asciidoc` script for `mkvenv.py` broke with v1.14.0. It now works
|
|
correctly again.
|
|
- Various other fixes for running in Flatpak (backported in the Flatpak release
|
|
even before this qutebrowser release).
|
|
- We are the Knights Who Say... ':Ni!'
|
|
|
|
[[v2.1.0]]
|
|
v2.1.0 (2021-03-12)
|
|
-------------------
|
|
|
|
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.
|
|
|
|
[[v2.0.2]]
|
|
v2.0.2 (2021-02-04)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- When right-clicking an empty part of the downloads bar, qutebrowser v2.0.x
|
|
would crash. This is now fixed.
|
|
- Setting `content.cookies.store` to `false` only worked properly when this was
|
|
done after qutebrowser was already started due to a regression in v2.0.0. It now
|
|
works as expected again.
|
|
- If qutebrowser was installed as a Python egg with Python 3.8 or 3.9,
|
|
requesting unavailable resource files (such as PDF.js not being bundled, or a
|
|
missing changelog file) caused in a crash due to an inconsistent behavior in
|
|
those versions of Python. This is now handled properly by qutebrowser.
|
|
- In v2.0.0, support for importing the `sip` dependency as `sip` rather than
|
|
`PyQt5.sip` was dropped, since upstream claims it should be used as `PyQt5.sip`
|
|
ever since PyQt 5.11. However, some distributions still package sip as a global
|
|
`sip` package. Thus, support for a global `sip` package is now reintroduced.
|
|
- The changelog for v2.0.0 claimed that `hints.leave_on_load` was set to `true`
|
|
by default. However, the `input.insert_mode.leave_on_load` setting was instead
|
|
set to `true` accidentally. This is now fixed by actually setting
|
|
`hints.leave_on_load` to `true`, and reversing the change to
|
|
`input.insert_mode.leave_on_load` so it is set to `false` by default again.
|
|
- When the `importlib_resources` package is required but was missing, users
|
|
would get a Python stacktrace rather than a proper error message. This is now
|
|
fixed.
|
|
- Site-specific quirk JavaScript files were loaded lazily rather than preloaded
|
|
at the start of qutebrowser, causing a crash when e.g. switching between
|
|
versions while qutebrowser is open. Now they are preloaded at the start of
|
|
qutebrowser again.
|
|
- The link to the keybinding cheatsheet on the internal `:help` page wasn't
|
|
displayed correctly. This is now fixed.
|
|
- When the completion rebuilding process was interrupted, qutebrowser did not
|
|
detect this condition on the next start, thus resulting in a completion with
|
|
inconsistent data. This is now fixed, with another rebuild being forced with
|
|
this update, to ensure the data is consistent for all users.
|
|
- In certain scenarios, qutebrowser v2.0.x warned about
|
|
`config.load_autoconfig(...)` being missing when loading a secondary config
|
|
(e.g. via `config.source(...)`). It now only shows those warnings for the main
|
|
`config.py` file.
|
|
- The `--enable-webengine-inspector` flag is now accepted again, however it's
|
|
unused and undocumented. It purely exists to make it possible to use `:restart`
|
|
between pre-v2.0.x and v2.0.2+ versions.
|
|
- When `hints.dictionary` pointed to a file not encoded as UTF-8, this resulted
|
|
in a crash (also in versions before v2.0.0). It now properly displays an error
|
|
instead.
|
|
- When running qutebrowser with a single empty commandline argument, such as
|
|
done by `open_url_in_instance.sh`, this would result in a partially initialized
|
|
window. Interacting with that window results in a crash (also in versions before
|
|
v2.0.0). Instead, the startpage is now shown properly.
|
|
|
|
[[v2.0.1]]
|
|
v2.0.1 (2021-01-28)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- If qutebrowser was installed as a Python egg (similar to a .zip file, via
|
|
`setup.py install` under certain conditions), a change in v2.0.0 caused it to
|
|
not start properly. This is now fixed.
|
|
- If qutebrowser was set up (or packaged) in an unclean environment, this could
|
|
result in a stale `qutebrowser/components/adblock.py` file being picked up. That
|
|
file is not part of the release anymore, but if an old version is still around,
|
|
causes qutebrowser to crash. It's now explicitly blocked inside qutebrowser so
|
|
it gets ignored even if it still exists.
|
|
- When the adblocking method was switched using `:set`, and the `adblock`
|
|
dependency was unavailable when qutebrowser started (but was installed while
|
|
qutebrowser was open), this resulted in a crash. Now a warning prompting for a
|
|
restart of qutebrowser is shown instead.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `format_json` userscript now uses sh instead of bash again.
|
|
- The `add-nextcloud-bookmarks`, `add-nextcloud-cookbook`, `readability` and
|
|
`ripbang` userscripts now use a `python3` rather than plain `python` shebang.
|
|
- When `QTWEBENGINE_CHROMIUM_FLAGS` is set in the environment, this causes flag
|
|
handling (including workarounds for QtWebEngine crashes) inside qutebrowser to
|
|
break. This will be handled properly in a future version, but this release now
|
|
shows a warning on standard output if this is the case.
|
|
- The config completion for `fileselect.*.command` now also includes the "nnn"
|
|
terminal file manager.
|
|
|
|
[[v2.0.0]]
|
|
v2.0.0 (2021-01-28)
|
|
-------------------
|
|
|
|
Major changes
|
|
~~~~~~~~~~~~~
|
|
|
|
- If the Python `adblock` library is available, it is now used to
|
|
integrate Brave's Rust adblocker library for improved adblocking based on
|
|
ABP-like filter lists (such as EasyList).
|
|
If it is unavailable, qutebrowser falls back to host-blocking, i.e. the same
|
|
blocking technique it used before this release. As part of this, various
|
|
settings got renamed, see "Changed" below.
|
|
**Note: If the `adblock` dependency is available, qutebrowser will ignore
|
|
custom host blocking** via the `blocked-hosts` config file or `file:///` URLs
|
|
supplied as host blocking lists. You will need to either migrate those to
|
|
ABP-like lists, or set `content.blocking.method` to `both`.
|
|
- Various dependency upgrades - a quick checklist for packagers (see "Changed"
|
|
below for details):
|
|
* Ensure you're providing at least Python 3.6.1.
|
|
* Ensure you're providing at least Qt 5.12 and PyQt 5.12.
|
|
* Add a new optional dependency on the Python `adblock` library (if packaged -
|
|
if not, consider packaging it, albeit optional it's very useful for users).
|
|
* Remove the `cssutils` optional dependency (if present).
|
|
* Remove the `attrs` (`attr`) dependency.
|
|
* Remove the `pypeg2` dependency (and perhaps consider dropping the package
|
|
if not used elsewhere - it's https://fdik.org/pyPEG2/[inactive upstream]
|
|
and the repository was removed by Bitbucket).
|
|
* Move the `pygments` dependency from required to optional.
|
|
* Move the `setuptools` dependency from runtime (for `pkg_resources`) to
|
|
build-time.
|
|
* For Python 3.6, 3.7 or 3.8, add a dependency on the `importlib_resources`
|
|
backport.
|
|
* For Python 3.6 only, add a dependency on the `dataclasses` backport.
|
|
- Dropped support for old OS versions in binary releases:
|
|
* Support for Windows 7 is dropped in the Windows binaries, the minimum
|
|
required Windows version is now Windows 8.1.
|
|
* Support for macOS 10.13 High Sierra is dropped in the macOS binaries, the
|
|
minimum required macOS version is now macOS 10.14 Mojave.
|
|
- Various renamed settings and commands, see "Deprecated" and "Changed" below.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `--enable-webengine-inspector` flag (which was only needed for Qt 5.10 and
|
|
below) is now dropped. With Qt 5.11 and newer, the inspector/devtools are
|
|
enabled unconditionally.
|
|
- Support for moving qutebrowser data from versions before v1.0.0 has been
|
|
removed.
|
|
- The `--old` flag for `:config-diff` has been removed. It used to show
|
|
customized options for the old pre-v1.0 config files (in order to aid
|
|
migration to v1.0).
|
|
- The `:inspector` command which was deprecated in v1.13.0 (in favor of
|
|
`:devtools`) is now removed.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- Several commands have been renamed for consistency and/or easier grouping of
|
|
related commands. Their old names are still available, but deprecated and will
|
|
be removed in qutebrowser v2.1.0.
|
|
* `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 settings for the ABP-based adblocker:
|
|
* `content.blocking.method` to decide which blocker(s) should be used.
|
|
* `content.blocking.adblock.lists` to configure ABP-like lists to use.
|
|
- New `qt.environ` setting which makes it easier to set/unset environment
|
|
variables for qutebrowser.
|
|
- New settings to use an external file picker (such as ranger or vifm):
|
|
* `fileselect.handler` (`default` or `external`)
|
|
* `fileselect.multiple_files.command`
|
|
* `fileselect.single_file.command`
|
|
- When QtWebEngine has been updated but PyQtWebEngine hasn't yet, the dark mode
|
|
settings might stop working. As a (currently undocumented) escape hatch, this
|
|
version adds a `QUTE_DARKMODE_VARIANT=qt_515_2` environment variable which can
|
|
be set to get the correct behavior in (transitive) situations like this.
|
|
- New `--desktop-file-name` commandline argument, which can be used to customize
|
|
the desktop filename passed to Qt (which is used to set the `app_id` on
|
|
Wayland).
|
|
- The `:open` completion now also completes local file paths and `file://` URLs,
|
|
via a new `filesystem` entry in `completion.open_categories`. Also, a new
|
|
`completion.favorite_paths` setting was added which can be used to add paths to
|
|
show when `:open` is used without any input.
|
|
- New `QUTE_VERSION` variable for userscripts, which can be used to read
|
|
qutebrowser's version.
|
|
- New "Copy URL" entry in the context menu for downloads.
|
|
- New `:bookmark-list` command which lists all bookmarks/quickmarks. The
|
|
corresponding `qute://bookmarks` URL already existed since v0.8.0, but it was
|
|
never exposed as a command.
|
|
- New `qt.workarounds.remove_service_workers` setting which can be used to
|
|
remove the "Service Workers" directory on every start. Usage of this option is
|
|
generally discouraged, except in situations where the underlying QtWebEngine bug
|
|
is a known cause for crashes.
|
|
- Changelogs are now shown after qutebrowser was upgraded. By default, the
|
|
changelog is only shown after minor upgrades (feature releases) but not patch
|
|
releases. This can be adjusted (or disabled entirely) via a new
|
|
`changelog_after_upgrade` setting.
|
|
- New userscripts:
|
|
* `kodi` to play videos in Kodi
|
|
* `qr` to generate a QR code of the current URL
|
|
* `add-nextcloud-bookmarks` to create bookmarks in Nextcloud's Bookmarks app
|
|
* `add-nextcloud-cookbook` to add recipes to Nextcloud's Cookbook app
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- `config.py` files now are required to have either
|
|
`config.load_autoconfig(False)` (don't load `autoconfig.yml`) or
|
|
`config.load_autoconfig()` (do load `autoconfig.yml`) in them.
|
|
- Various host-blocking settings have been renamed to accommodate the new ABP-like
|
|
adblocker:
|
|
* `content.host_blocking.enabled` -> `content.blocking.enabled` (controlling both blockers)
|
|
* `content.host_blocking.whitelist` -> `content.blocking.whitelist` (controlling both blockers)
|
|
* `content.host_blocking.lists` -> `content.blocking.hosts.lists`
|
|
- Changes to default settings:
|
|
* `tabs.background` is now `true` by default, so that new tabs get opened in the
|
|
background.
|
|
* `input.partial_timeout` is now set to 0 by default, so that partially typed
|
|
key strings are never cleared.
|
|
* `hints.leave_on_load` is now `false` by default, so that hint mode doesn't get
|
|
left when a page finishes loading. This can lead to stale hints persisting in
|
|
rare circumstances, but is better than leaving hint mode when the user entered
|
|
it before loading was completed.
|
|
* The default for `tabs.width` (tab bar width if vertical) is now 15% of the
|
|
window width rather than 20%.
|
|
* The default bindings for moving tabs (`tab-move -` and `tab-move +`) were
|
|
changed from `gl` and `gr` to `gK` and `gJ`, to be consistent with the tab
|
|
switching bindings.
|
|
* The text color for warning messages is now black instead of white, for increased contrast and thus readability.
|
|
* The default timeout for messages is now raised from 2s to 3s.
|
|
- On the first start, the history completion database is regenerated to remove
|
|
a few problematic entries (such as long `qute://pdfjs` URLs). This might take
|
|
a couple of minutes, but is a one-time operation. This should result in a
|
|
performance improvement for the completion for affected users.
|
|
- qutebrowser now shows an error if its history database version is newer than
|
|
expected. This currently should never happen, but allows for potentially
|
|
backwards-incompatible changes in future versions.
|
|
- At least Python 3.6.1 is now required to run qutebrowser, support for Python
|
|
3.5 (and 3.6.0) is dropped. Note that Python 3.5 is
|
|
https://www.python.org/downloads/release/python-3510/[no longer supported
|
|
upstream] since September 2020.
|
|
- At least Qt/PyQt 5.12 is now required to run qutebrowser, support for 5.7 to
|
|
5.11 (inclusive) is dropped. While Debian Buster ships Qt 5.11, it's based on a
|
|
Chromium version from 2018 with
|
|
https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#browser-security[no Debian security support]
|
|
and unsupported upstream since May 2019.
|
|
It also has compatibility issues with various websites (GitHub, Twitch, Android
|
|
Developer documentation, YouTube, ...). Since no newer Debian Stable is released
|
|
at the time of writing, it's recommended to
|
|
https://github.com/qutebrowser/qutebrowser/blob/main/doc/install.asciidoc#installing-qutebrowser-with-virtualenv[install qutebrowser in a virtualenv]
|
|
with a newer version of Qt/PyQt.
|
|
- New optional dependency on the Python `adblock` library (see above for details).
|
|
- The (formerly optional) `cssutils` dependency is now removed. It was only
|
|
needed for improved behavior in corner cases when using `:download --mhtml`
|
|
with the (non-default) QtWebKit backend, and as such it's unlikely anyone is
|
|
still relying on it. The `cssutils` project is also dead upstream, with its
|
|
repository being gone after Bitbucket
|
|
https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket[removed Mercurial support].
|
|
- The (formerly required) `pygments` dependency is now optional. It is only
|
|
used when using `:view-source` with QtWebKit, or when forcing it via
|
|
`:view-source --pygments` on QtWebEngine. If it is unavailable, an
|
|
unhighlighted fallback version of the page's source is shown.
|
|
- The former runtime dependency on the `pkg_resources` module (part of the
|
|
`setuptools` project) got dropped. Note that `setuptools` is still required
|
|
to run `setup.py`.
|
|
- A new dependency on the `importlib_resources` module got introduced for
|
|
Python versions up to and including 3.8. Note that the stdlib
|
|
`importlib.resources` module for Python 3.7 and 3.8 is missing the needed APIs,
|
|
thus requiring the backports for those versions as well.
|
|
- The former dependency on the `attrs`/`attr` package is now dropped in favour
|
|
of `dataclasses` in the Python standard library. On Python 3.6, a new
|
|
dependency on the `dataclasses` backport is now required.
|
|
- The former dependency on the `pypeg2` package is now dropped. This might cause
|
|
some changes for certain corner-cases for suggested filenames when downloading
|
|
files with the QtWebKit backend.
|
|
- Windows and macOS releases now ship Python 3.9 rather than 3.7.
|
|
- The `colors.webpage.darkmode.*` settings are now also supported with older Qt
|
|
versions (Qt 5.12 and 5.13) rather than just with Qt 5.14 and above.
|
|
- For regexes in the config (`hints.{prev,next}_regexes`), certain patterns
|
|
which will change meanings in future Python versions are now disallowed. This is
|
|
the case for character sets starting with a literal `[` or containing literal
|
|
character sequences `--`, `&&`, `~~`, or `||`. To avoid a warning, remove the
|
|
duplicate characters or escape them with a backslash.
|
|
- If `prompt(..., "default")` is used via JS, the default text is now
|
|
pre-selected in the prompt shown by qutebrowser.
|
|
- URLs such as `::1/foo` are now handled as a search term or local file rather
|
|
than IPv6. Use `[::1]/foo` to force parsing as IPv6 instead.
|
|
- The `mkvenv.py` script now runs a "smoke test" after setting up the virtual
|
|
environment to ensure it's working as expected. If necessary, the test can be
|
|
skipped via a new `--skip-smoke-test` flag.
|
|
- Both qutebrowser userscripts and Greasemonkey scripts are now additionally
|
|
picked up from qutebrowser's config directory (the `userscripts` and
|
|
`greasemonkey` subdirectories of e.g. `~/.config/qutebrowser/`) rather than only
|
|
the data directory (the same subdirectories of e.g.
|
|
`~/.local/share/qutebrowser/`).
|
|
- The `:later` command now understands a time specification like `5m` or
|
|
`1h5m2s`, rather than just taking milliseconds.
|
|
- The `importer.py` script doesn't use a browser argument anymore; instead its
|
|
`--input-format` switch can be used to configure the input format. The help also
|
|
was expanded to explain how to use it properly.
|
|
- If `tabs.tabs_are_windows` is set, the `tabs.last_close` setting is now
|
|
ignored and the window is always closed when using `:close` (`d`).
|
|
- With the (default) QtWebEngine backend, if a custom `accept` header is set via
|
|
`content.headers.custom`, the custom value is now ignored for XHR
|
|
(`XMLHttpRequest`) requests. Instead, the sent value is now `*/*` or the header
|
|
set from JavaScript, as it would be if `content.headers.custom` wasn't set.
|
|
- The `:tab-select` completion now shows the underlying renderer process PID if
|
|
doing so is supported (on QtWebEngine 5.15).
|
|
- If `tabs.favicons.show` is set to `never`, favicons aren't unnecessarily
|
|
downloaded anymore. Thus, disabling favicons can help with a possible
|
|
https://www.ghacks.net/2021/01/22/favicons-may-be-used-to-track-users/[fingerprinting vector].
|
|
- "Super" is now understood as a modifier (i.e. as alias to "Meta").
|
|
- Initial support for Python 3.10 (currently in Alpha stage).
|
|
- Various performance improvements, including for the startup time.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- With interpolated color settings (`colors.tabs.indicator.*` and
|
|
`colors.downloads.*`), the alpha channel is now handled correctly.
|
|
- Fixes to userscripts:
|
|
* `format_json` now uses `env` in its shebang, making it work
|
|
correctly on systems where `bash` isn't located in `/bin`.
|
|
* `qute-pass` now handles the MIME output format introduced in gopass 1.10.0.
|
|
* `qute-lastpass` now types multiple `<` or `>` characters correctly.
|
|
- The `:undo` completion now sorts its entries correctly (by the numerical index
|
|
rather than lexicographically).
|
|
- The `completion.web_history.ignore` setting now works properly when set in
|
|
`config.py` (rather than via `:set`). Additionally, a `:config-source` will not
|
|
result in a history rebuild if the value wasn't actually changed.
|
|
- When downloading a `data:` URL, the suggested filename is now improved and
|
|
contains a proper extension. Before this fix, qutebrowser would use the URL's
|
|
data contents as filename with QtWebEngine; or "binary blob" with the Qt network
|
|
stack.
|
|
- When `:tab-only` is run before a tab is available, an error is now shown
|
|
instead of crashing.
|
|
- A couple of long URLs (such as `qute://pdfjs` URLs) are now not added to the
|
|
history database anymore.
|
|
- A bug in QtWebEngine 5.15.2 causes "renderer process killed" errors on
|
|
websites like LinkedIn and TradingView. There is now a workaround in qutebrowser
|
|
to prevent this from happening.
|
|
- Nextcloud Calendars started using `String.replaceAll` which was only added to
|
|
Chromium recently (Chrome 85), so won't work with current QtWebEngine
|
|
versions. This release includes a workaround (a polyfill as a
|
|
site-specific-quirk).
|
|
|
|
[[v1.14.1]]
|
|
v1.14.1 (2020-12-04)
|
|
--------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- With v1.14.0, qutebrowser configures the main window to be transparent, so
|
|
that it's possible to configure a translucent tab- or statusbar. However, that
|
|
change introduced various issues, such as performance degradation on some
|
|
systems or breaking dmenu window embedding with its `-w` option. To avoid those
|
|
issues for people who are not using transparency, the default behavior is
|
|
reverted to versions before v1.14.0 in this release. A new `window.transparent`
|
|
setting can be set to `true` to restore the behavior of v1.14.0.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows and macOS releases now ship Qt 5.15.2, which is based on
|
|
Chromium 83.0.4103.122 with security fixes up to 86.0.4240.183. This includes
|
|
CVE-2020-15999 in the bundled freetype library, which is known to be exploited
|
|
in the wild. It also includes various other bugfixes/features compared to
|
|
Qt 5.15.0 included in qutebrowser v1.14.0, such as:
|
|
* Correct handling of AltGr on Windows
|
|
* Fix for `content.cookies.accept` not working properly
|
|
* Fixes for screen sharing (some websites are still broken until an upcoming Qt
|
|
5.15.3)
|
|
* Support for FIDO U2F / WebAuth
|
|
* Fix for the unwanted creation of directories such as `databases-incognito` in
|
|
the home directory
|
|
* Proper autocompletion in the devtools console
|
|
* Proper signalisation of a tab's audible status (`[A]`)
|
|
* Fix for a hang when opening the context menu on macOS Big Sur (11.0)
|
|
* Hardware accelerated graphics on macOS
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Setting the `content.headers.referer` setting to `same-domain` (the default)
|
|
was supposed to truncate referrers to only the host with QtWebEngine.
|
|
Unfortunately, this functionality broke in Qt 5.14. It works properly again
|
|
with this release, including a test so this won't happen again.
|
|
- With QtWebEngine 5.15, setting the `content.headers.referer` setting to
|
|
`never` did still send referrers. This is now fixed as well.
|
|
- In v1.14.0, a regression was introduced, causing a crash when qutebrowser was
|
|
closed after opening a download with PDF.js. This is now fixed.
|
|
- With Qt 5.12, the `Object.fromEntries` JavaScript API is unavailable (it was
|
|
introduced in Chromium 73, while Qt 5.12 is based on 69). This caused
|
|
https://www.vr.fi/en and possibly other websites to break when accessed with Qt
|
|
5.12. A suitable polyfill is now included with qutebrowser if
|
|
`content.site_specific_quirks` is enabled (which is the default).
|
|
- While XDG startup notifications (e.g. launch feedback via the bouncy cursor
|
|
in KDE Plasma) were supported ever since Qt 5.1, qutebrowser's desktop file
|
|
accidentally declared that it wasn't supported. This is now fixed.
|
|
- The `dmenu_qutebrowser` and `qutedmenu` userscripts now correctly read the
|
|
qutebrowser sqlite history which has been in use since v1.0.0.
|
|
- With Python 3.8+ and vertical tabs, a deprecation warning for an implicit int
|
|
conversion was shown. This is now fixed.
|
|
- Ever since Qt 5.11, fetching more completion data when that data is loaded
|
|
lazily (such as with history) and the last visible item is selected was broken.
|
|
The exact reason is currently unknown, but this release adds a tentative fix.
|
|
- When PgUp/PgDown were used to go beyond the last visible item, the above issue
|
|
caused a crash, which is now also fixed.
|
|
- As a workaround for an overzealous Microsoft Defender false-positive detecting
|
|
a "trojan" in the (unprocessed) adblock list, `:adblock-update` now doesn't
|
|
cache the HTTP response anymore.
|
|
- With the QtWebKit backend and `content.headers` set to `same-domain` (the
|
|
default), origins with the same domain but different schemes or ports were
|
|
treated as the same domain. They now are correctly treated as different domains.
|
|
- When a URL path uses percent escapes (such as
|
|
`https://example.com/embedded%2Fpath`), using `:navigate up` would treat the
|
|
`%2F` as a path separator and replace any remaining percent escapes by their
|
|
unescaped equivalents. Those are now handled correctly.
|
|
- On macOS 11.0 (Big Sur), the default monospace font name caused a parsing error, thus
|
|
resulting in broken styling for the completion, hints, and other UI components.
|
|
They now look properly again.
|
|
- Due to a Qt bug, installing Qt/PyQt from prebuilt binaries on systems with a
|
|
very old `libxcb-utils` version (notably, Debian Stable, but not Ubuntu since
|
|
16.04 LTS) results in a setup which fails to start. This also affects the
|
|
`mkvenv.py` script, which now includes a workaround for this case.
|
|
- The `open_url_instance.sh` userscript now complains when `socat` is not
|
|
installed, rather than silencing the error.
|
|
- The example AppArmor profile in `misc/` was outdated and written for the
|
|
older QtWebKit backend. It is now updated to serve as an useful starting
|
|
point with QtWebEngine.
|
|
- When running `:devtools` on Fedora without the needed (optional) dependency
|
|
installed, it was suggested to install `qt5-webengine-devtools`, which does
|
|
not, in fact, exist. It's now correctly suggested to install
|
|
`qt5-qtwebengine-devtools` instead.
|
|
- With Qt 5.15.2, lines/borders coming from the `readability-js` userscript
|
|
were invisible. This is now fixed by changing the border color to grey (with all
|
|
Qt versions).
|
|
- Due to changes in the underlying Chromium, the
|
|
`colors.webpage.prefers_color_scheme_dark` setting broke with Qt 5.15.2. It now
|
|
works properly again.
|
|
- A bug in the `pkg_resources` module used by qutebrowser caused deprecation
|
|
warnings to appear on start with Python 3.9 on some setups. Those are now
|
|
hidden.
|
|
- Minor performance improvements.
|
|
- Fix for various functionality breaking in private windows with v1.14.0,
|
|
after the last private window is closed. This includes:
|
|
* Ad blocking
|
|
* Downloads
|
|
* Site-specific quirks (e.g. for Google login)
|
|
* Certain settings such as `content.javascript.enabled`
|
|
|
|
[[v1.14.0]]
|
|
v1.14.0 (2020-10-15)
|
|
--------------------
|
|
|
|
Note: The QtWebEngine version bundled with the Windows/macOS
|
|
releases is still based on Qt 5.15.0 (like with qutebrowser v1.12.0 and
|
|
v1.13.0) rather than Qt 5.15.1 because of a
|
|
https://bugreports.qt.io/browse/QTBUG-86752[Qt bug] causing
|
|
frequent renderer process crashes. When Qt 5.15.2 is released
|
|
(planned for November 3rd, 2020), a qutebrowser v1.14.x patch
|
|
release with an updated QtWebEngine will be released.
|
|
|
|
Furthermore, this release still only contains partial session support for QtWebEngine
|
|
5.15. It's still recommended to run against Qt 5.15 due to the security patches
|
|
contained in it -- for most users, the added workarounds seem to work out fine. A
|
|
rewritten session support will be part of qutebrowser v2.0.0, tentatively planned for the
|
|
end of the year or early 2021.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `content.media_capture` setting got split up into three more fine-grained
|
|
settings, `content.media.audio_capture`, `.video_capture` and
|
|
`.audio_video_capture`. Before this change, answering "always" to a prompt
|
|
about e.g. audio capturing would set the `content.media_capture` setting,
|
|
which would also allow the same website to capture video on a future visit.
|
|
Now every prompt will set the appropriate setting, though existing
|
|
`content.media_capture` settings in `autoconfig.yml` will be migrated to set
|
|
all three settings. To review/change previously granted permissions, use
|
|
`:config-diff` and e.g.
|
|
`:config-unset -u example.org content.media.video_capture`.
|
|
- The main window's (invisible) background color is now set to transparent.
|
|
This allows using the alpha channel in statusbar/tabbar colors to get a
|
|
partially transparent qutebrowser window on a setup which supports doing so.
|
|
- If QtWebEngine is compiled with PipeWire support and libpipewire is
|
|
installed, qutebrowser will now support screen sharing on Wayland. Note that
|
|
QtWebEngine 5.15.1 is needed.
|
|
- When `:undo` is used with a count, it now reopens the count-th to last tab
|
|
instead of the last one. The depth can instead be passed as an argument,
|
|
which is also completed.
|
|
- The default `completion.timestamp_format` now also shows the time.
|
|
- `:back` and `:forward` now take an optional index which is completed using
|
|
the current tab's history.
|
|
- The time a website in a tab was visited is now saved/restored in sessions.
|
|
- When attempting to download a file to a location for which there's already a
|
|
still-running download, a confirmation prompt is now displayed.
|
|
- `:completion-item-focus` now understands `next-page` and `prev-page` with
|
|
corresponding `<PgDown>` / `<PgUp>` default bindings.
|
|
- When the last private window is closed, all private browsing data is now cleared.
|
|
- When `config.source(...)` is used with a `--config-py` argument given,
|
|
qutebrowser used to search relative files in the config basedir, leading to them
|
|
not being found when using a shared `config.py` for different basedirs. Instead,
|
|
they are now searched relative to the given `config.py` file.
|
|
- `navigate prev` (`[[`) and `navigate next` (`]]`) now recognize links with
|
|
`nav-prev` and `nav-next` classes, such as those used by the Hugo static site
|
|
generator.
|
|
- When `tabs.favicons` is disabled but `tabs.tabs_are_windows` is set, the
|
|
window icon is still set to the page's favicon now.
|
|
- The `--asciidoc` argument to `src2asciidoc.py` and `build_release.py` now
|
|
only takes the path to `asciidoc.py`, using the current Python interpreter by
|
|
default. To configure the Python interpreter as well, use
|
|
`--asciidoc-python path/to/python --asciidoc path/to/asciidoc.py`
|
|
instead of the former
|
|
`--asciidoc path/to/python path/to/asciidoc.py`.
|
|
- Dark mode (`colors.webpage.darkmode.*`) is now supported with Qt 5.15.2 (which
|
|
is not released yet).
|
|
- The default for the darkmode `policy.images` setting is now set to `smart`
|
|
which fixes issues with e.g. formulas on Wikipedia.
|
|
- The `readability-js` userscript now adds some CSS to improve the reader mode
|
|
styling in various scenarios:
|
|
* Images are now shrunk to the page width, similarly to what Firefox' reader
|
|
mode does.
|
|
* Some images are now displayed as block (rather than inline) which is what
|
|
Firefox' reader mode does as well.
|
|
* Blockquotes are now styled more distinctively, again based on the Firefox
|
|
reader mode.
|
|
* Code blocks are now easier to distinguish from text and tables have visible
|
|
cell margins.
|
|
- The `readability-js` userscript now supports hint userscript mode.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New argument `strip` for `:navigate` which removes queries and
|
|
fragments from the current URL.
|
|
- `:undo` now has a new `-w` / `--window` argument, which can be used to
|
|
restore closed windows (rather than tabs). This is bound to `U` by default.
|
|
- `:jseval` can now take `javascript:...` URLs via a new `--url` flag.
|
|
- New replacement `{aligned_index}` for `tabs.title.format` and `format_pinned`
|
|
which behaves like `{index}`, but space-pads the index based on the total
|
|
numbers of tabs. This can be used to get aligned tab texts with vertical
|
|
tabs.
|
|
- New command `:devtools-focus` (bound to `wIf`) to toggle keyboard focus
|
|
between the devtools and web page.
|
|
- The `--target` argument to qutebrowser now understands a new `private-window`
|
|
value, which can be used to open a private window in an existing instance
|
|
from the commandline.
|
|
- The `:download-open` command now has a new `--dir` flag, which can be used to
|
|
open the directory containing the downloaded file. An entry to do the same
|
|
was also added to the context menu.
|
|
- Messages are now wrapped when they are too long to be displayed on a single line.
|
|
- New possible `--debug-flag` values:
|
|
* `wait-renderer-process` waits for a `SIGUSR1` in the renderer process so a
|
|
debugger can be attached.
|
|
* `avoid-chromium-init` allows using `--version` without needing a working
|
|
QtWebEngine/Chromium.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- A URL pattern with a `*.` host was considered valid and matched all hosts.
|
|
Due to keybindings like `tsH` toggling scripts for `*://*.{url:host}/*`,
|
|
invoking them on pages without a host (e.g. `about:blank`) could result in
|
|
accidentally allowing/blocking JavaScript for all pages. Such patterns are
|
|
now considered invalid, with existing patterns being automatically removed
|
|
from `autoconfig.yml`.
|
|
- When `scrolling.bar` was set to `overlay` (the default), qutebrowser would
|
|
internally override any `enable-features=...` flags passed via `qt.args` or
|
|
`--qt-flag`. It now correctly combines existing `enable-feature` flags with
|
|
internal ones.
|
|
- Elements with an inherited `contenteditable` attribute now trigger insert
|
|
mode and get hints assigned correctly.
|
|
- When checkmarks, radio buttons and some other elements are styled via the
|
|
Bootstrap CSS framework, they now get hints correctly.
|
|
- When the session file isn't writable when qutebrowser exits, an error is now
|
|
logged instead of crashing.
|
|
- When using `-m` with the `qute-lastpass` userscript, it accidentally matched
|
|
URLs containing the match as substring. This is now fixed.
|
|
- When a filename is derived from a page's title, it's now shortened to the
|
|
maximum filename length permitted by the filesystem.
|
|
- `:enter-mode register` crashed since v1.13.0, it now displays an error
|
|
instead.
|
|
- With the QtWebKit backend, webpage resources loading certain invalid URLs
|
|
could cause a crash, which is now fixed.
|
|
- When `:config-edit` is used but no `config.py` exists yet, the file is now
|
|
created (and watched for changes properly) before spawning the external
|
|
editor.
|
|
- When hint mode was entered from outside normal mode, the status bar was empty
|
|
instead of displaying the proper text. This is now fixed.
|
|
- When entering different modes too quickly (e.g. pressing `fV`), the statusbar
|
|
could end up in a confusing state. This is now fixed.
|
|
- When qutebrowser quits, running downloads are now cancelled properly.
|
|
- The site-specific quirk for `web.whatsapp.com` has been updated to work after recent
|
|
changes in WhatsApp.
|
|
- Highlighting in the completion now works properly when UTF-16 surrogate pairs (such as
|
|
emoji) are involved.
|
|
- When a windowed inspector is clicked, insert mode now isn't entered anymore.
|
|
- When `:undo` is used to re-open a tab, but `tabs.tabs_are_windows` was set between
|
|
closing and undoing the close, qutebrowser crashed. This is now fixed.
|
|
- With QtWebEngine 5.15.0, setting the darkmode image policy to `smart` leads to
|
|
renderer process crashes. The offending setting value is now ignored with a
|
|
warning.
|
|
- Fixes for the `qute-pass` userscript:
|
|
* With newer `gopass` versions, a deprecation notice was copied as
|
|
password due to `qute-pass` using it in a deprecated way.
|
|
* The `--password-store` argument didn't actually set
|
|
`PASSWORD_STORE_DIR` for `pass`, resulting in `qute-pass` finding matches but the
|
|
underlying `pass` not finding matching passwords.
|
|
|
|
[[v1.13.1]]
|
|
v1.13.1 (2020-07-17)
|
|
--------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- With Qt 5.14, shared workers are now disabled. This works around a crash in
|
|
QtWebEngine on certain sites (like the Epic Games Store or the Unreal Engine
|
|
page). On older versions, you can get the same effect by doing
|
|
`:set qt.args "['disable-shared-workers']"` and `:restart` (or set the
|
|
setting in your `config.py`).
|
|
- When a window is closed, the tab it contains are now correctly shut down
|
|
(closing e.g. any dialogs which are still open for those tabs).
|
|
- The Qt 5.15 session workaround now loads the correct (rather than the last)
|
|
page when `:back` was used before saving a session.
|
|
- In certain situations on Windows, qutebrowser fails to find the username of
|
|
the user launching qutebrowser (most likely due to a bug in the application
|
|
launching it). When this happens, an error is now displayed instead of
|
|
crashing.
|
|
- Certain `autoconfig.yml` with an invalid structure could lead to crashes,
|
|
which are now fixed.
|
|
- Generating docs with `asciidoc2html.py` (e.g. via `mkvenv.py`) now works
|
|
correctly without Pygments being installed system-wide.
|
|
- Ever since Qt 5.9, when `input.mouse.rocker_gestures` was enabled, the
|
|
context menu still was shown when clicking the right mouse button, thus
|
|
preventing the rocker gestures. This is now fixed.
|
|
- Clicking the inspector switched from existing modes (such as passthrough) to
|
|
normal mode since v1.13.0. Now insert mode is only entered when the inspector
|
|
is clicked in normal mode.
|
|
- Pulseaudio now shows qutebrowser's audio streams as qutebrowser correctly,
|
|
rather than showing them as Chromium with some Qt versions.
|
|
- If `:help` was called with a deprecated command (e.g. `:help :inspector`),
|
|
the help page would show despite deprecated commands not being documented.
|
|
This now shows an error instead.
|
|
- The `qute-lastpass` userscript now filters out duplicate entries with
|
|
`--merge-candidates`.
|
|
|
|
[[v1.13.0]]
|
|
v1.13.0 (2020-06-26)
|
|
--------------------
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- The `:inspector` command is deprecated and has been replaced by a new
|
|
`:devtools` command (see below).
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `:debug-log-level` command was removed as it's replaced by the new
|
|
`logging.level.console` setting.
|
|
- The `qute://plainlog` special page got replaced by `qute://log?plain` - the
|
|
names of those pages is considered an implementation detail, and
|
|
`:messages --plain` should be used instead.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Changes to commands:
|
|
* `:config-write-py` now adds a note about `config.py` files being targeted at
|
|
advanced users.
|
|
* `:report` now takes two optional arguments for bug/contact information, so
|
|
that it can be used without the report window popping up.
|
|
* `:message` now takes a `--logfilter` / `-f` argument, which is a list of
|
|
logging categories to show.
|
|
* `:debug-log-filter` now understands the full logfilter syntax.
|
|
- Changes to settings:
|
|
* `fonts.tabs` has been split into `fonts.tabs.{selected,unselected}` (see
|
|
below).
|
|
* `statusbar.hide` has been renamed to `statusbar.show` with the possible
|
|
values being `always` (`hide = False`), `never` (`hide = True`) or
|
|
`in-mode` (new, only show statusbar outside of normal mode.
|
|
* The `QtFont` config type formerly used for `fonts.tabs` and
|
|
`fonts.debug_console` is now removed and entirely replaced by `Font`. The
|
|
former distinction was mainly an implementation detail, and the accepted
|
|
values shouldn't have changed.
|
|
* `input.rocker_gestures` has been renamed to `input.mouse.rocker_gestures`.
|
|
* `content.dns_prefetch` is now enabled by default again, since the crashes
|
|
it caused are now fixed (Qt 5.15) or worked around.
|
|
* `scrolling.bar` supports a new `overlay` value to show an overlay
|
|
scrollbar, which is now the default. On unsupported configurations (on Qt <
|
|
5.11, with QtWebKit or on macOS), the value falls back to `when-searching`
|
|
or `never` (QtWebKit).
|
|
* `url.auto_search` supports a new `schemeless` value which always opens a
|
|
search unless the given URL includes an explicit scheme.
|
|
- New handling of bindings in hint mode which fixes various bugs and allows for
|
|
single-letter keybindings in hint mode.
|
|
- The statusbar now shows partial keychains in all modes (e.g. while hinting).
|
|
- New `t[Cc][Hh]` default bindings which work similarly to the `t[Ss][Hh]`
|
|
bindings for JavaScript but toggle cookie permissions.
|
|
- The `tor_identity` userscript now takes the password via a `-p` flag and has
|
|
a new `-c` flag to customize the Tor control port.
|
|
- Small performance improvements.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New settings:
|
|
* `logging.level.ram` and `logging.level.console` to configure the default
|
|
logging levels via the config.
|
|
* `fonts.tabs.selected` and `fonts.tabs.unselected` to set the font of the
|
|
selected tab independently from unselected tabs (e.g. to make it bold).
|
|
* `input.mouse.back_forward_buttons` which can be set to `false` to disable
|
|
back/forward mouse buttons.
|
|
- New `:devtools` command (replacing `:inspector`) with various improved
|
|
functionality:
|
|
* The devtools can now be docked to the main window, by running
|
|
`:devtools left` (`wIh`), `bottom` (`wIj`), `top` (`wIk`) or `right`
|
|
(`wIl`). To show them in a new window, use `:devtools window` (`wIw`).
|
|
Using `:devtools` (`wi`) will open them at the last used position.
|
|
* The devtool window now has a "qutebrowser developer tools" window title.
|
|
* When a resource is opened from the devtools, it now opens in a proper
|
|
qutebrowser tab.
|
|
* On Fedora, when the `qt5-webengine-devtools` package is missing, an error
|
|
is now shown instead of a blank inspector window.
|
|
* If opened as a window, the devtools are now closed properly when the
|
|
associated tab is closed.
|
|
* When the devtools are clicked, insert mode is entered automatically.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when `tabs.focus_stack_size` is set to -1.
|
|
- Crash when a `pdf.js` file for PDF.js exists, but `viewer.html` does not.
|
|
- Crash when `:completion-item-yank --sel` is used on a platform without
|
|
primary selection support (e.g. Windows/macOS).
|
|
- Crash when there's a feature permission request from Qt with an invalid URL
|
|
(which happens due to a Qt bug with Qt 5.15 in private browsing mode).
|
|
- Crash in rare cases where QtWebKit/QtWebEngine imports fail in unexpected
|
|
ways.
|
|
- Crash when something removed qutebrowser's IPC socket file and it's been
|
|
running for 6 hours.
|
|
- `:config-write-py` now works with paths starting with `~/...` again.
|
|
- New site-specific quirk for a missing `globalThis` in Qt <= 5.12 on Reddit
|
|
and Spotify.
|
|
- When `;` is added to `hints.chars`, using hint labels containing `;;` now
|
|
works properly.
|
|
- Hint letters outside of ASCII should now work.
|
|
- When `bindings.key_mappings` is used with hints, it now works properly with
|
|
letters outside of ASCII as well.
|
|
- With Qt 5.15, the audible/muted indicators are not updated properly due to a
|
|
Qt bug. This release adds a workaround so that at least the muted indicator
|
|
is shown properly.
|
|
- As a workaround for crashes with QtWebEngine versions between 5.12 and 5.14
|
|
(inclusive), changing the user agent (`content.headers.user_agent`) exposed
|
|
to JS now requires a restart. The corresponding HTTP header is not affected.
|
|
|
|
[[v1.12.0]]
|
|
v1.12.0 (2020-06-01)
|
|
--------------------
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- `tox -e mkvenv` which was deprecated in qutebrowser v1.10.0 is now
|
|
removed. Use the `mkvenv.py` script instead.
|
|
- Support for using `config.bind(key, None)` in `config.py` to unbind a
|
|
key was deprecated in v1.8.2 and is now removed. Use
|
|
`config.unbind(key)` instead.
|
|
- `:yank markdown` was deprecated in v1.7.0 and is now removed. Use
|
|
`:yank inline [{title}]({url})` instead.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `:debug-keytester` command, which shows a "key tester" widget.
|
|
Previously, that was only available as a separate application via `python3 -m
|
|
scripts.keytester`.
|
|
- New `:config-diff` command which opens the `qute://configdiff` page.
|
|
- New `--debug-flag log-cookies` to log cookies to the debug log.
|
|
- New `colors.contextmenu.disabled.{fg,bg}` settings to customize colors for
|
|
disabled items in the context menu.
|
|
- New line selection mode (`:toggle-selection --line`), bound to `Shift-V` in caret mode.
|
|
- New `colors.webpage.darkmode.*` settings to control Chromium's dark mode.
|
|
Note that those settings only work with QtWebEngine on Qt >= 5.14 and require
|
|
a restart of qutebrowser.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows and macOS releases now ship Qt 5.15, which is based on Chromium
|
|
80.0.3987.163 with security fixes up to 81.0.4044.138.
|
|
- The `content.cookies.accept` setting now accepts URL patterns.
|
|
- Tests are now included in release tarballs. Note that only running them with
|
|
the exact dependencies listed in
|
|
`misc/requirements/requirements-tests.txt{,-raw}` is supported.
|
|
- The `:tab-focus` command now has completion for tabs in the current window.
|
|
- The `bindings.key_mappings` setting now maps `<Ctrl+I>` to the tab key by default.
|
|
- `:tab-give --private` now detaches a tab into a new private window.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Using `:open -s` now only rewrites `http://` in URLs to `https://`, not other
|
|
schemes like `qute://`.
|
|
- When an unhandled exception happens in certain parts of the code (outside of
|
|
the main thread), qutebrowser did crash or freeze when trying to show its
|
|
exception handler. This is now fixed.
|
|
- `:inspector` now works correctly when cookies are disabled globally.
|
|
- Added workaround for a (Gentoo?) PyQt/packaging issue related to the
|
|
`QWebEngineFindTextResult` handling added in v1.11.0.
|
|
- When entering caret selection mode (`v, v`) very early before a page is
|
|
loaded, an error is now shown instead of a crash happening.
|
|
- The workaround for session loading with Qt 5.15 now handles
|
|
`sessions.lazy_restore` so that the saved page is loaded instead of the
|
|
"stub" page with no possibility to get to the web page.
|
|
- A site specific quirk to allow typing accented characters on Google
|
|
Docs was active for docs.google.com, but not drive.google.com. It is
|
|
now applied for both subdomains.
|
|
- With older graphics hardware (OpenGL < 4.3) with Qt 5.14 on Wayland, WebGL
|
|
causes segfaults. Now qutebrowser detects that combination and suggests to
|
|
disable WebGL or use XWayland.
|
|
|
|
[[v1.11.1]]
|
|
v1.11.1 (2020-05-07)
|
|
--------------------
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
- CVE-2020-11054: After a certificate error was overridden by the user,
|
|
qutebrowser displays the URL as yellow (`colors.statusbar.url.warn.fg`).
|
|
However, when the affected website was subsequently loaded again, the URL was
|
|
mistakenly displayed as green (`colors.statusbar.url.success_https`). While
|
|
the user already has seen a certificate error prompt at this point (or set
|
|
`content.ssl_strict` to `false` which is not recommended), this could still
|
|
provide a false sense of security. This is now fixed.
|
|
|
|
[[v1.11.0]]
|
|
v1.11.0 (2020-04-27)
|
|
--------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New settings:
|
|
* `search.wrap` which can be set to false to prevent wrapping around the page
|
|
when searching. With QtWebEngine, Qt 5.14 or newer is required.
|
|
* `content.unknown_url_scheme_policy` which allows controlling when an
|
|
external application is opened for external links (never, from user
|
|
interaction, always).
|
|
* `content.fullscreen.overlay_timeout` to configure how long the fullscreen
|
|
overlay should be displayed. If set to `0`, no overlay is displayed.
|
|
* `hints.padding` to add additional padding for hints.
|
|
* `hints.radius` to set a border radius for hints (set to `3` by default).
|
|
- New placeholders for `url.searchengines` values:
|
|
* `{unquoted}` inserts the search term without any quoting.
|
|
* `{semiquoted}` (same as `{}`) quotes most special characters, but slashes
|
|
remain unquoted.
|
|
* `{quoted}` (same as `{}` in earlier releases) also quotes slashes.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- First adaptions to Qt 5.15, including a stop-gap measure for session loading
|
|
not working properly with it.
|
|
- Searching now wraps around the page by default with QtWebKit (where it didn't
|
|
before). Set `search.wrap` to `false` to restore the old behavior.
|
|
- The `{}` placeholder for search engines (the `url.searchengines` setting) now
|
|
does not quote slashes anymore, but other characters typically encoded in
|
|
URLs still get encoded. This matches the behavior of search engines in
|
|
Chromium. To revert to the old behavior, use `{quoted}` instead.
|
|
- The `content.windowed_fullscreen` setting got renamed to
|
|
`content.fullscreen.window`.
|
|
- Mouse-wheel scrolling is now prevented while hints are active.
|
|
- Changes to userscripts:
|
|
* `qute-bitwarden` now has an optional `--totp` flag which can be used
|
|
to copy TOTP codes to clipboard (requires the `pyperclip` module).
|
|
* `readability-js` now opens readability tabs next to the original
|
|
tab (using the `:open --related` flag).
|
|
* `readability-js` now displays a favicon for readability tabs.
|
|
* `password_fill` now triggers a `change` JavaScript event after filling the
|
|
data.
|
|
- The `dictcli.py` script now shows better error messages.
|
|
- Various improvements to the `mkvenv.py` script (mainly useful for development).
|
|
- Minor performance improvements.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- A warning about old Qt versions is now also shown with Qt 5.9 and 5.10, as
|
|
support for Qt < 5.11 will be dropped in qutebrowser v2.0.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- `unsafeWindow` is now defined for Greasemonkey scripts with QtWebKit.
|
|
- The proxied `window` global is now shared between different
|
|
Greasemonkey scripts (but still separate from the page's `window`), to
|
|
match the original Greasemonkey implementation.
|
|
- The `--output-messages` (`-m`) flag added in v1.9.0 now also works correctly
|
|
when using `:spawn --userscript`.
|
|
- `:version` and `--version` now don't crash if there's an (invalid)
|
|
`/etc/os-release` file which has non-comment lines without a `=` character.
|
|
- Scripts in `scripts/` now report errors to `stderr` correctly, instead of
|
|
using `stdout`.
|
|
|
|
[[v1.10.2]]
|
|
v1.10.2 (2020-04-17)
|
|
--------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows and macOS releases now bundle Qt 5.14.2, including security fixes up
|
|
to Chromium 80.0.3987.132.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The WhatsApp workaround now also works when using WhatsApp in languages other
|
|
than English.
|
|
- The `mkvenv.py` script now also works properly on Windows.
|
|
|
|
[[v1.10.1]]
|
|
v1.10.1 (2020-02-15)
|
|
--------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when saving data fails during shutdown (which was a regression
|
|
introduced in v1.9.0).
|
|
- Error while reading config.py when `fonts.tabs` or `fonts.debug_console` is
|
|
set to a value including `default_size`.
|
|
- When a `state` file contains invalid UTF-8 data, a proper error is now
|
|
displayed.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- When the Qt version changes (and also on the first start of v1.10.1 on Qt
|
|
5.14), service workers registered by websites are now deleted. This is done
|
|
as a workaround for QtWebEngine issues causing crashes when visiting pages
|
|
using service workers (such as Google Mail/Drive). No persistent data should
|
|
be affected as websites can re-register their service workers, but a (single)
|
|
backup is kept at `webengine/Service Worker-bak` in qutebrowser's data
|
|
directory.
|
|
- Better output on stdout when config errors occur.
|
|
- The `mkvenv.py` now ensures the latest versions of `setuptools` and `wheel`
|
|
are installed in the virtual environment, which should speed up installation
|
|
and fix install issues.
|
|
- The default for `colors.statusbar.command.private.bg` has been changed to a
|
|
slightly different gray, as a workaround for a Qt issue where the cursor was
|
|
invisible in that case.
|
|
|
|
[[v1.10.0]]
|
|
v1.10.0 (2020-02-02)
|
|
--------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `colors.webpage.prefers_color_scheme_dark` setting which allows forcing
|
|
`prefers-color-scheme: dark` colors for websites (QtWebEngine with Qt 5.14 or
|
|
newer).
|
|
- New `fonts.default_size` setting which can be used to set a bigger font size
|
|
for all UI fonts.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `fonts.monospace` setting has been removed and replaced by
|
|
`fonts.default_family`. The new `default_family` setting is improved in
|
|
various ways:
|
|
* It accepts a list of font families (or a single font family) rather than a
|
|
comma-separated string. As an example, instead of
|
|
`fonts.monospace = "Courier, Monaco"`, use
|
|
`fonts.default_family = ["Courier", "Monaco"]`.
|
|
* Since a list is now accepted as value, no quoting of font names with spaces
|
|
is required anymore. As an example, instead of
|
|
`fonts.monospace = '"xos4 Terminus"'`, use
|
|
`fonts.default_family = 'xos4 Terminus'`.
|
|
* It is now empty by default rather than having a long list of font names in
|
|
the default config. When the value is empty, the system's default
|
|
monospaced font is used.
|
|
- If `monospace` is now used in a font value, it's used literally and not
|
|
replaced anymore. Instead, `default_family` is replaced as explained above.
|
|
- The default `content.headers.accept_language` value now adds a `;q=0.9`
|
|
classifier which should make the value sent more in-line with what other
|
|
browsers do.
|
|
- The `qute-pass` userscript now has a new `--mode gopass` switch which uses
|
|
gopass rather than pass.
|
|
- The `tox -e mkvenv` (or `mkvenv-pypi`) way of installing qutebrowser is now
|
|
replaced by a `mkvenv.py` script. See the updated
|
|
link:install{outfilesuffix}#tox[install instructions] for details.
|
|
- macOS and Windows releases now ship with Qt/QtWebEngine 5.14.1
|
|
* Based on Chromium 77.0.3865.129 with security fixes up to Chromium 79.0.3945.117.
|
|
* Sandboxing is now enabled on Windows.
|
|
* Monospace fonts are now used when a website requests them on macOS 10.15.
|
|
* Web notifications are now supported.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- When quitting qutebrowser, components are now cleaned up differently. This
|
|
should fix certain (rare) segmentation faults and exceptions when quitting,
|
|
especially with the new exit scheme introduced in in PyQt5 5.13.1.
|
|
- Added a workaround for per-domain settings (e.g. a JavaScript whitelist) not
|
|
being applied in some scenarios with Qt 5.13 and above.
|
|
- Added additional site-specific quirk for WhatsApp Web.
|
|
- The `qute-pass` userscript now works correctly when a `PASSWORD_STORE_DIR`
|
|
ending with a trailing slash is given.
|
|
|
|
[[v1.9.0]]
|
|
v1.9.0 (2020-01-08)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Initial support for Qt 5.14.
|
|
- New `content.site_specific_quirks` setting which enables workarounds for
|
|
websites with broken user agent parsing (enabled by default, see the "Fixed"
|
|
section for fixed websites).
|
|
- New `qt.force_platformtheme` setting to force Qt to use a given platform
|
|
theme.
|
|
- New `tabs.tooltips` setting which can be used to disable hover tooltips for
|
|
tabs.
|
|
- New settings to configure the appearance of context menus:
|
|
* `fonts.contextmenu`
|
|
* `colors.contextmenu.menu.bg`
|
|
* `colors.contextmenu.menu.fg`
|
|
* `colors.contextmenu.selected.bg`
|
|
* `colors.contextmenu.selected.fg`
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The macOS binaries now require macOS 10.13 High Sierra or newer. Support for
|
|
macOS 10.12 Sierra has been dropped.
|
|
- The `content.headers.user_agent` setting now is a format string with the
|
|
default value resembling the behavior of it being set to null before.
|
|
This slightly changes the sent user agent for QtWebKit: Instead of mentioning
|
|
qutebrowser and its version it now mentions the Qt version.
|
|
- The `qute-pass` userscript now has a new `--extra-url-suffixes` (`-s`)
|
|
argument which passes extra URL suffixes to the tldextract library.
|
|
- A stack is now used for `:tab-focus last` rather than just saving one tab.
|
|
Additionally, `:tab-focus` now understands `stack-prev` and `stack-next`
|
|
arguments to traverse that stack.
|
|
- `:hint` now has a new `right-click` target which allows right-clicking
|
|
elements via hints.
|
|
- The Terminus font has been removed from the default monospace fonts since it
|
|
caused trouble with HighDPI setups. To get it back, add either
|
|
`"xos4 Terminus"` or `Terminus` (depending on fontconfig version) to the
|
|
beginning of the `fonts.monospace` setting.
|
|
- As a workaround for a Qt bug causing a segfault, desktop sharing is now
|
|
automatically rejected on Qt versions before 5.13.2. Note that screen sharing
|
|
still won't work on Linux before Qt 5.14.
|
|
- Comment lines in quickmarks/bookmarks files are now ignored. However, note that
|
|
qutebrowser will overwrite those files if bookmark/quickmark commands are used.
|
|
- Reopening PDF.js pages from e.g. a session file will now re-download and
|
|
display those PDFs.
|
|
- Improved behavior when using `:open-download` in a sandboxed environment (KDE
|
|
Flatpak).
|
|
- qutebrowser now enables the new PyQt exit scheme, which should result in
|
|
things being cleaned up more properly (e.g. cookies being saved even without
|
|
a timeout) on PyQt 5.13.1 and newer.
|
|
- The `:spawn` command has a new `-m` / `--output-messages` argument which
|
|
shows qutebrowser messages based on a command's standard output/error.
|
|
- Improved insert mode detection for some CodeMirror usages (e.g. in
|
|
JupyterLab and Jupyter Notebook).
|
|
- If JavaScript is disabled globally, `file://*` now doesn't automatically have
|
|
it enabled anymore. Run `:set -u file://* content.javascript.enabled true` to
|
|
restore the previous behavior.
|
|
- Settings with URL patterns can now be used to affect the behavior of the
|
|
QtWebEngine inspector. Note that the underlying URL is `chrome-devtools://*`
|
|
from Qt 5.11 to Qt 5.13, but `devtools://*` with Qt 5.14.
|
|
- Improvements when `tabs.tabs_are_windows` is set:
|
|
* Using `:tab-take` and `:tab-give` now shows an error, as the effect of
|
|
doing so would be equal to `:tab-clone`.
|
|
* The `:buffer` completion doesn't show any window sections anymore, only a
|
|
flat list of tabs.
|
|
- Improved parsing in some corner cases for the `QtFont` type (used for
|
|
`fonts.tabs` and `fonts.debug_console`).
|
|
- Performance improvements for the following areas:
|
|
* Adding settings with URL patterns
|
|
* Matching of settings using URL patterns
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Downloads (e.g. via `:download`) now see the same user agent header as
|
|
webpages, which fixes cases where overly restrictive servers/WAFs closed the
|
|
connection before.
|
|
- `dictcli.py` now works correctly on Windows again.
|
|
- The logic for `:restart` has been revisited, which should fix issues with
|
|
relative basedirs.
|
|
- Remaining issues related to Python 3.8 are now fixed (mostly warnings,
|
|
especially on QtWebKit).
|
|
- Workaround for a Qt bug where a page never finishes loading with a
|
|
non-overridable TLS error (e.g. due to HSTS).
|
|
- The `qute://configdiff` page now doesn't show built-in settings (e.g.
|
|
javascript being enabled for `qute://` and `chrome://` pages) anymore.
|
|
- The `qute-lastpass` userscript now stops prompting for passwords when
|
|
cancelling the password input.
|
|
- The tab hover text now shows ampersands (&) correctly.
|
|
- With QtWebEngine and Qt >= 5.11, the inspector now shows its icons correctly
|
|
even if loading of images is disabled via the `content.images` setting.
|
|
- Entering a very long string (over 50k characters) in the completion used to
|
|
crash, now it shows an error message instead.
|
|
- Various improvements for URL/searchengine detection:
|
|
* Strings with a dot but with characters not allowed in a URL (e.g. an
|
|
underscore) are now not treated as URL anymore.
|
|
* Strings like "5/8" are now not treated as IP anymore.
|
|
* URLs with an explicit scheme and a space (%20) are correctly treated as
|
|
URLs.
|
|
* Mail addresses are now treated as search terms.
|
|
* With `url.open_base_url` set, searching for a search engine name now works.
|
|
* `url.open_base_url = True` together with `url.auto_search = 'never'` is now
|
|
handled correctly.
|
|
* Fixed crash when a search engine URL turns out to be invalid.
|
|
- New "site specific quirks", which work around some broken websites:
|
|
* WhatsApp Web
|
|
* Google Accounts
|
|
* Slack (with older QtWebEngine versions)
|
|
* Dell.com support pages (with Qt 5.7)
|
|
* Google Docs (fixes broken IME/compose key)
|
|
|
|
[[v1.8.3]]
|
|
v1.8.3 (2019-12-05)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Segmentation fault introduced in v1.8.2 when a tab gets closed immediately
|
|
after it has finished loading (e.g. with certain login flows).
|
|
|
|
[[v1.8.2]]
|
|
v1.8.2 (2019-11-22)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS releases now ship with Qt 5.12.6. This includes security fixes
|
|
up to Chromium 77.0.3865.120 plus a security fix for CVE-2019-13720 from
|
|
Chromium 78.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Unbinding keys via `config.bind(key, None)` accidentally worked in
|
|
v1.7.0 but raises an exception in v1.8.0. It now works again, but is
|
|
deprecated and shows an error. Note that `:config-py-write` did write
|
|
such invalid lines before v1.8.0, so existing config files might need
|
|
adjustments.
|
|
- The `readability-js` userscript now handles encodings correctly (which it
|
|
didn't before for some websites).
|
|
- <Shift-Insert> can now be used to paste text starting with a hyphen.
|
|
- Following hints via the number keypad now works properly again.
|
|
- Errors while reading the state file are now displayed instead of causing a
|
|
crash.
|
|
- Crash when using `:debug-log-level` without a console attached.
|
|
- Downloads are now hidden properly when the browser is in fullscreen mode.
|
|
- Crash when setting `colors.webpage.bg` to an empty value with QtWebKit.
|
|
- Crash when the history database file is not a proper sqlite database.
|
|
- Workaround for missing/broken error pages on Debian.
|
|
- A deprecation warning (caused by pywin32) about the imp module on Windows is
|
|
now hidden.
|
|
|
|
[[v1.8.1]]
|
|
v1.8.1 (2019-09-27)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- No code changes - this release only repackages the Windows/macOS
|
|
releases due to issues with the v1.8.0 release.
|
|
- Updated dependencies for Windows/macOS releases:
|
|
* macOS and Windows releases now ship with Qt/QtWebEngine 5.12.5. Those
|
|
are based on Chromium 69.0.3497.128 with security fixes up to Chromium
|
|
76.0.3809.87.
|
|
* Qt 5.13 couldn't be used yet due to various bugs in Qt 5.13.0 and .1.
|
|
|
|
[[v1.8.0]]
|
|
v1.8.0 (2019-09-25)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New userscripts:
|
|
* `readability-js` which uses Mozilla's node.js readability library.
|
|
* `qute-bitwarden` which integrates the Bitwarden CLI.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The statusbar text for passthrough mode now shows all configured bindings to
|
|
leave the mode, not only one.
|
|
- When `:config-source` is used with a relative filename, the file is now
|
|
searched in the config directory instead of the current working directory.
|
|
- HTML5 inputs with date/time types now enter insert mode when selected.
|
|
- `dictcli.py` now shows where dictionaries are installed to and complains when
|
|
running it as root if doing so would result in a wrong installation path.
|
|
- The Makefile now can also run `setup.py build` when invoked without a target.
|
|
- Changes to userscripts:
|
|
* qute-pass: Don't run `pass` if only a username is requested.
|
|
* qute-pass: Support private domains like `myrouter.local`.
|
|
* readability: Improved CSS styling.
|
|
- Performance improvements in various areas:
|
|
* Loading config files
|
|
* Typing without any completion matches
|
|
* General keyboard handling
|
|
* Scrolling
|
|
- `:version` now shows details about the loaded autoconfig.yml/config.py.
|
|
- Hosts are now additionally looked up including their ports in netrc files.
|
|
- With Qt 5.10 or newer, qutebrowser now doesn't force software rendering with
|
|
Nouveau drivers anymore. However, QtWebEngine/Chromium still do so.
|
|
- The XSS Auditor is now disabled by default (`content.xss_auditing` =
|
|
`false`). This reflects a similar change in Chromium, see
|
|
their https://www.chromium.org/developers/design-documents/xss-auditor[XSS
|
|
Auditor Design Document] for details.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- `:config-write-py` now correctly writes `config.unbind(...)` lines (instead
|
|
of `config.bind(..., None)`) when unbinding a default keybinding.
|
|
- Prevent repeat keyup events for JavaScript when a key is held down.
|
|
- The Makefile now rebuilds the manpage correctly.
|
|
- `~/.config/qutebrowser/blocked-hosts` can now also contain /etc/hosts-like
|
|
lines, not just simple hostnames.
|
|
- Restored compatibility with Jinja2 2.8 (e.g. used on Debian Stretch or Ubuntu
|
|
16.04 LTS).
|
|
- Fixed implicit type conversion warning with Python 3.8.
|
|
- The desktop file now sets `StartupWMClass` correctly, so the qutebrowser icon
|
|
is no longer shown twice in the Gnome dock when pinned.
|
|
- Bindings involving keys which need the AltGr key now work properly.
|
|
- Fixed crash (caused by a Qt bug) when typing characters above the Unicode BMP
|
|
(such as certain emoji or CJK characters).
|
|
- `dictcli.py` now works properly again.
|
|
- Shift can now be used while typing hint keystrings, which e.g. allows typing
|
|
number hints on French keyboards.
|
|
- With rapid hinting in number mode, backspace now edits the filter text after
|
|
following a hint.
|
|
- A certain type of error ("locking protocol") while initializing sqlite now
|
|
isn't handled as crash anymore.
|
|
- Crash when showing a permission request in certain scenarios.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- At least Python 3.5.2 is now required to run qutebrowser, support for 3.5.0
|
|
and 3.5.1 was dropped.
|
|
|
|
|
|
[[v1.7.0]]
|
|
v1.7.0 (2019-07-18)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New settings:
|
|
* `colors.tabs.pinned.*` to control colors of pinned tabs.
|
|
* `hints.leave_on_load` which allows disabling leaving of hint mode when a
|
|
new page is loaded.
|
|
* `colors.completion.item.selected.match.fg` which allows configuring the
|
|
text color for the matching text in the currently selected completion item.
|
|
* `tabs.undo_stack_size` to limit how many undo entries are kept for closed tabs.
|
|
- New commands:
|
|
* `:reverse-selection` (`o` in caret mode) to swap the stationary/moving ends
|
|
of a selection.
|
|
- New commandline replacements:
|
|
* `{url:domain}`, `{url:auth}`, `{url:scheme}`, `{url:username}`,
|
|
`{url:password}`, `{url:host}`, `{url:port}`, `{url:path}`, `{url:query}`
|
|
for the respective parts of the current URL.
|
|
* `{title}` for the current page title.
|
|
- The `{title}` field in `tabs.title.format`, `tabs.title.format_pinned` and
|
|
`window.title_format` got renamed to `{current_title}` (mirroring
|
|
`{current_url}`) in order to not conflict with the new `{title}` commandline
|
|
replacement.
|
|
- New `delete` target for `:hint` which removes the hinted element from
|
|
the DOM.
|
|
- New `--config-py` commandline argument to use a custom `config.py` file.
|
|
- Qt 5.13: Support for notifications (shown via system tray).
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Updated dependencies for Windows/macOS releases:
|
|
- PyQt5 5.12.3 / PyQtWebEngine 5.12.1
|
|
- Qt 5.12.4, which includes security fixes up to Chromium 74.0.3729.157
|
|
- Python 3.7.4
|
|
- OpenSSL 1.1.1
|
|
- Note: This release includes Qt 5.12.4 instead of Qt 5.13.0 due to
|
|
https://bugreports.qt.io/browse/QTBUG-76913[QTBUG-76913] causing frequent
|
|
segfaults with Qt 5.13. After Qt 5.13.1 is released, qutebrowser v1.8.0
|
|
will be released with an updated Qt.
|
|
- Completely revamped Windows installer which allows installing without admin
|
|
permissions and allows setting qutebrowser as default browser.
|
|
- The desktop file `qutebrowser.desktop` is now renamed to
|
|
`org.qutebrowser.qutebrowser.desktop`.
|
|
- Pinned tabs now always show a favicon (even if the site doesn't provide one)
|
|
when shrinking.
|
|
- Setting `downloads.location.directory` now changes the directory displayed in
|
|
the download prompt even if `downloads.location.remember` is set.
|
|
- The `yank` command gained a new `inline` argument, which allows to e.g. use
|
|
`:yank inline [{title}]({url})`.
|
|
- Duplicate consecutive history entries with the same URL are now ignored.
|
|
- More detailed error messages when spawning a process failed.
|
|
- The `content.pdfjs` setting now supports domain patterns.
|
|
- Improved process status output with `:spawn -o`.
|
|
- The `colors.tabs.bar.bg` setting is now of type `QssColor` and thus supports
|
|
gradients.
|
|
- The `:fullscreen` command now understands a new `--enter` flag which
|
|
causes it to always enter fullscreen instead of toggling the current
|
|
state.
|
|
- `--debug-flag stack` is now needed to show stack traces on renderer process
|
|
crashes.
|
|
- `--debug-flag chromium` can be used to easily turn on verbose Chromium logging.
|
|
- For runtime data (such as the IPC socket), a proper runtime path is now used
|
|
on BSD; only macOS/Windows continue to use the temporary directory.
|
|
- PDF.js is now also searched in `/app/share/pdf.js/` (for Flatpak)
|
|
- Permission prompts can now be answered with `Y` (`:prompt-accept --save yes`)
|
|
and `N` (`:prompt-accept --save no`) to save the answer as a per-domain
|
|
setting.
|
|
- `content.dns_prefetch` is now turned off by default, as it causes crashes
|
|
inside QtWebEngine.
|
|
- The (still unofficial) interceptor plugin API now contains `resource_type`
|
|
for a request and allows redirecting requests.
|
|
- `:bookmark-remove` now shows a message for consistency with `:bookmark-add`.
|
|
- Very early segfaults are now also caught by the crash handler.
|
|
- The appdata XML now contains proper release information and an (empty) OARS
|
|
content rating.
|
|
- Improved Linux distribution detection.
|
|
- Qt 5.13: Request filtering now happens in the UI rather than IO thread.
|
|
- Qt 5.13: Support for PDFium (Chromium's PDF viewer) is disabled for now so
|
|
that PDFs can still be downloaded (or shown with PDF.js) properly.
|
|
- Various performance improvements (e.g. for showing hints or the :open
|
|
completion).
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- `:yank markdown` got deprecated, as `:yank inline [{title}]({url})` can now
|
|
be used instead.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Various QtWebEngine load signals are now handled differently, which should
|
|
fix issues with insert mode being left while typing on sites like Google
|
|
Translate.
|
|
- Race condition causing a colored statusbar in normal mode when
|
|
entering/exiting caret mode quickly.
|
|
- Using `100%` for a hue in a `hsv(...)` config value now corresponds to 359
|
|
(rather than 255), matching the fixed behavior in Qt 5.13.
|
|
- Chaining commands with `;;` used to abort with some failing commands. It now
|
|
runs the second command no matter whether the first one succeeded or not.
|
|
- Handling of profiles and private windows (and resulting crashes with Qt
|
|
5.12.2).
|
|
- Fixes for corner-cases when using `:navigate increment/decrement`.
|
|
- The type for the `colors.hints.match.fg` setting was changed to `QtColor`.
|
|
Gradients were never supported for this setting, and with this change, values
|
|
like `rgb(0, 0, 0)` now work as well.
|
|
- Permission prompts now show a properly normalized URL with QtWebKit.
|
|
- Crash on start when PyQt was built without SSL support with Qt >= 5.12.
|
|
- Minor memory leaks.
|
|
|
|
[[v1.6.3]]
|
|
v1.6.3 (2019-06-18)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when hinting and changing/closing the tab before hints are displayed.
|
|
- Crash on redirects with Qt 5.13.
|
|
- Hide bogus `AA_ShareOpenGLContexts` warning with Qt 5.12.4.
|
|
- Workaround for renderer process crashes with Qt 5.12.4.
|
|
If you're unable to update, you can remove `~/.cache/qutebrowser` for the
|
|
same result.
|
|
|
|
[[v1.6.2]]
|
|
v1.6.2 (2019-05-06)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS releases now ship with Qt 5.12.3, which includes security fixes
|
|
up to Chromium 73.0.3683.75.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when SQL errors occur while using the completion.
|
|
- Crash when cancelling a download prompt started in an already closed window.
|
|
- Crash when many prompts are opened at the same time.
|
|
- Running without Qt installed now displays a proper error again.
|
|
- High CPU usage when using the keyhint widget with a low delay.
|
|
- Crash with Qt >= 5.14 on redirects.
|
|
|
|
[[v1.6.1]]
|
|
v1.6.1 (2019-03-20)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS releases now ship with Qt 5.12.2, which includes
|
|
security fixes up to Chromium 72.0.3626.121 (including CVE-2019-5786
|
|
which is known to be exploited in the wild).
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash when using `:config-{dict,list}-{add,remove}` with an invalid setting.
|
|
- Functionality like hinting on pages with an element with ID `_qutebrowser` (such as qutebrowser.org) on Qt 5.12.
|
|
- The .desktop file in v1.6.0 was missing the "Actions" key, which is now fixed.
|
|
- The SVG icon now has a size of 256x256px set to comply with freedesktop standards.
|
|
- Setting `colors.statusbar.*.bg` to a gradient now has the expected effect of
|
|
the gradient spanning the entire statusbar.
|
|
|
|
[[v1.6.0]]
|
|
v1.6.0 (2019-02-25)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New settings:
|
|
* `tabs.new_position.stacking` which controls whether new tabs opened from a
|
|
page should stack on each other or not.
|
|
* `completion.open_categories` which allows to configure which categories are
|
|
shown in the `:open` completion, and how they are ordered.
|
|
* `tabs.pinned.frozen` to allow/deny navigating in pinned tabs.
|
|
* `hints.selectors` which allows to configure what CSS selectors are used for
|
|
hints, and also allows adding custom hint groups.
|
|
* `input.insert_mode.leave_on_load` to turn off leaving insert mode when a
|
|
new page is loaded.
|
|
- New config manipulation commands:
|
|
* `:config-dict-add` and `:config-list-add` to a new element to a dict/list
|
|
setting.
|
|
* `:config-dict-remove` and `:config-list-remove` to remove an element from a
|
|
dict/list setting.
|
|
- New `:yank markdown` feature which yanks the current URL and title in
|
|
markdown format.
|
|
- Support for new QtWebEngine features in Qt 5.12:
|
|
* Basic support for client certificates. Selecting the certificate to use
|
|
when there are multiple matching certificates isn't implemented yet.
|
|
* Support for DNS prefetching (plus new `content.dns_prefetch` setting).
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Various changes to the Windows and macOS builds:
|
|
* Bundling Qt 5.12.1, based on Chromium 69.0.3497.128 with security fixes up
|
|
to 71.0.3578.94.
|
|
* Windows: A 32-bit build is available again.
|
|
* Windows: The builds now bundle the Universal CRT DLLs, causing them to work
|
|
on earlier versions of Windows 10.
|
|
* macOS: Support for OS X 10.11 El Capitan was dropped, requiring macOS 10.12
|
|
Sierra or newer.
|
|
* macOS: The IPC socket path used to communicate with existing instances
|
|
changed due to changes in Qt 5.12. Please make sure to quit qutebrowser
|
|
before upgrading.
|
|
- `:q` now closes the current window instead of quitting qutebrowser completely
|
|
(`:close`), while `:qa` quits (`:quit`). The behavior of `:wq` remains
|
|
unchanged (`:quit --save`), as closing a window while saving the session
|
|
doesn't make sense.
|
|
- Completion highlighting is now done differently (using `QSyntaxHighlighter`),
|
|
which should fix some highlighting corner-cases.
|
|
- The `QtColor` config type now also understands colors like `rgb(...)`.
|
|
- `:yank` now has a `--quiet` option which causes it to not display a message.
|
|
- The `:open` completion now also shows search engines by default.
|
|
- The `content.host_blocking.enabled` setting now supports URL patterns, so the
|
|
adblocker can be disabled on a given page.
|
|
- Elements with a `tabindex` attribute now also get hints by default.
|
|
- Various small performance improvements for hints and the completion.
|
|
- The Wayland check for QtWebEngine is now disabled on Qt >= 5.11.2, as those
|
|
versions should work without any issues.
|
|
- The JavaScript `console` object is now available in PAC files.
|
|
- PAC proxies currently don't work properly on QtWebEngine (and never did), so
|
|
an error is now shown when trying to configure a PAC proxy.
|
|
- The metainfo file `qutebrowser.appdata.xml` is now renamed to
|
|
`org.qutebrowser.qutebrowser.appdata.xml`.
|
|
- The `qute-pass` userscript now understands domains in gpg filenames
|
|
in addition to directory names.
|
|
- The autocompletion for `content.headers.user_agent` got updated to only
|
|
include the default and Chrome, as setting the UA to Firefox has various
|
|
bad side-effects.
|
|
- Combining Qt 5.12 with an older PyQt can lead to issues, so a warning is
|
|
now shown when starting qutebrowser with that combination.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Invalid world IDs now get rejected for `:jseval` and GreaseMonkey scripts.
|
|
- When websites suggest download filenames with invalid characters, those are
|
|
now correctly replaced.
|
|
- Invalid hint length calculation in certain rare cases.
|
|
- Dragging tabs in the tab bar (which was broken in v1.5.0)
|
|
- Using Shift-Home in command mode now works properly.
|
|
- Workaround for a Qt bug which prevented
|
|
`content.cookies.accept = no-3rdparty` from working properly on some pages
|
|
like GMail. However, the default for `content.cookies.accept` is still `all`
|
|
to be in line with what other browsers do.
|
|
- `:navigate` not incrementing in anchors or queries.
|
|
- Crash when trying to use a proxy requiring authentication with QtWebKit.
|
|
- Slashes in search terms are now percent-escaped.
|
|
- When `scrolling.bar = True` was set in versions before v1.5.0, this now
|
|
correctly gets migrated to `always` instead of `when-searching`.
|
|
- Completion highlighting now works again on Qt 5.11.3 and 5.12.1.
|
|
- The non-standard header `X-Do-Not-Track` is no longer sent.
|
|
- PAC proxies were never correctly supported with QtWebEngine, but are now
|
|
explicitly disallowed.
|
|
- macOS: Context menus for download items now show in the correct macOS style.
|
|
- Issues with fullscreen handling when exiting a video player.
|
|
- Various fixes for Qt 5.12 issues:
|
|
* A javascript error on page load was fixed.
|
|
* `window.print()` works with Qt 5.12 now.
|
|
* Fixed handling of duplicate download filenames.
|
|
* Fixed broken `qute://history` page.
|
|
* Fixed PDF.js not working properly.
|
|
* The download button in PDF.js now works (it's not possible to make
|
|
it work with earlier Qt versions).
|
|
* Since Greasemonkey scripts modifying the DOM fail when being run at
|
|
document-start, some known-broken scripts (Iridium, userstyles.org) are now
|
|
forced to run at document-end.
|
|
|
|
[[v1.5.2]]
|
|
v1.5.2 (2018-10-26)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `content.cookies.accept` setting is now set to `all` instead of
|
|
`no-3rdparty` by default, as `no-3rdparty` breaks various pages such as
|
|
GMail.
|
|
|
|
[[v1.5.1]]
|
|
v1.5.1 (2018-10-10)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Flickering when opening/closing tabs (as soon as more than 10 are open) on
|
|
some pages.
|
|
- PDF.js is now bundled again with the macOS/Windows release.
|
|
- PDF.js is now searched in the correct path (if not installed system-wide)
|
|
instead of hardcoding `~/.local/share/qutebrowser`.
|
|
- Improved logging for PDF.js resources which fail to load.
|
|
- Crash when closing a tab after doing a search.
|
|
- Tabs appearing when hidden after e.g. closing tabs.
|
|
|
|
[[v1.5.0]]
|
|
v1.5.0 (2018-10-03)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Rewritten PDF.js support:
|
|
* PDF.js support and the `content.pdfjs` setting are now also available with
|
|
QtWebEngine.
|
|
* Opening a PDF file now doesn't start a second request anymore.
|
|
* Opening PDFs on https:// sites now works properly.
|
|
* New `--pdfjs` flag for `prompt-open-download`, so PDFs can be opened in
|
|
PDF.js with `<Ctrl-P>` in the download prompt.
|
|
- New settings:
|
|
* `content.mouse_lock` to handle HTML5 pointer locking.
|
|
* `completion.web_history.exclude` which hides a list of URL patterns from
|
|
the completion.
|
|
* `qt.process_model` which can be used to change Chromium's process model.
|
|
* `qt.low_end_device_mode` which turns on Chromium's low-end device mode.
|
|
This mode uses less RAM, but the expense of performance.
|
|
* `content.webrtc_ip_handling_policy`, which allows more
|
|
fine-grained/restrictive control about which IPs are exposed via WebRTC.
|
|
* `tabs.max_width` which allows to have a more "normal" look for tabs.
|
|
* `content.mute` which allows to mute pages (or all tabs) by default.
|
|
- Running qutebrowser with QtWebKit or Qt < 5.9 now shows a warning (only
|
|
once), as support for those is going to be removed in a future release.
|
|
- New t[iI][hHu] default bindings (similar to `tsh` etc.) to toggle images.
|
|
- The qute-pass userscript now has optional OTP support.
|
|
- When `:spawn --userscript` is called with a count, that count is now
|
|
passed to userscripts as `$QUTE_COUNT`.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows and macOS releases now bundle Python 3.7, PyQt 5.11.3 and Qt 5.11.2.
|
|
QtWebEngine includes security fixes up to Chromium 68.0.3440.75 and
|
|
https://code.qt.io/cgit/qt/qtwebengine.git/tree/dist/changes-5.11.2/?h=v5.11.2[various other fixes].
|
|
- Various performance improvements when many tabs are opened.
|
|
- The `content.headers.referer` setting now works on QtWebEngine.
|
|
- The `:repeat` command now takes a count which is multiplied with the given
|
|
"times" argument.
|
|
- The default keybinding to leave passthrough mode was changed from `<Ctrl-V>`
|
|
to `<Shift-Escape>`, which makes pasting from the clipboard easier in
|
|
passthrough mode and is also unlikely to conflict with webpage bindings.
|
|
- The `app_id` is now set to `qutebrowser` for Wayland.
|
|
- `Command` or `Cmd` can now be used (instead of `Meta`) to map the Command key
|
|
on macOS.
|
|
- Using `:set option` now shows the value of the setting (like `:set option?`
|
|
already did).
|
|
- The `completion.web_history_max_items` setting got renamed to
|
|
`completion.web_history.max_items`.
|
|
- The Makefile shipped with qutebrowser now supports overriding variables
|
|
`DATADIR` and `MANDIR`.
|
|
- Regenerating completion history now shows a progress dialog.
|
|
- The `content.autoplay` setting now supports URL patterns on Qt >= 5.11.
|
|
- The `content.host_blocking.whitelist` setting now takes a list of URL
|
|
patterns instead of globs.
|
|
- In passthrough mode, Ctrl + Mousewheel now also gets passed through to the
|
|
page instead of zooming.
|
|
- Editing text in an external editor now simulates a JS "input" event, which
|
|
improves compatibility with websites reacting via JS to input.
|
|
- The `qute://settings` page is now properly sorted on Python 3.5.
|
|
- `:zoom`, `:zoom-in` and `:zoom-out` now have a `--quiet` switch which causes
|
|
them to not display a message.
|
|
- The `scrolling.bar` setting now takes three values instead of being a
|
|
boolean: `always`, `never`, and `when-searching` (which only displays it
|
|
while a search is active).
|
|
- '@@' now repeats the last run macro.
|
|
- The `content.host_blocking.lists` setting now accepts a `file://` URL to a
|
|
directory, and reads all files in that directory.
|
|
- The `:tab-give` and `:tab-take` command now have a new flag `--keep` which
|
|
causes them to keep the old tab around.
|
|
- `:navigate` now clears the URL query.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- `qute://` pages now work properly on Qt 5.11.2
|
|
- Error when passing a substring with spaces to `:tab-take`.
|
|
- Greasemonkey scripts which start with a UTF-8 BOM are now handled correctly.
|
|
- When no documentation has been generated, the plaintext documentation now can
|
|
be shown for more files such as `qute://help/userscripts.html`.
|
|
- Crash when doing initial run on Wayland without XWayland.
|
|
- Crash when trying to load an empty session file.
|
|
- `:hint` with an invalid `--mode=` value now shows a proper error.
|
|
- Rare crash on Qt 5.11.2 when clicking on `<select>` elements.
|
|
- Rare crash related to the completion.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- Support for importing pre-v1.0.0 history files has been removed.
|
|
- The `content.webrtc_public_interfaces_only` setting has been removed and
|
|
replaced by `content.webrtc_ip_handling_policy`.
|
|
|
|
[[v1.4.2]]
|
|
v1.4.2 (2018-09-02)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `content.xss_auditing` setting is now enabled by default, to mirror
|
|
Chromium's rather than Qt's default behavior.
|
|
- Long URLs in the statusbar are now elided at the end rather than in the
|
|
middle, to make sure the hostname is completely visible whenever possible.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash in Qt 5.7.1 when a website uses `window.print()`.
|
|
- The workaround for Nouveau graphic drivers now works properly again.
|
|
- Crash when using `:follow-selected` with a link which is outside of the view.
|
|
- Workaround for windows not showing as urgent with some window managers
|
|
(like i3).
|
|
- Crash when opening URLs with some unicode characters (IDNA 2008). Those URLs
|
|
still won't open though, due to missing support in Qt.
|
|
- Crash when a download directory which can't be created is configured.
|
|
- Crash in the `importer.py` script when importing Chrome bookmarks from newer Chrome versions.
|
|
- The `content.webrtc_public_interfaces_only` option didn't work on Qt 5.11 previously (it now does).
|
|
Note it still does not work on Qt 5.10 (due to a Qt bug) and Qt < 5.9.2.
|
|
- Repeated escaping of entries in `qute://log` when refreshing page.
|
|
- The host blocker doesn't block 0.0.0.0 anymore.
|
|
- Crash when using :// as URL pattern.
|
|
- The `:buffer` completion now sorts tabs with indices >= 10 correctly again.
|
|
|
|
[[v1.4.1]]
|
|
v1.4.1 (2018-07-11)
|
|
-------------------
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
- CVE-2018-10895: Fix CSRF issue on the qute://settings page, leading to
|
|
possible arbitrary code execution. See the related GitHub issue for details:
|
|
https://github.com/qutebrowser/qutebrowser/issues/4060
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Rare crash when an error occurs in downloads.
|
|
- Newlines are now stripped from the :version pastebin URL.
|
|
- There's a new `mkvenv-pypi-old` environment in `tox.ini` which installs an
|
|
older Qt, which is needed on Ubuntu 16.04.
|
|
- Worked around a Qt issue which redirects to a `chrome-error://` page when
|
|
trying to use U2F.
|
|
- The `link_pyqt.py` script now works correctly with PyQt 5.11.
|
|
- The Windows installer now uninstalls the old version before installing the
|
|
new one, fixing issues with qutebrowser not starting after installing v1.4.0
|
|
over v1.3.3.
|
|
|
|
[[v1.4.0]]
|
|
v1.4.0 (2018-07-03)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Support for the bundled `sip` module in PyQt 5.11 and other changes in
|
|
Qt/PyQt 5.11.x.
|
|
- New `--debug-flag log-requests` to log requests to the debug log for
|
|
debugging.
|
|
- New `--first` flag for `:hint` (bound to `gi` for inputs) which automatically
|
|
selects the first hint.
|
|
- New `input.escape_quits_reporter` setting which can be used to avoid
|
|
accidentally quitting the crash reporter when pressing escape.
|
|
- New `qute-lastpass` userscript which uses the LastPass CLI to fill passwords.
|
|
- The Makefile now installs a `/usr/share/metainfo/qutebrowser.appdata.xml` file.
|
|
- QtWebEngine: Support for printing from webpages via `window.print`.
|
|
- QtWebEngine: Support for muting tabs:
|
|
* New `{audio}` field for `window.title_format` and `tabs.title.format` which
|
|
displays `[M]`/`[A]` for muted/recently audible tabs.
|
|
* New `:tab-mute` command (bound to `<Alt-m>`) to mute/unmute a tab.
|
|
- QtWebEngine: Support for `content.cookies.accept` with third-party cookies
|
|
blocked by default (requires Qt 5.11).
|
|
- QtWebEngine: New settings:
|
|
* Support for requesting persistent storage via
|
|
`navigator.webkitPersistentStorage.requestQuota` with a new
|
|
`content.persistent_storage` setting (requires Qt 5.11).
|
|
This setting also supports URL patterns.
|
|
* Support for registering custom protocol handlers via
|
|
`navigator.registerProtocolHandler` with a new
|
|
`content.register_protocol_handler` setting (requires Qt 5.11).
|
|
This setting also supports URL patterns.
|
|
* Support for WebRTC screen sharing with a new `content.desktop_capture`
|
|
setting (requires Qt 5.10).
|
|
This setting also supports URL patterns.
|
|
* New `content.autoplay` setting to enable/disable automatic video playback
|
|
(requires Qt 5.10).
|
|
* New `content.webrtc_public_interfaces_only` setting to only expose public
|
|
interfaces over WebRTC (requires Qt 5.9.2 or 5.11).
|
|
* New `content.canvas_reading` setting to disable reading from canvas
|
|
elements.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The following settings now support URL patterns:
|
|
* `content.headers.do_not_track`
|
|
* `content.headers.custom`
|
|
* `content.headers.accept_language`
|
|
* `content.headers.user_agent`
|
|
* `content.ssl_strict`
|
|
* `content.geolocation`
|
|
* `content.notifications`
|
|
* `content.media_capture`
|
|
- The Windows/macOS releases now bundle Qt 5.11.1 which is based on
|
|
Chromium 65.0.3325.151 with security fixes up to Chromium 67.0.3396.87.
|
|
- New short flags for commandline arguments: `-B` and `-T` for `--basedir` and
|
|
`--temp-basedir`; `-d` and `-D` for `--debug` and `--debug-flag`.
|
|
- Deleting history items via `:history-clear` or `:completion-item-del` now
|
|
also removes that URL from QtWebEngine's visited links.
|
|
- There's now completion for commands taking a variable count of arguments
|
|
(like `:config-cycle`).
|
|
- QtWebEngine: On Qt 5.11.1, no reloads are needed anymore when switching
|
|
between pages with changed settings (e.g. `content.javascript.enabled`).
|
|
- The `qt.force_software_rendering` setting changed from a boolean to taking
|
|
different values (`software-opengl`, `qt-quick` and `chromium`) for different
|
|
kinds of software rendering workarounds.
|
|
- On Qt 5.11, using wayland with QtWebEngine is now possible when using
|
|
software rendering.
|
|
- GreaseMonkey scripts now get their own global scope (based on the page's
|
|
one), which allows scripts like OneeChan to work.
|
|
- Rapid hinting is now supported with the `yank` and `yank-primary` targets,
|
|
copying newline-separated links.
|
|
- QtWebEngine: On Qt 5.11, the developer tools (inspector) can now be used
|
|
securely and without requiring the `--enable-webengine-inspector` option.
|
|
- The `<Enter>` key (`:follow-selected`) now follows the currently focused
|
|
element if there's no selection.
|
|
- The `--logfilter` argument now can be prepended with an exclamation mark
|
|
(e.g. `--logfilter '!init,destroy'`) to invert the filter.
|
|
- `:view-source` now has a `--pygments` flag which uses the "old" way of
|
|
rendering sources even with QtWebEngine.
|
|
- Improved error messages when a setting needs a newer Qt version.
|
|
- QtWebEngine: Various improvements to make the cursor more visible in caret
|
|
browsing.
|
|
- When a prompt is opened in insert/passthrough mode, the mode is restored
|
|
after closing the prompt.
|
|
- On Qt 5.10 or newer, dictionaries are now read from the qutebrowser data
|
|
directory (e.g. `~/.local/share/qutebrowser`) instead of `/usr/share/qt`.
|
|
Existing dictionaries are copied over.
|
|
- If an error while parsing `~/.netrc` occurs, the cause of the error is now
|
|
logged.
|
|
- On Qt 5.9 or newer, certificate errors now show Chromium's detailed error
|
|
page.
|
|
- Greasemonkey scripts now support a "@qute-js-world" tag to run them in a
|
|
different JavaScript context.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Various subtle keyboard focus issues.
|
|
- The security fix in v1.3.3 caused URLs with ampersands
|
|
(`www.example.com?one=1&two=2`) to send the wrong arguments when clicked on
|
|
the `qute://history` page.
|
|
- Crash when opening a PDF page with PDF.js enabled (on QtWebKit), but no
|
|
PDF.js installed.
|
|
- Crash when closing a tab shortly after opening it.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- No prebuilt binaries for 32-bit Windows are supplied anymore. This is due to
|
|
Qt removing QtWebEngine support for those upstream. It might be possible to
|
|
distribute 32-bit binaries again with Qt 5.12 in December, but that will only
|
|
happen if it turns out enough people actually need 32-bit support.
|
|
- `:tab-detach` which has been deprecated in v1.1.0 has been removed.
|
|
- The `content.developer_extras` setting got removed. On QtWebKit, developer
|
|
extras are now automatically enabled when opening the inspector.
|
|
|
|
[[v1.3.3]]
|
|
v1.3.3 (2018-06-21)
|
|
-------------------
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
- CVE-2018-1000559: An XSS vulnerability on the `qute://history` page allowed
|
|
websites to inject HTML into the page via a crafted title tag. This could
|
|
allow them to steal your browsing history. If you're currently unable to
|
|
upgrade, avoid using `:history`. See the related GitHub issue for details:
|
|
https://github.com/qutebrowser/qutebrowser/issues/4011.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Crash in a workaround for a Qt 5.11 bug in rare circumstances.
|
|
- Workaround for a Qt bug which preserves searches between page loads.
|
|
- In v1.3.2 a dependency on the `PyQt5.QtQuickWidgets` module was accidentally
|
|
introduced. Since that module isn't packaged everywhere, it's been removed
|
|
again.
|
|
|
|
[[v1.3.2]]
|
|
v1.3.2 (2018-06-10)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- QtWebEngine: Improved workaround for a bug in Qt 5.11 where only the
|
|
top/bottom half of the window is used.
|
|
- QtWebEngine: Work around a bug in Qt 5.11 where an endless loading-loop is
|
|
triggered when clicking a link with an unknown scheme.
|
|
- QtWebEngine: When switching between pages with changed settings, less
|
|
unnecessary reloads are done now.
|
|
- QtWebEngine: It's now possible to open external links such as `magnet://` or
|
|
`mailto:` via hints.
|
|
|
|
[[v1.3.1]]
|
|
v1.3.1 (2018-05-29)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Work around a bug in Qt 5.11 where only the top/bottom half of the window is used.
|
|
This workaround is incomplete, but fixes the majority of the cases where this happens.
|
|
- Work around keyboard focus issues with Qt 5.11.
|
|
- Work around an issue in Qt 5.11 where e.g. activating JavaScript per-domain
|
|
needed a manual reload in some cases.
|
|
- Don't crash when a ² key is pressed (e.g. on AZERTY keyboards).
|
|
- Don't crash when a tab is opened and quickly closed again.
|
|
|
|
|
|
[[v1.3.0]]
|
|
v1.3.0 (2018-05-03)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `:scroll-to-anchor` command to scroll to an anchor in the document.
|
|
- New `url.open_base_url` option to open the base URL of a searchengine when no
|
|
search term is given.
|
|
- New `tabs.min_width` setting to configure the minimal width for tabs.
|
|
- New userscripts:
|
|
* `getbib` to download bibtex information for DOIs on a page.
|
|
* `qute-keepass` to get passwords from KeePassX.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- QtWebEngine: Support for JavaScript Shared Web Workers have been disabled on
|
|
Qt versions older than 5.11 because of security issues in in Chromium.
|
|
You can get the same effect in earlier versions via
|
|
`:set qt.args ['disable-shared-workers']`. An equivalent workaround is also
|
|
contained in Qt 5.9.5 and 5.10.1.
|
|
- The file dialog for downloads now has basic tab completion based on the
|
|
entered text.
|
|
- `:version` now shows OS information for POSIX OS other than Linux/macOS.
|
|
- When there's an error inserting the text from an external editor, a backup
|
|
file is now saved.
|
|
- The `window.hide_wayland_decoration` setting got renamed to
|
|
`window.hide_decoration` and now also works outside of wayland.
|
|
- The `tabs.favicons.show` setting now can take three values: `'always'` (was
|
|
`True`), `'never'` (was `False`) and `'pinned'` (to only show favicons for
|
|
pinned tabs).
|
|
- Hover tooltips on tabs now always show the webpage's title.
|
|
- The default value for `content.host_blocking.lists` was changed to only
|
|
include https://github.com/StevenBlack/hosts[Steven Black's hosts-list] which
|
|
combines various sources.
|
|
- Error messages when trying to wrap when `tabs.wrap` is `False` are now logged
|
|
to debug instead of messages.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Using hints before a page is fully loaded is now possible again.
|
|
- Selecting hints with the number keypad now works again.
|
|
- Tab titles for tabs loaded from sessions should now really be correct instead
|
|
of showing the URL.
|
|
- Loading URLs with customized settings from a session now avoids an additional
|
|
reload.
|
|
- The window icon and title now get set correctly again.
|
|
- The `tabs.switching_delay` setting now has a correct maximum value limit set.
|
|
- The `taskadd` script now works properly when there's multi-line output.
|
|
- QtWebEngine: Worked around issues with GreaseMonkey/stylesheets not being
|
|
loaded correctly in some situations.
|
|
- The statusbar now more closely reflects the caret mode state.
|
|
- The icon on Windows should now be displayed in a higher resolution.
|
|
- The QtWebEngine development tools (inspector) now also work when JavaScript is
|
|
disabled globally.
|
|
- Building `.exe` files now works when `upx` is installed on the system.
|
|
- The keyhint widget now shows the correct text for chained modifiers.
|
|
- Loading GreaseMonkey scripts now also works with Jinja2 2.8 (e.g. on Debian
|
|
Stable).
|
|
- Adding styles with GreaseMonkey on fast sites now works properly.
|
|
- Window ID 0 is now excluded properly from `:tab-take` completion.
|
|
- A rare crash when cancelling a download has been fixed.
|
|
- The Makefile (intended for packagers) now supports `PREFIX` properly.
|
|
- The workaround for a black window with Nvidia graphics is now enabled on
|
|
non-Linux systems (like FreeBSD) as well.
|
|
- Initial support for Qt 5.11.
|
|
- Checking for a new version after sending a crash report now works properly
|
|
again.
|
|
- `@match` in Greasemonkey scripts now more closely matches the proper pattern
|
|
syntax.
|
|
- Searching via `/` or `?` now doesn't handle any characters in a special way.
|
|
- Fixed crash when trying to retry some failed downloads on QtWebEngine.
|
|
- An invalid spellcheck dictionary filename now doesn't crash anymore.
|
|
- When no spellcheck dictionaries are configured, it's now disabled internally.
|
|
This works around an issue with entering special characters on Facebook
|
|
messenger.
|
|
- The macOS release now should work again on macOS 10.11 and newer.
|
|
|
|
[[v1.2.1]]
|
|
v1.2.1 (2018-03-14)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- qutebrowser now starts properly when the PyQt5 QOpenGLFunctions package wasn't
|
|
found.
|
|
- The keybinding cheatsheet on the quickstart page is now loaded from a local
|
|
`qute://` URL again.
|
|
- With "tox -e mkvenv-pypi", PyQt 5.10.0 is used again instead of Qt 5.10.1,
|
|
because of an issue with Qt 5.10.1 which causes qutebrowser to fail to start
|
|
("Could not find QtWebEngineProcess").
|
|
- Unbinding keys which were bound in older qutebrowser versions now doesn't
|
|
crash anymore.
|
|
- Fixed a crash when reloading a page which wasn't fully loaded with v1.2.0
|
|
- Keys on the numeric keypad now fall back to the same bindings without `Num+`
|
|
if no `Num+` binding was found.
|
|
- Fixed hinting on some pages with Qt < 5.10.
|
|
- Titles are now displayed correctly again for tabs which are cloned or loaded
|
|
from sessions.
|
|
- Shortcuts now correctly use `Ctrl` instead of `Command` on macOS again.
|
|
|
|
[[v1.2.0]]
|
|
v1.2.0 (2018-03-09)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Initial implementation of per-domain settings:
|
|
* `:set` and `:config-cycle` now have a `-u`/`--pattern` argument taking a
|
|
https://developer.chrome.com/extensions/match_patterns[URL match pattern]
|
|
for supported settings.
|
|
* `config.set` in `config.py` now takes a third argument which is the pattern.
|
|
* New `with config.pattern('...') as p:` context manager for `config.py` to
|
|
use the shorthand syntax with a pattern.
|
|
* New `tsh` keybinding to toggle scripts for the current host. With a capital
|
|
`S`, the toggle is saved. With a capital `H`, subdomains are included. With
|
|
`u` instead of `h`, the exact current URL is used.
|
|
* New `tph` keybinding to toggle plugins, with the same additional binding
|
|
described above.
|
|
- New QtWebEngine features:
|
|
* Caret/visual mode
|
|
* Authentication via ~/.netrc
|
|
* Retrying downloads with Qt 5.10 or newer
|
|
* Hinting and other features inside same-origin frames
|
|
- New flags for existing commands:
|
|
* `:session-load` has a new `--delete` flag which deletes the
|
|
session after loading it.
|
|
* New `--no-last` flag for `:tab-focus` to not focus the last tab when focusing
|
|
the currently focused one.
|
|
* New `--edit` flag for `:view-source` to open the source in an external editor.
|
|
* New `--select` flag for `:follow-hint` which acts like the given string was entered but doesn't necessary follow the hint.
|
|
- New special pages:
|
|
* `qute://bindings` (opened via `:bind`) which shows all keybindings.
|
|
* `qute://tabs` (opened via `:buffer`) which lists all tabs.
|
|
- New settings:
|
|
* `statusbar.widgets` to configure which widgets should be shown in which
|
|
order in the statusbar.
|
|
* `tabs.mode_on_change` which replaces `tabs.persist_mode_on_change`. It can
|
|
now be set to `restore` which remembers input modes (input/passthrough)
|
|
per tab.
|
|
* `input.insert_mode.auto_enter` which makes it possible to disable entering
|
|
insert mode automatically when an editable element was clicked. Together
|
|
with `input.forward_unbound_keys`, this should allow for emacs-like
|
|
"modeless" keybindings.
|
|
- New `:prompt-yank` command (bound to `Alt-y` by default) to yank URLs
|
|
referenced in prompts.
|
|
- The `hostblock_blame` script which was removed in v1.0 was updated for the new
|
|
config and re-added.
|
|
- New `cycle-inputs.js` script in `scripts/` which can be used with `:jseval -f`
|
|
to cycle through inputs.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Complete refactoring of key input handling, with various effects:
|
|
* emacs-like keychains such as `<Ctrl-X><Ctrl-C>` can now be bound.
|
|
* Key chains can now be bound in any mode (this allows binding unused keys in
|
|
hint mode).
|
|
* Yes/no prompts don't use keybindings from the `prompt` section anymore, they
|
|
have their own `yesno` section instead.
|
|
* Trying to bind invalid keys now shows an error.
|
|
* The `bindings.default` setting can now only be set in a `config.py`, and
|
|
existing values in `autoconfig.yml` are ignored.
|
|
- Improvements for GreaseMonkey support:
|
|
* `@include` and `@exclude` now support regex matches. With QtWebEngine and Qt
|
|
5.8 and newer, Qt handles the matching, but similar functionality will be
|
|
added in Qt 5.11.
|
|
* Support for `@requires`
|
|
* Support for the GreaseMonkey 4.0 API
|
|
- The sqlite history now uses write-ahead logging which should be
|
|
a performance and stability improvement.
|
|
- When an editor is spawned with `:open-editor` and `:config-edit`, the changes
|
|
are now applied as soon as the file is saved in the editor.
|
|
- The `hist_importer.py` script now only imports URL schemes qutebrowser can
|
|
handle.
|
|
- Deleting a prefix (`:`, `/` or `?`) via backspace now leaves command mode.
|
|
- Angular 1 elements and `<summary>`/`<details>` now get hints assigned.
|
|
- `:tab-only` with pinned tabs now still closes unpinned tabs.
|
|
- The `url.incdec_segments` option now also can take `port` as possible segment.
|
|
- QtWebEngine: `:view-source` now uses Chromium's `view-source:` scheme.
|
|
- Tabs now show their full title as tooltip.
|
|
- When there are multiple unknown keys in a autoconfig.yml, they now all get
|
|
reported in one error.
|
|
- More performance improvements when opening/closing many tabs.
|
|
- The `:version` page now has a button to pastebin the information.
|
|
- Replacements like `{url}` can now be escaped as `{{url}}`.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- QtWebEngine bugfixes:
|
|
* Improved fullscreen handling with Qt 5.10.
|
|
* Hinting and scrolling now works properly on special `view-source:` pages.
|
|
* Scroll positions are now restored correctly from sessions.
|
|
* `:follow-selected` should now work in more cases with Qt > 5.10.
|
|
* Incremental search now flickers less and doesn't move to the second result
|
|
when pressing Enter.
|
|
* Keys like `Ctrl-V` or `Shift-Insert` are now correctly handled/filtered with
|
|
Qt 5.10.
|
|
* Fixed hangs/segfaults on exit with Qt 5.10.1.
|
|
* Fixed favicons sometimes getting cleared with Qt 5.10.
|
|
* Qt download objects are now cleaned up properly when a download is removed.
|
|
* JavaScript messages are now not double-HTML escaped anymore on Qt < 5.11
|
|
- QtWebKit bugfixes:
|
|
* Fixed GreaseMonkey-related crashes.
|
|
* `:view-source` now displays a valid URL.
|
|
- URLs containing ampersands and other special chars are now shown correctly
|
|
when filtering them in the completion.
|
|
- `:bookmark-add "" foo` can now be used to save the current URL with a custom
|
|
title.
|
|
- `:spawn -o` now waits until the process has finished before trying to show the
|
|
output. Previously, it incorrectly showed the previous output immediately.
|
|
- Suspended pages now should always load the correct page when being un-suspended.
|
|
- Exception types are now shown properly with `:config-source` and `:config-edit`.
|
|
- When using `:bookmark-add --toggle`, bookmarks are now saved properly.
|
|
- Crash when opening an invalid URL from an application on macOS.
|
|
- Crash with an empty `completion.timestamp_format`.
|
|
- Crash when `completion.min_chars` is set in some cases.
|
|
- HTML/JS resource files are now read into RAM on start to avoid crashes when
|
|
changing qutebrowser versions while it's open.
|
|
- Setting `bindings.key_mappings` to an empty value is now allowed.
|
|
- Bindings to an empty commands are now ignored rather than crashing.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- `QUTE_SELECTED_HTML` is now not set for userscripts anymore except when called
|
|
via hints.
|
|
- The `qutebrowser_viewsource` userscript has been removed as
|
|
`:view-source --edit` can now be used.
|
|
- The `tabs.persist_mode_on_change` setting has been removed and replaced by
|
|
`tabs.mode_on_change`.
|
|
|
|
[[v1.1.2]]
|
|
v1.1.2 (2018-03-01)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Windows/macOS releases now bundle Qt 5.10.1 which includes security fixes from
|
|
Chromium up to version 64.0.3282.140.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- QtWebEngine: Crash with Qt 5.10.1 when using :undo on some tabs.
|
|
- Compatibility with Python 3.7
|
|
|
|
[[v1.1.1]]
|
|
v1.1.1 (2018-01-20)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The Makefile now actually works.
|
|
- Fixed crashes with Qt 5.10 when closing a tab before it finished loading.
|
|
|
|
[[v1.1.0]]
|
|
v1.1.0 (2018-01-15)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Initial support for Greasemonkey scripts. There are still some rough edges,
|
|
but many scripts should already work.
|
|
- There's now a `misc/Makefile` file in releases, which should help
|
|
distributions which package qutebrowser, as they can run something like
|
|
`make -f misc/Makefile DESTDIR="$pkgdir" install` now.
|
|
- New fields for `window.title_format` and `tabs.title.format`:
|
|
* `{current_url}`
|
|
* `{protocol}`
|
|
- New settings:
|
|
* `colors.statusbar.passthrough.fg`/`.bg`
|
|
* `completion.delay` and `completion.min_chars` to update the completion less
|
|
often.
|
|
* `completion.use_best_match` to automatically use the best-matching
|
|
command in the completion.
|
|
* `keyhint.radius` to configure the edge rounding for the key hint widget.
|
|
* `qt.highdpi` to turn on Qt's High-DPI scaling.
|
|
* `tabs.pinned.shrink` (`true` by default) to make it possible
|
|
for pinned tabs and normal tabs to have the same size.
|
|
* `content.windowed_fullscreen` to show e.g. a fullscreened video in the
|
|
window without fullscreening that window.
|
|
* `tabs.persist_mode_on_change` to keep the current mode when
|
|
switching tabs.
|
|
* `session.lazy_restore` which allows to not load pages immediately
|
|
when restoring a session.
|
|
- New commands:
|
|
* `:tab-give` and `:tab-take`, to give tabs to another window, or take them
|
|
from another window.
|
|
* `:completion-item-yank` (bound to `<Ctrl-C>`) to yank the current
|
|
completion item text.
|
|
* `:edit-command` to edit the commandline in an editor.
|
|
* `search.incremental` for incremental text search.
|
|
- New flags for existing commands:
|
|
* `-o` flag for `:spawn` to show stdout/stderr in a new tab.
|
|
* `--rapid` flag for `:command-accept` (bound to `Ctrl-Enter` by default),
|
|
which allows executing a command in the completion without closing it.
|
|
* `--private` and `--related` flags for `:edit-url`, which have the
|
|
same effect they have with `:open`.
|
|
* `--history` for `:completion-item-focus` which causes it to go
|
|
through the command history when no text was entered. The default bindings for
|
|
cursor keys in the completion changed to use that, so that they can be used
|
|
again to navigate through completion items when a text was entered.
|
|
* `--file` for `:debug-pyeval` which makes it take a filename instead of a
|
|
line of code.
|
|
- New `config.source(...)` method for `config.py` to source another file.
|
|
- New `{line}` and `{column}` replacements for `editor.command` to position the
|
|
cursor correctly.
|
|
- New `qute-pass` userscript as alternative to `password_fill` which allows
|
|
selecting accounts via rofi or any other dmenu-compatile application.
|
|
- New `hist_importer.py` script to import history from Firefox/Chromium.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Some settings got renamed:
|
|
* `tabs.width.bar` -> `tabs.width`
|
|
* `tabs.width.indicator` -> `tabs.indicator.width`
|
|
* `tabs.indicator_padding` -> `tabs.indicator.padding`
|
|
* `session_default_name` -> `session.default_name`
|
|
* `ignore_case` -> `search.ignore_case`
|
|
- Much improved user stylesheet handling for QtWebEngine which reduces
|
|
flickering and updates immediately after setting a stylesheet.
|
|
- High-DPI favicons are now used when available.
|
|
- The `asciidoc2html.py` script now uses Pygments (which is already a dependency
|
|
of qutebrowser) instead of `source-highlight` for syntax highlighting.
|
|
- The `:buffer` command now doesn't require quoting anymore, similar to `:open`.
|
|
- The `importer.py` script was largely rewritten and now also supports importing
|
|
from Firefox' `places.sqlite` file and Chrome/Chromium profiles.
|
|
- Various internal refactorings to use Python 3.5 and ECMAscript 6 features.
|
|
- If the `window.hide_wayland_decoration` setting is False, but
|
|
`QT_WAYLAND_DISABLE_WINDOWDECORATION` is set in the environment,
|
|
the decorations are still hidden.
|
|
- The `install_dict.py` script for QtWebEngine was renamed to `dictcli.py` and
|
|
can now also upgrade dictionaries correctly.
|
|
- `:undo` now can re-open multiple tabs after `:tab-only` was used.
|
|
- `:config-write-py` with a relative path now puts the file into the config
|
|
directory.
|
|
- The `qute://version` page now also shows the uptime of qutebrowser.
|
|
- qutebrowser now prompts to create a non-existing directory when starting a
|
|
download.
|
|
- `:jseval --file` now searches relative paths in a `js/` subdir in
|
|
qutebrowser's data dir, e.g. `~/.local/share/qutebrowser/js`.
|
|
- The current/default bindings are now shown in the ``:bind` completion.
|
|
- Empty categories are now hidden in the `:open` completion.
|
|
- Search terms for URLs and titles can now be mixed when filtering the
|
|
completion.
|
|
- The default font size for the UI got bumped up from 8pt to 10pt.
|
|
- Improved matching in the completion: The words entered are now matched in any
|
|
order, and mixed matches on URL/tite are possible.
|
|
- The system's default encoding (rather than UTF-8) is now used to decode
|
|
subprocess output.
|
|
- qutebrowser now ensures it's focused again after an external editor is closed.
|
|
- The `colors.completion.fg` setting can now be a list, allowing to specify
|
|
different colors for the three completion columns.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- More consistent sizing for favicons with vertical tabs.
|
|
- Using `:home` on pinned tabs is now prevented.
|
|
- Fix crash with unknown file types loaded via `qute://help`.
|
|
- Scrolling performance improvements.
|
|
- Sites like `qute://help` now redirect to `qute://help/` to make sure links
|
|
work properly.
|
|
- Fixes for the size calculation of pinned tabs in the tab bar.
|
|
- Worked around a crash with PyQt 5.9.1 compiled against Qt < 5.9.1 when using
|
|
`:yank` or `qute://` URLs.
|
|
- Fixed crash when opening `qute://help/img`.
|
|
- Fixed `gU` (`:navigate up`) on `qute://help` and webservers not handling `..`
|
|
in a URL.
|
|
- Using e.g. `-s backend webkit` to set the backend now works correctly.
|
|
- Fixed crash when closing the tab an external editor was opened in.
|
|
- When using `:search-next` before a search is finished, no warning about no
|
|
results being found is shown anymore.
|
|
- Fix `:click-element` with an ID containing non-alphanumeric characters.
|
|
- Fix crash when a subprocess outputs data which is not decodable as UTF-8.
|
|
- Fix crash when closing a tab immediately after hinting.
|
|
- Worked around issues in Qt 5.10 with loading progress never being finished.
|
|
- Fixed a crash when writing a flag before a command (e.g. `:-w open `).
|
|
- Fixed a crash when clicking certain form elements with QtWebEngine.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- `:tab-detach` has been deprecated, as `:tab-give` without argument can be used
|
|
instead.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The long-deprecated `:prompt-yes`, `:prompt-no`, `:paste-primary` and `:paste`
|
|
commands have been removed.
|
|
- The invocation `:download <url> <dest>` which was deprecated in v0.5.0 was
|
|
removed, use `:download --dest <dest> <url>` instead.
|
|
- The `messages.unfocused` option which wasn't used anymore was removed.
|
|
- The `x[xtb]` default bindings got removed again as many users accidentally
|
|
triggered them.
|
|
|
|
[[v1.0.4]]
|
|
v1.0.4 (2017-11-28)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The `qute://gpl` page now works correctly again.
|
|
- Trying to bind an empty command now doesn't crash anymore.
|
|
- Fixed crash when `:config-write-py` fails to write to the given path.
|
|
- Fixed crash for some users when selecting a file with Qt 5.9.3
|
|
- Improved handling for various SQL errors
|
|
- Fix crash when setting content.cache.size to a big value (> 2 GB)
|
|
|
|
[[v1.0.3]]
|
|
v1.0.3 (2017-11-04)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- macOS and Windows builds are now built with PyQt 5.9.1 and Qt 5.9.2, including
|
|
various bugfixes, as well as security fixes from Chromium up to version
|
|
61.0.3163.79.
|
|
- Performance improvements for tab rendering.
|
|
- The :open-editor command is now not hidden anymore as it's also usable in
|
|
normal mode.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Handle accessing a locked sqlite database gracefully
|
|
- Abort pinned tab dialogs properly when a tab is closed e.g. by closing a
|
|
window
|
|
- Unbinding a default keybinding twice now doesn't bind it again
|
|
- Completions are now sorted correctly again when filtered
|
|
|
|
[[v1.0.2]]
|
|
v1.0.2 (2017-10-17)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fix workaround for black screens or crashes with Nvidia cards
|
|
- Handle a filesystem going read-only gracefully
|
|
- Fix crash when setting `fonts.monospace`
|
|
- Fix list options not being modifiable via `.append()` in `config.py`
|
|
- Mark the content.notifications setting as QtWebKit only correctly
|
|
- Fix wrong rendering of keys like `<back>` in the completion
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Nicer error messages and other minor improvements
|
|
|
|
[[v1.0.1]]
|
|
v1.0.1 (2017-10-13)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed starting after customizing `fonts.tabs` or `fonts.debug_console`.
|
|
- Fixed starting with old PyQt versions compiled against newer Qt versions.
|
|
- Fixed check for PyQt version to correctly enforce 5.7 (not 5.2).
|
|
|
|
[[v1.0.0]]
|
|
v1.0.0 (2017-10-12)
|
|
-------------------
|
|
|
|
Major changes
|
|
~~~~~~~~~~~~~
|
|
|
|
- Dependency changes:
|
|
* Support for legacy QtWebKit (before 5.212 which is
|
|
https://github.com/annulen/webkit/wiki[distributed independently from Qt])
|
|
is dropped.
|
|
* Support for Python 3.4 is dropped.
|
|
* Support for Qt before 5.7.1 and PyQt before 5.7 is dropped.
|
|
* New dependency on the QtSql module and Qt sqlite support.
|
|
* New dependency on the https://www.attrs.org/[attrs] project (packaged as
|
|
`python-attr` in some distributions).
|
|
* The dependency on PyOpenGL (when using QtWebEngine) got removed. Note
|
|
that PyQt5.QtOpenGL is still a dependency.
|
|
* PyQt5.QtOpenGL is now always required, even with QtWebKit.
|
|
- The QtWebEngine backend is now used by default. Note this means that
|
|
QtWebEngine now should be a required dependency, and QtWebKit (if new enough)
|
|
should be changed to an optional dependency.
|
|
- Completely rewritten configuration system which ignores the old config file.
|
|
See link:qute://help/configuring.html[] for details.
|
|
- Various documentation files got moved to the doc/ subfolder;
|
|
`qutebrowser.desktop` got moved to misc/.
|
|
- `:set` now doesn't support toggling/cycling values anymore, that functionality
|
|
got moved to `:config-cycle`.
|
|
- New completion engine based on sqlite, which allows to complete
|
|
the entire browsing history. The default for
|
|
`completion.web_history_max_items` got changed to `-1` (unlimited). If the
|
|
completion is too slow on your machine, try setting it to a few 1000 items.
|
|
- Up/Down now navigates through the command history instead of selecting
|
|
completion items. Either use Tab to cycle through the completion, or
|
|
https://github.com/qutebrowser/qutebrowser/blob/main/doc/help/configuring.asciidoc#migrating-older-configurations[restore the old behavior].
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- QtWebEngine: Spell checking support, see the `spellcheck.languages` setting.
|
|
- New `qt.args` setting to pass additional arguments to Qt/Chromium.
|
|
- New `backend` setting to select the backend to use.
|
|
Together with the previous setting, this should make most wrapper scripts
|
|
unnecessary.
|
|
- qutebrowser can now be set as the default browser on macOS.
|
|
- New config commands:
|
|
* `:config-cycle` to cycle an option between multiple values.
|
|
* `:config-unset` to remove a configured option.
|
|
* `:config-clear` to remove all configured options.
|
|
* `:config-source` to (re-)read a `config.py` file.
|
|
* `:config-edit` to open the `config.py` file in an editor.
|
|
* `:config-write-py` to write a `config.py` template file.
|
|
- New `:version` command which opens `qute://version`.
|
|
- New back/forward indicator in the statusbar.
|
|
- New `bindings.key_mappings` setting to map keys to other keys.
|
|
- QtWebEngine: Support for proxy authentication.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Using `:download` now uses the page's title as filename.
|
|
- Using `:back` or `:forward` with a count now skips intermediate pages.
|
|
- When there are multiple messages shown, the timeout is increased.
|
|
- `:search` now only clears the search if one was displayed before, so pressing
|
|
`<Escape>` doesn't un-focus inputs anymore.
|
|
- Pinned tabs now adjust to their text's width, so the `tabs.width.pinned`
|
|
setting got removed.
|
|
- `:set-cmd-text` now has a `--run-on-count` argument to run the underlying
|
|
command directly if a count was given.
|
|
- `:scroll-perc` got renamed to `:scroll-to-perc`.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- Migrating QtWebEngine data written by versions before 2016-11-15 (before
|
|
v0.9.0) is now not supported anymore.
|
|
- Upgrading qutebrowser with a version older than v0.4.0 still running now won't
|
|
work properly anymore.
|
|
- The `--harfbuzz` and `--relaxed-config` commandline arguments got dropped.
|
|
|
|
Fixes
|
|
~~~~~
|
|
|
|
- Exiting fullscreen via `:fullscreen` or buttons on a page now
|
|
restores the correct previous window state (maximized/fullscreen).
|
|
- When `input.insert_mode.auto_load` is set, background tabs now don't enter
|
|
insert mode anymore.
|
|
- The keybinding help widget now works correctly when using keybindings with a
|
|
count.
|
|
- The `window.hide_wayland_decoration` setting now works correctly again.
|
|
|
|
[[v0.11.1]]
|
|
v0.11.1 (2017-10-09)
|
|
--------------------
|
|
|
|
Fixes
|
|
~~~~~
|
|
|
|
- Fixed empty space being shown after tabs in the tabbar in some cases.
|
|
- Fixed `:restart` in private browsing mode.
|
|
- Fixed printing on macOS.
|
|
- Closing a pinned tab via mouse now also prompts for confirmation.
|
|
- The "try again" button on error pages works correctly again.
|
|
- :spawn -u -d is now disallowed.
|
|
- :spawn -d shows error messages correctly now.
|
|
|
|
[[v0.11.0]]
|
|
v0.11.0 (2017-07-04)
|
|
--------------------
|
|
|
|
New dependencies
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
- New dependency on `PyQt5.QtOpenGL` if QtWebEngine is used. QtWebEngine depends
|
|
on QtOpenGL already, but on distributions packaging split PyQt5 wrappers, the
|
|
wrappers for QtOpenGL are now required.
|
|
- New dependency on `PyOpenGL` if QtWebEngine is used.
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Private browsing is now implemented for QtWebEngine, *and changed its
|
|
behavior*: The `general -> private-browsing` setting now only applies to newly
|
|
opened windows, and you can use the `-p` flag to `:open` to open a private
|
|
window.
|
|
- New "pinned tabs" feature, with a new `:tab-pin` command (bound
|
|
to `<Ctrl-p>` by default).
|
|
- (QtWebEngine) Implemented `:follow-selected`.
|
|
- New `:clear-messages` command to clear shown messages.
|
|
- New `ui -> keyhint-delay` setting to configure the delay until
|
|
the keyhint overlay pops up.
|
|
- New `-s` option for `:open` to force a HTTPS scheme.
|
|
- `:debug-log-filter` now accepts `none` as an argument to clear any log
|
|
filters.
|
|
- New `--debug-flag` argument which replaces `--debug-exit` and
|
|
`--pdb-postmortem`.
|
|
- New `tabs -> favicon-scale` option to scale up/down favicons.
|
|
- `colors -> statusbar.bg/fg.private` and `.command.private` to
|
|
customize statusbar colors for private windows.
|
|
- New `{private}` field displaying `[Private Mode]` for
|
|
`ui -> window-title-format` and `tabs -> title-format`.
|
|
- (QtWebEngine) Proxy support with Qt 5.7.1 (already was supported for 5.8 and
|
|
newer)
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- To prevent elaborate phishing attacks, the Punycode version (`xn--*`) is now
|
|
shown in addition to the decoded version for international domain names
|
|
(IDN).
|
|
- Starting with legacy QtWebKit now shows a warning message.
|
|
*With the next release, support for it will be removed.*
|
|
- The Windows releases are redone from scratch, which means:
|
|
* They now use the new QtWebEngine backend
|
|
* The bundled Qt is updated from 5.5 to 5.9
|
|
* The bundled Python is updated from 3.4 to 3.6
|
|
* They are now generated with PyInstaller instead of cx_Freeze
|
|
* The installer is now generated using NSIS instead of being a MSI
|
|
- Improved `qute://history` page (with lazy loading)
|
|
- Crash reports are not public anymore.
|
|
- Paths like `C:` are now treated as absolute paths on Windows for downloads,
|
|
and invalid paths are handled properly.
|
|
- Comments in the config file are now placed before the individual options
|
|
instead of being before sections.
|
|
- Messages are now hidden when clicked.
|
|
- stdin is now closed immediately for processes spawned from qutebrowser.
|
|
- When `ui -> message-timeout` is set to 0, messages are now never cleared.
|
|
- Middle/right-clicking the blank parts of the tab bar (when vertical) now
|
|
closes the current tab.
|
|
- The adblocker now also blocks non-GET requests (e.g. POST).
|
|
- `javascript:` links can now be hinted.
|
|
- `:view-source`, `:tab-clone` and `:navigate --tab` now don't open the tab as
|
|
"explicit" anymore, i.e. (with the default settings) open it next to the
|
|
active tab.
|
|
- `qute:*` pages now use `qute://*` instead (e.g. `qute://version` instead of
|
|
`qute:version`), but the old versions are automatically redirected.
|
|
- Texts in prompts are now selectable.
|
|
- The default level for `:messages` is now `info`, not `error`
|
|
- Trying to focus the currently focused tab with `:tab-focus` now focuses the
|
|
last viewed tab.
|
|
- (QtWebEngine) With Qt 5.9, `content -> cookies-store` can now be set without
|
|
a restart.
|
|
- (QtWebEngine) With Qt 5.9, better error messages are now shown for failed
|
|
downloads.
|
|
- (QtWebEngine) The underlying Chromium version is now shown in the version
|
|
info.
|
|
- (QtWebKit) Renderer process crashes now show an error page on Qt 5.9 or newer.
|
|
- (QtWebKit) storage -> offline-web-application-storage` got renamed to `...-cache`
|
|
- (QtWebKit) PAC now supports SOCKS5 as type.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- The macOS .dmg is now built against Qt 5.9 which fixes various
|
|
important issues (such as not being able to type dead keys).
|
|
- Fixed crash with `:download` on PyQt 5.9.
|
|
- Cloning a page without history doesn't crash anymore.
|
|
- When a download results in a HTTP error, it now shows the error correctly
|
|
instead of crashing.
|
|
- Pressing ctrl-c while a config error is shown works as intended now.
|
|
- When the key config isn't writable, we now show an error instead of crashing.
|
|
- Fixed crash when unbinding an unbound key in the key config.
|
|
- Fixed crash when using `:debug-log-filter` when `--filter` wasn't given on startup.
|
|
- Fixed crash with some invalid setting values.
|
|
- Continuing a search after clearing it now works correctly.
|
|
- The tabbar and completion should now be more consistently and correctly
|
|
styled with various system styles.
|
|
- Applying styles in `qt5ct` now shouldn't crash anymore.
|
|
- The validation for colors in stylesheets is now less strict,
|
|
allowing for all valid Qt values.
|
|
- `data:` URLs now aren't added to the history anymore.
|
|
- Accidentally starting with Python 2 now shows a proper error message again.
|
|
- For some people, running some userscripts crashed - this should now be fixed.
|
|
- Various other rare crashes should now be fixed.
|
|
- The settings documentation was truncated with v0.10.1 which should now be
|
|
fixed.
|
|
- Scrolling to an anchor in a background tab now works correctly, and javascript
|
|
gets the correct window size for background tabs.
|
|
- (QtWebEngine) Added a workaround for a black screen with some setups
|
|
- (QtWebEngine) Starting with Nouveau graphics now shows an error message
|
|
instead of crashing in Qt.
|
|
- (QtWebEngine) Retrying downloads now shows an error instead of crashing.
|
|
- (QtWebEngine) Cloning a view-source tab now doesn't crash anymore.
|
|
- (QtWebEngine) `window.navigator.userAgent` is now set correctly when
|
|
customizing the user agent.
|
|
- (QtWebEngine) HTML fullscreen is now tracked for each tab separately, which
|
|
means it's not possible anymore to accidentally get stuck in fullscreen state
|
|
by closing a tab with a fullscreen video.
|
|
- (QtWebEngine) `:scroll-page` with `--bottom-navigate` now works correctly.
|
|
- (QtWebKit) The HTTP cache is disabled on Qt 5.7.1 and 5.8 now as it leads to
|
|
frequent crashes due to a Qt bug.
|
|
- (QtWebKit) Fixed Crash when a PAC file returns an invalid value.
|
|
|
|
[[v0.10.1]]
|
|
v0.10.1 (2017-03-08)
|
|
--------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- `--qt-arg` and `--qt-flag` can now also be used to pass arguments to Chromium when using QtWebEngine.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- URLs are now redacted properly (username/password, and path/query for HTTPS) when using Proxy Autoconfig with QtWebKit
|
|
- Crash when updating adblock lists with invalid UTF8-chars in them
|
|
- Fixed the web inspector with QtWebEngine
|
|
- Version checks when starting qutebrowser now also take the Qt version PyQt was compiled against into account
|
|
- Hinting a input now doesn't select existing text anymore with QtWebKit
|
|
- The cursor now moves to the end when input elements are selected with QtWebEngine
|
|
- Download suffixes like (1) are now correctly stripped with QtWebEngine
|
|
- Crash when trying to print a tab which was closed in the meantime
|
|
- Crash when trying to open a file twice on Windows
|
|
|
|
[[v0.10.0]]
|
|
v0.10.0 (2017-02-25)
|
|
--------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Userscripts now have a new `$QUTE_COMMANDLINE_TEXT` environment variable, containing the current commandline contents
|
|
- New `ripbang` userscript to create a searchengine from a duckduckgo bang
|
|
- link:https://github.com/annulen/webkit/wiki[QtWebKit Reloaded] (also called QtWebKit-NG) is now fully supported
|
|
- Various new functionality with the QtWebEngine backend:
|
|
* Printing support with Qt >= 5.8
|
|
* Proxy support with Qt >= 5.8
|
|
* The `general -> print-element-backgrounds` option with Qt >= 5.8
|
|
* The `content -> cookies-store` option
|
|
* The `storage -> cache-size` option
|
|
* The `colors -> webpage.bg` option
|
|
* The HTML5 fullscreen API (e.g. youtube videos) with QtWebEngine
|
|
* `:download --mhtml`
|
|
- New `qute:history` URL and `:history` command to show the browsing history
|
|
- Open tabs are now auto-saved on each successful load and restored in case of a crash
|
|
- `:jseval` now has a `--file` flag so you can pass a javascript file
|
|
- `:session-save` now has a `--only-active-window` flag to only save the active window
|
|
- macOS builds are back, and built with QtWebEngine
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- PyQt 5.7/Qt 5.7.1 is now required for the QtWebEngine backend
|
|
- Scrolling with the scrollwheel while holding shift now scrolls sideways
|
|
- New way of clicking hints which solves various small issues
|
|
- When yanking a mailto: link via hints, the mailto: prefix is now stripped
|
|
- Zoom level messages are now not stacked on top of each other anymore
|
|
- qutebrowser now automatically uses QtWebEngine if QtWebKit is unavailable
|
|
- :history-clear now asks for a confirmation, unless it's run with --force.
|
|
- `input -> mouse-zoom-divider` can now be 0 to disable zooming by mouse wheel
|
|
- `network -> proxy` can also be set to `pac+file://...` now to
|
|
use a local proxy autoconfig file (on QtWebKit)
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- (QtWebKit) Various rarely customized settings were removed:
|
|
* `ui -> css-media-type` (defaults to desktop)
|
|
* `general -> site-specific-quirks` (now always turned on)
|
|
* `storage -> offline-storage-default-quota` (defaults to 5MB)
|
|
* `storage -> offline-web-application-cache-quota` (defaults to no quota)
|
|
* `storage -> object-cache-capacities` (default depends on disk space)
|
|
* `content -> css-regions` (now always turned off)
|
|
* `storage -> offline-storage-database` (merged into `storage -> local-storage`)
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Various bugs with Qt 5.8 and QtWebEngine:
|
|
* Segfault when closing a window
|
|
* Segfault when closing a tab with a search active
|
|
* Fixed various mouse actions (like automatically entering insert mode) not working
|
|
* Fixed hints sometimes not working
|
|
* Segfault when opening a URL after a QtWebEngine renderer process crash
|
|
- Other QtWebEngine fixes:
|
|
* Insert mode now gets entered correctly with a non-100% zoom
|
|
* Crash reports are now re-enabled when using QtWebEngine
|
|
* Fixed crashes when closing tabs while hinting
|
|
* Using :undo or :tab-clone with a view-source:// or chrome:// tab is now prevented, as it segfaults
|
|
- `:enter-mode` now refuses to enter modes which can't be entered manually (which caused crashes)
|
|
- `:record-macro` (`q`) now doesn't try to record macros for special keys without a text
|
|
- Fixed PAC (proxy autoconfig) not working with QtWebKit
|
|
- `:download --mhtml` now uses the new file dialog
|
|
- Word hints are now upper-cased correctly when hints -> uppercase is true
|
|
- Font validation is now more permissive in the config, allowing e.g. "Terminus
|
|
(TTF)" as font name
|
|
- Fixed starting on newer PyQt/sip versions with LibreSSL
|
|
- When downloading files with QtWebKit, a User-Agent header is set when possible
|
|
- Fixed showing of keybindings in the :help completion
|
|
- `:navigate prev/next` now detects `rel` attributes on `<a>` elements, and
|
|
handles multiple `rel` attributes correctly
|
|
- Fixed a crash when hinting with target `userscript` and spawning a non-existing script
|
|
- Lines in Jupyter notebook now trigger insert mode
|
|
|
|
[[v0.9.1]]
|
|
v0.9.1 (2017-01-13)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Prevent websites from downloading files to a location outside of the download
|
|
folder with QtWebEngine.
|
|
|
|
[[v0.9.0]]
|
|
v0.9.0 (2016-12-28)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- *New dependency:* qutebrowser now depends on the Qt QML module, which is
|
|
packaged separately in some distributions (as Qt Declarative/QML/Quick).
|
|
- New `:rl-backward-kill-word` command which does what `:rl-unix-word-rubout`
|
|
did before v0.8.0.
|
|
- New `:rl-unix-filename-rubout` command which is similar to readline's
|
|
`unix-filename-rubout`.
|
|
- New `fonts -> completion.category` setting to customize the font used for
|
|
completion category headers.
|
|
- New `:debug-log-capacity` command to adjust how many lines are logged into RAM
|
|
(to report bugs which are difficult to reproduce).
|
|
- New `hide-unmatched-rapid-hints` option to not hide hint unmatched hint labels
|
|
in rapid mode.
|
|
- New `{clipboard}` and `{primary}` replacements for the commandline which
|
|
replace the `:paste` command.
|
|
- New `:insert-text` command to insert a given text into a field on the page,
|
|
which replaces `:paste-primary` together with the `{primary}` replacement.
|
|
- New `:window-only` command to close all other windows.
|
|
- New `prev-category` and `next-category` arguments to `:completion-item-focus`
|
|
to focus the previous/next category in the completion (bound to `<Ctrl-Tab>`
|
|
and `<Ctrl-Shift-Tab>` by default).
|
|
- New `:click-element` command to fake a click on a element.
|
|
- New `:debug-log-filter` command to change console log filtering on-the-fly.
|
|
- New `:debug-log-level` command to change the console loglevel on-the-fly.
|
|
- New `general -> yank-ignored-url-parameters` option to configure which URL
|
|
parameters (like `utm_source` etc.) to strip off when yanking a URL.
|
|
- Support for the
|
|
https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API[HTML5 page visibility API]
|
|
- New `readability` userscript which shows a readable version of a page (using
|
|
the `readability-lxml` python package)
|
|
- New `cast` userscript to show a video on a Google Chromecast
|
|
- New `:run-with-count` command which replaces the (undocumented) `:count:command` syntax.
|
|
- New `:record-macro` (`q`) and `:run-macro` (`@`) commands for keyboard macros.
|
|
- New `ui -> hide-scrollbar` setting to hide the scrollbar independently of the
|
|
`user-stylesheet` setting.
|
|
- New `general -> default-open-dispatcher` setting to configure what to open
|
|
downloads with (instead of e.g. `xdg-open` on Linux).
|
|
- Support for PAC (proxy autoconfig) with QtWebKit
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Hints are now drawn natively in Qt instead of using web elements. This has a
|
|
few implications for users:
|
|
* The `hints -> opacity` setting does not exist anymore, but you can use
|
|
`rgba(r, g, b, alpha)` colors instead for `colors -> hints.bg`.
|
|
* The `hints -> font` setting is not affected by
|
|
`fonts -> web-family-fixed` anymore. Thus, a transformer got added to
|
|
change `Monospace` to `${_monospace}`.
|
|
* Gradients in hint colors can now be configured by using `qlineargradient`
|
|
and friends instead of `-webkit-gradient`. The most common cases get
|
|
migrated automatically, but if you drastically changed the defaults,
|
|
you'll need to manually adjust your config.
|
|
* Styling hints by styling `qutehint` elements in `user-stylesheet` was
|
|
never officially supported and does not work anymore.
|
|
* Hints are now not affected by the page's stylesheet or zoom anymore.
|
|
- `:bookmark-add` now has a `--toggle` flag which deletes the bookmark if it
|
|
already exists.
|
|
- `:bookmark-load` now has a `--delete` flag which deletes the bookmark after
|
|
loading it.
|
|
- `:open` now also accepts quickmark names instead of URLs
|
|
- `:tab-move` now optionally takes an index for absolute moving.
|
|
- Commands taking either an argument or a count (like `:zoom` or `:tab-focus`)
|
|
now prefer the count instead of showing an error message.
|
|
- `:open` now has an `--implicit` argument to treat the opened tab as implicit
|
|
(i.e. to open it at the position it would be opened if it was a clicked link)
|
|
- `:download-open` and `:prompt-open-download` now have an optional `cmdline`
|
|
argument to pass a commandline to open the download with.
|
|
- `:yank` now has a position argument to select what to yank instead of using
|
|
flags.
|
|
- Replacements like `{url}` can now also be used in the middle of an argument.
|
|
Consequently, commands taking another command (`:later`, `:repeat` and
|
|
`:bind`) now don't immediately evaluate variables.
|
|
- Tab titles in the `:buffer` completion now update correctly when a page's
|
|
title is changed via javascript.
|
|
- `:hint` now has a `--mode <mode>` flag to override the hint mode configured
|
|
using the `hints -> mode` setting.
|
|
- With `new-instance-open-target` set to a tab option, the tab is now opened in
|
|
the most recently focused (instead of the last opened) window. This can be
|
|
configured with the new `new-instance-open-target.window` setting.
|
|
It can also be set to `last-visible` to show the pages in the most recently
|
|
visible window, or `first-opened` to use the first (oldest) available window.
|
|
- Word hints now are more clever about getting the element text from some elements.
|
|
- Completions for `:help` and `:bind` now also show hidden commands
|
|
- The `:buffer` completion now also filters using the first column (id).
|
|
- `:undo` has been improved to reopen tabs at the position they were closed.
|
|
- `:navigate` now takes a count for `up`/`increment`/`decrement`.
|
|
- The `hints -> auto-follow` setting now can be set to
|
|
`always`/`full-match`/`unique-match`/`never` to more precisely control when
|
|
hints should be followed automatically.
|
|
- Counts can now be used with special keybindings (e.g. with modifiers).
|
|
This was already implemented for v0.7.0 originally, but got reverted because
|
|
it caused some issues and then never re-applied.
|
|
- Sending a command to an existing instance (via "qutebrowser :reload") now
|
|
doesn't mark it as urgent anymore.
|
|
- `tabs -> title-format` now treats an empty string as valid.
|
|
- Bindings for `:`, `/` and `?` are now configured explicitly and not hardcoded
|
|
anymore.
|
|
- The `completion -> show` setting can now be set to `always`, `auto` or
|
|
`never`.
|
|
- `:open-editor` can now be used in any mode.
|
|
- Lots of improvements to and bugfixes for the QtWebEngine backend, such as
|
|
working hints. However, using qutebrowser directly from git is still advised
|
|
when using `--backend webengine`.
|
|
- `content -> javascript-can-open-windows` got renamed to
|
|
`javascript-can-open-windows-automatically`.
|
|
- `:prompt-accept` now optionally accepts a value which overrides the one
|
|
entered in the input box. `yes` and `no` can be used as values for yes/no
|
|
questions.
|
|
- The new `--qt-arg` and `--qt-flag` arguments can be used to pass
|
|
arguments/flags to Qt's commandline.
|
|
- Error/warning/info messages are now shown stacked above the statusbar.
|
|
This also added various new settings:
|
|
* `colors -> messages.fg.error` (renamed from `statusbar.fg.error`)
|
|
* `colors -> messages.bg.error` (renamed from `statusbar.bg.error`)
|
|
* `colors -> messages.border.error`
|
|
* `colors -> messages.fg.warning` (renamed from `statusbar.fg.warning`)
|
|
* `colors -> messages.bg.warning` (renamed from `statusbar.bg.warning`)
|
|
* `colors -> messages.border.warning`
|
|
* `colors -> messages.fg.info`
|
|
* `colors -> messages.bg.info`
|
|
* `colors -> messages.border.info`
|
|
* `fonts -> messages.error`
|
|
* `fonts -> messages.warning`
|
|
* `fonts -> messages.info`
|
|
- The `qute:settings` page now also shows option descriptions.
|
|
- `qute:version` and `qutebrowser --version` now show various important paths
|
|
- `:spawn`/userscripts now show a nicer error when a script wasn't found
|
|
- Various functionality now works when javascript is disabled with QtWebKit
|
|
- Various commands/settings taking `left`/`right`/`previous` arguments now take
|
|
`prev`/`next`/`last-used` to remove ambiguity.
|
|
- The `ui -> user-stylesheet` setting now only takes filenames, not CSS snippets
|
|
- `ui -> window-title-format` now has a new `{backend} ` replacement
|
|
- `:hint` has a new `--add-history` argument to add the URL to the history for
|
|
yank/spawn targets.
|
|
- `:set` now cycles through values if more than one argument is given.
|
|
- `:open` now opens `default-page` without a URL even without `-t`/`-b`/`-w` given.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- The `:paste` command got deprecated as `:open` with `{clipboard}` and
|
|
`{primary}` can be used instead.
|
|
- The `:paste-primary` command got deprecated as `:insert-text {primary}` can
|
|
be used instead.
|
|
- The `:prompt-yes` and `:prompt-no` commands got deprecated as
|
|
`:prompt-accept yes` and `:prompt-accept no` can be used instead.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `:yank-selected` command got merged into `:yank` as `:yank selection`
|
|
and thus removed.
|
|
- The `:completion-item-prev` and `:completion-item-next` commands got merged
|
|
into a new `:completion-focus {prev,next}` command and thus removed.
|
|
- The `ui -> hide-mouse-cursor` setting since it was completely broken and
|
|
nobody seemed to care.
|
|
- The `hints -> opacity` setting - see the "Changed" section for details.
|
|
- The `completion -> auto-open` setting got merged into `completion -> show` and
|
|
thus removed.
|
|
- All `--qt-*` arguments got replaced by `--qt-arg` and `--qt-flag` and thus
|
|
removed.
|
|
- The `-c`/`--confdir`, `--datadir` and `--cachedir` arguments got removed, as
|
|
`--basedir` should be sufficient.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- `:undo` now doesn't undo tabs "closed" by `:tab-detach` anymore.
|
|
- Fixed an issue with hint chars not being cleared correctly when leaving hint
|
|
mode.
|
|
- `:tab-detach` now fails correctly when there's only one tab open.
|
|
- Various small issues with the command completion
|
|
- Fixed hang when using multiple spaces in a row with the URL completion
|
|
- qutebrowser now still starts with an incorrectly configured
|
|
`$XDG_RUNTIME_DIR`.
|
|
- Fixed crash when a userscript writes invalid unicode data to the FIFO
|
|
- Fixed crash when a included HTML was not found
|
|
|
|
[[v0.8.3]]
|
|
v0.8.3 (2016-11-05)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed crash when doing `:<space><enter>`, another corner-case introduced in v0.8.0
|
|
- Fixed `:open-editor` (`<Ctrl-e>`) on Windows
|
|
- Fixed crash when setting `general -> auto-save-interval` to a too big value.
|
|
- Fixed crash when using hints on Void Linux.
|
|
- Fixed compatibility with Python 3.5.2+ on Debian unstable
|
|
- Compatibility with pdfjs v1.6.210
|
|
- `:bind` can now be used to bind to an alias (binding by editing `keys.conf`
|
|
already worked before)
|
|
- The command completion now updates correctly when changing aliases
|
|
- The tabbar now displays correctly with the Adwaita Qt theme
|
|
- The default `sk` keybinding now sets the commandline to `:bind` correctly
|
|
- Fixed crash when closing a window without focusing it
|
|
- Userscripts now can access QUTE_FIFO correctly on Windows
|
|
|
|
[[v0.8.2]]
|
|
v0.8.2 (2016-08-02)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed `general -> private-browsing` not being set correctly until a restart
|
|
(which caused e.g. local storage to be enabled).
|
|
- When hinting input fields (`:t`), also consider input elements without a type.
|
|
- Fixed crash when opening an invalid URL with a percent-encoded and a real @ in it
|
|
- Fixed default `;o` and `;O` bindings
|
|
- Fixed local storage not working (and possible other bugs) when using a
|
|
relative path with `--basedir`.
|
|
- Fixed crash when deleting a quickmark with Ctrl-D
|
|
- Fixed HTML5 video playback on Windows
|
|
- Fixed crash when using `:prompt-open-download` with a file with chars not
|
|
encodable with the OS' filesystem encoding (e.g. with `LC_ALL=C`)
|
|
- Fixed `:prompt-open-download` with a too long filename (> 255 bytes)
|
|
- Fixed crash when cancelling a download after doing `:prompt-open-download`
|
|
- Fixed crash when writing a download to disk fails with
|
|
`:prompt-open-download`.
|
|
- Fixed `:restart` deleting the basedir when it was given with `--basedir`.
|
|
|
|
[[v0.8.1]]
|
|
v0.8.1 (2016-07-27)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fix crash when pressing enter without a command
|
|
- Adjust error message to point out QtWebEngine is unsupported with the OS
|
|
X .app currently.
|
|
- Hide Harfbuzz warning with the macOS .app
|
|
|
|
[[v0.8.0]]
|
|
v0.8.0 (2016-07-26)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `:repeat-command` command (mapped to `.`) to repeat the last command.
|
|
Note that two former default bundings conflict with that binding, unbinding
|
|
them via `:unbind .i` and `:unbind .o` is recommended.
|
|
- New `qute:bookmarks` page which displays all bookmarks and quickmarks.
|
|
- New `:prompt-open-download` (bound to `Ctrl-X`) which can be used to open a
|
|
download directly when getting the filename prompt.
|
|
- New `{host}` replacement for tab- and window titles which evaluates
|
|
to the current host.
|
|
- New default binding `;t` for `:hint input`.
|
|
- New variables `$QUTE_CONFIG_DIR`, `$QUTE_DATA_DIR` and
|
|
`$QUTE_DOWNLOAD_DIR` available for userscripts.
|
|
- New option `ui` -> `status-position` to configure the position of the
|
|
status bar (top/bottom).
|
|
- New `--pdf <filename>` argument for `:print` WHICH can be used to generate a
|
|
PDF without a dialog.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- `:scroll-perc` now prefers a count over the argument given to it, which means
|
|
`gg` can be used with a count.
|
|
- Aliases can now use `;;` to have an alias which executed multiple commands.
|
|
- `:edit-url` now does nothing if the URL isn't changed in the spawned editor.
|
|
- `:bookmark-add` can now be passed a URL and title to add that as a bookmark
|
|
rather than the current page.
|
|
- New `taskadd` userscript to add a taskwarrior task annotated with the
|
|
current URL.
|
|
- `:bookmark-del` and `:quickmark-del` now delete the current page's URL if none
|
|
is given.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Compatibility with PyQt 5.7
|
|
- Fixed some configuration values being lost when a config option gets removed
|
|
from qutebrowser's code.
|
|
- Fix crash when downloading with a full disk
|
|
- Using `:jump-mark` (e.g. `''`) when the current URL is invalid doesn't crash
|
|
anymore.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The ability to display status messages from webpages, as well as the related
|
|
`ui -> display-statusbar-messages` setting.
|
|
- The `general -> wrap-search` setting as searches now always wrap.
|
|
According to a quick straw poll and prior crash logs, almost nobody is using
|
|
`wrap-search = false`, and turning off wrapping is not possible with
|
|
QtWebEngine.
|
|
- `:edit-url` now doesn't accept a count anymore as its behavior was confusing
|
|
and it doesn't make much sense to add a count.
|
|
|
|
[[v0.7.0]]
|
|
v0.7.0 (2016-06-10)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `:edit-url` command to edit the URL in an external editor.
|
|
- New `network -> custom-headers` setting to send custom headers with every request.
|
|
- New `{url:pretty}` commandline replacement which gets replaced by the decoded URL.
|
|
- New marks to remember a scroll position:
|
|
- New `:jump-mark` command to jump to a mark, bound to `'`
|
|
- New `:set-mark` command to set a mark, bound to ```(backtick)
|
|
- The `'` mark gets set when moving away (hinting link with anchor, searching, etc.) so you can move back with `''`
|
|
- New `--force-color` argument to force colored logging even if stdout is not a
|
|
terminal
|
|
- New `:messages` command to show error messages
|
|
- New pop-up showing possible keybinding when the first key of a keychain is
|
|
pressed. This can be turned off using `:set ui keyhint-blacklist *`.
|
|
- New `hints -> auto-follow-timeout` setting to ignore keypresses after
|
|
following a hint when filtering in number mode.
|
|
- New `:history-clear` command to clear the entire history
|
|
- New `hints -> find-implementation` to select which implementation (JS/Python)
|
|
should be used to find hints on a page. The `javascript` implementation is
|
|
better, but slower.
|
|
- New `inputs` group for `:hint` to hint text input fields.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- qutebrowser got a new (slightly updated) logo
|
|
- `:tab-focus` can now take a negative index to focus the nth tab counted from
|
|
the right.
|
|
- `:yank` can now yank the pretty/decoded URL by adding `--pretty`
|
|
- `:navigate` now clears the URL fragment
|
|
- `:completion-item-del` (`Ctrl-D`) can now be used in `:buffer` completion to
|
|
close a tab
|
|
- Various SSL ciphers are now disabled by default. With recent Qt/OpenSSL
|
|
versions those already all are disabled, but with older versions they might
|
|
not be.
|
|
- Show favicons as window icon with `tabs-are-windows` set.
|
|
- `:bind <key>` without a command now shows the existing binding
|
|
- The optional `colorlog` dependency got removed, as qutebrowser now displays
|
|
colored logs without it.
|
|
- URLs are now shown decoded when hovering.
|
|
- Keybindings are now shown in the command completion
|
|
- Improved behavior when pasting multiple lines
|
|
- Rapid hints can now also be used for the `normal` hint target, which can be
|
|
useful with javascript click handlers or checkboxes which don't actually open
|
|
a new page.
|
|
- `:zoom-in` or `:zoom-out` (`+`/`-`) with a too large count now zooms to the
|
|
smallest/largest zoom instead of doing nothing.
|
|
- The commandline now accepts partially typed commands if they're unique.
|
|
- Number hints are now kept filtered after following a hint in rapid mode.
|
|
- Number hints are now renumbered after filtering
|
|
- Number hints can now be filtered with multiple space-separated search terms
|
|
- `hints -> scatter` is now ignored for number hints
|
|
- Better history implementation which also stores titles.
|
|
As a consequence, URLs which redirect to another URL are now added to the
|
|
history too, marked with a `-r` suffix to the timestamp field.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed using `:hint links spawn` with flags - you can now use things like the
|
|
`-v` argument for `:spawn` or pass flags to the spawned commands.
|
|
- Various fixes for hinting corner-cases where following a link didn't work or
|
|
the hint was drawn at the wrong position.
|
|
- Fixed crash when downloading from a URL with SSL errors
|
|
- Close file handles correctly when a download failed
|
|
- Fixed crash when using `;Y` (`:hint links yank-primary`) on a system without
|
|
primary selection
|
|
- Don't display quit confirmation with finished downloads
|
|
- Fixed updating the tab index in the statusbar when opening a background tab
|
|
- Fixed a crash when entering `:-- ` in the commandline
|
|
- Fixed `:debug-console` with PyQt 5.6
|
|
- Fixed qutebrowser not starting when `sys.stderr` is `None`
|
|
- Fixed crash when cancelling a download which belongs to an MHTML download
|
|
- Fixed rebinding of keybindings being case-sensitive
|
|
- Fix for tab indicators getting lost when moving tabs
|
|
- Fixed handling of backspace in number hinting mode
|
|
- Fixed `FileNotFoundError` when starting in some cases on old Qt versions
|
|
- Fixed sharing of cookies between tabs when `private-browsing` is enabled
|
|
- Toggling values with `:set` now uses lower-case values
|
|
- Hints now work with (non-standard) links with spaces around the URL
|
|
- Strip off trailing spaces for history entries with no title
|
|
|
|
[[v0.6.2]]
|
|
v0.6.2 (2016-04-30)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed crash when using `:tab-{prev,next,focus}` right after closing the last
|
|
tab with `last-close` set to `close`.
|
|
- Fixed crash when doing `:undo` in a new instance with `tabs -> last-close` set
|
|
to `default-page`.
|
|
- Fixed crash when starting with --cachedir=""
|
|
- Fixed crash in some circumstances when using dictionary hints
|
|
- Fixed various crashes related to PyQt 5.6
|
|
|
|
[[v0.6.1]]
|
|
v0.6.1 (2016-04-10)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~~
|
|
|
|
- Fixed broken cheatsheet image which was missing from package
|
|
- Fixed occasional crash when switching/disconnecting monitors
|
|
- Fixed crash when downloading non-ascii files with a broken locale (`LC_ALL=C`)
|
|
- Added workaround for a Qt/PyQt bug which is too weird to describe here
|
|
|
|
[[v0.6.0]]
|
|
v0.6.0 (2016-04-04)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New `:buffer` command to easily switch tabs by name. This is not bound to a
|
|
key by default for existing users due to a conflict with the `gt`/`gT`
|
|
bindings (which are now removed from the default bindings).
|
|
You can bind it by hand by running `:bind -f gt set-cmd-text -s :buffer`.
|
|
- New `--quiet` argument for the `:debug-pyeval` command to not open a tab with
|
|
the results. Note `:debug-pyeval` is still only intended for debugging.
|
|
- The completion now matches each entered word separately.
|
|
- A new command `:paste-primary` got added to paste the primary selection, and
|
|
`<Shift-Insert>` got added as a binding so it pastes primary rather than
|
|
clipboard.
|
|
- New mode `word` for `hints -> mode` which uses a dictionary and link-texts
|
|
for hints instead of single characters.
|
|
- New `--all` argument for `:download-cancel` to cancel all running downloads.
|
|
- New `password_fill` userscript to fill passwords using the `pass` executable.
|
|
- New `current` hinting mode which forces opening hints in the current tab
|
|
(even with `target="_blank"`)
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Pasting multiple lines via `:paste` now opens each line in a new tab.
|
|
- `:navigate increment/decrement` now preserves leading zeroes in URLs.
|
|
- `general -> editor` can now also handle `{}` inside another argument (e.g. to open `vim` via `termite`)
|
|
- Improved performance when scrolling with many tabs open.
|
|
- Shift-Insert now also pastes primary selection for prompts.
|
|
- `:download-remove --all` got un-deprecated to provide symmetry with
|
|
`:download-cancel --all`. It does the same as `:download-clear`.
|
|
- Improved detection of URLs/search terms when pasting multiple lines.
|
|
- Don't remove `qutebrowser-editor-*` temporary file if editor subprocess crashed
|
|
- Userscripts are also searched in `/usr/share/qutebrowser/userscripts`.
|
|
- Blocked hosts are now also read from a `blocked-hosts` file in the config dir
|
|
(e.g. `~/.config/qutebrowser/blocked-hosts`).
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed starting with -c "".
|
|
- Fixed crash when a tab is closed twice via javascript (e.g. Dropbox
|
|
authentication dialogs)
|
|
- Fixed crash when a notification/geolocation prompt is answered after closing
|
|
the tab it belongs to.
|
|
- Fixed crash when downloading a file without any path information (e.g a
|
|
magnet link).
|
|
- Fixed crashes when opening an empty URL (e.g. via pasting).
|
|
- Fixed validation of duplicate values in `hints -> chars`.
|
|
- Fixed crash when PDF.js was partially installed.
|
|
- Fixed crash when XDG_DOWNLOAD_DIR was not an absolute path.
|
|
- Fixed very long filenames when downloading `data://`-URLs.
|
|
- Fixed ugly UI fonts on Windows when Liberation Mono is installed
|
|
- Fixed crash when unbinding key from a section which doesn't exist in the config
|
|
- Fixed report window after a segfault
|
|
- Fixed some directory browser issues on Windows
|
|
- Fixed crash when closing a window with a finished download and delayed
|
|
`remove-finished-downloads` setting.
|
|
- Fixed crash when hitting `<Tab>` then `<Ctrl-C>` on pages without keyboard
|
|
focus.
|
|
- Fixed "Frame load interrupted by policy change" error showing up when
|
|
downloading files with Qt 5.6.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `gt`/`gT` bindings (luakit-like alternatives to `J`/`K`) were removed
|
|
(except for existing configs) to make room for the `gt` binding to show
|
|
buffers.
|
|
|
|
[[v0.5.1]]
|
|
v0.5.1 (2016-01-18)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed completion for various config values when using `:set`.
|
|
- Fixed config validation for various config values.
|
|
- Prevented an error being logged when a website with HTTP authentication was
|
|
opened on Windows.
|
|
|
|
[[v0.5.0]]
|
|
v0.5.0 (2016-01-05)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Ability to preview PDFs using pdf.js in the browser if it's installed. This
|
|
is disabled by default and can be enabled using the
|
|
`content -> pdfjs-enabled` setting.
|
|
- New setting `ui -> hide-wayland-decoration` to hide the window decoration
|
|
when using wayland.
|
|
- New userscripts in `misc/userscripts`:
|
|
- `open_download` to easily open a file in your downloads folder.
|
|
- `view_in_mpv` to open a video in mpv and remove it from the page.
|
|
- `qutedmenu` and `dmenu_qutebrowser` to select URLs via dmenu
|
|
- New setting `content -> host-blocking-whitelist` to whitelist certain domains
|
|
from the adblocker.
|
|
- `{scroll_pos}` can now be used in `ui -> window-title-format` and
|
|
`tabs -> title-format`.
|
|
- New setting `general -> url-incdec-segments` to configure which segments of
|
|
the URL should be affected by `:navigate increment/decrement`.
|
|
- New `--target` argument to specify how URLs should be opened in an existing
|
|
instance.
|
|
- New setting `statusbar.url.fg.success.https` to set the foreground color for
|
|
the URL when a page was loaded via HTTPS.
|
|
- The scrollbar in the completion is now styled, and the following new options
|
|
got added:
|
|
* `completion -> scrollbar-width`
|
|
* `completion -> scrollbar-padding`
|
|
* `colors -> completion.scrollbar.fg`
|
|
* `colors -> completion.scrollbar.bg`
|
|
- New value `none` for options taking a color system so they don't display a
|
|
gradient:
|
|
* `colors -> tabs.indicator.system`
|
|
* `colors -> downloads.fg.system`
|
|
* `colors -> downloads.bg.system`
|
|
- New command `:download-retry` to retry a failed download.
|
|
- New command `:download-clear` which replaces `:download-remove --all`.
|
|
- `:set-cmd-text` has a new `--append` argument to append to the current
|
|
statusbar text.
|
|
- qutebrowser now uses `~/.netrc` if available to authenticate via HTTP.
|
|
- New `:fake-key` command to send a fake keypress to a website or to
|
|
qutebrowser.
|
|
- New `--mhtml` argument for `:download` to download a page including all
|
|
resources as MHTML file.
|
|
- New option `tabs -> title-alignment` to change the alignment of tab titles.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- The `colors -> tabs.bg/fg.selected` option got split into
|
|
`tabs.bg/fg.selected.odd/even`.
|
|
- `:spawn --userscript` and `:hint` with the `userscript` target now look up
|
|
relative paths in `~/.local/share/qutebrowser/userscripts` or
|
|
`$XDG_DATA_HOME`. Using a binary in `$PATH` won't work anymore with
|
|
`--userscript`.
|
|
- New design for error pages
|
|
- Link filtering for hints now checks if the text is contained anywhere in
|
|
the link, and matches case-insensitively.
|
|
- The `ui -> remove-finished-downloads` option got changed to an integer and
|
|
now takes a time (in milliseconds) to keep the download around after it's
|
|
finished. When set to `-1`, downloads are never removed.
|
|
- The `:follow-hint` command now optionally takes the keystring of a hint to
|
|
follow.
|
|
- `:scroll-px` now doesn't take floats anymore, which made little sense.
|
|
- Updated the user agent list for the `:set network user-agent` completion.
|
|
- Starting with `--debug` doesn't log `VDEBUG` messages anymore (add
|
|
`--loglevel VDEBUG` to get them).
|
|
- `:debug-console` now hides the console if it's already shown.
|
|
- `:yank-selected` now doesn't log the selected text anymore.
|
|
- `general -> log-javascript-console` got changed from a boolean to an option
|
|
taking a loglevel (`none`, `info`, `debug`).
|
|
- `:tab-move +/-` now wraps around if `tabs -> wrap` is `true`.
|
|
- When a subprocess (like launched by `:spawn`) fails, its stdout/stderr is now
|
|
logged to the console.
|
|
- A search engine name can now contain any non-space character, like dashes.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- `:download-remove --all` is now deprecated and `:download-clear` should be
|
|
used instead.
|
|
- `:download <url> <destination>` is now deprecated and
|
|
`:download --dest <destination> <url>` should be used instead.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- `:scroll` with two pixel-arguments (deprecated in v0.3.0)
|
|
- The `:run-userscript` command (deprecated in v0.2.0)
|
|
- The `rapid` and `rapid-win` targets for `:hint` (deprecated in v0.2.0)
|
|
- The `:cancel-download` command (deprecated in v0.2.0)
|
|
- The `:download-page` command (deprecated in v0.2.0)
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed retrying of downloads which were started in a now closed tab.
|
|
- Fixed displaying of web history if `web-history-max-items` is set to -1.
|
|
- Cloned tabs now don't display favicons anymore if show-favicons is False.
|
|
- Fixed a crash when clicking a bookmark name and pressing `Ctrl-D`.
|
|
- Fixed a crash when a website presents a very small favicon.
|
|
- Fixed prompting for download directory when
|
|
`storage -> prompt-download-directory` was unset.
|
|
- Fixed crash when using `:follow-hint` outside of hint mode.
|
|
- Fixed crash when using `:set foo bar?` with invalid section/option.
|
|
- Fixed scrolling to the very left/right with `:scroll-perc`.
|
|
- Using an external editor should now work correctly with some funny chars
|
|
(U+2028/U+2029/BOM).
|
|
- Movements in caret mode now should work correctly on macOS and Windows.
|
|
- Fixed upgrade from earlier config versions.
|
|
- Fixed crash when killing a running userscript.
|
|
- Fixed characters being passed through when shifted with
|
|
`forward-unbound-keys` set to `auto`.
|
|
- Fixed restarting after a crash is reported.
|
|
- Removed `.pyc` files accidentally contained in source releases.
|
|
|
|
[[v0.4.1]]
|
|
v0.4.1 (2015-09-30)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Adjusted AppArmor config for the IPC changes in v0.4.0.
|
|
- Fixed atime update frequency for IPC file.
|
|
- Worked around a Qt issue where middle-clicking caused scrolling with a
|
|
touchpad to restart at the beginning of the page.
|
|
- The `completion -> web-history-max-items` setting is now also respected for
|
|
items added after starting qutebrowser.
|
|
- Search terms are now shared between different tabs again
|
|
- Tests (a reduced subset of them) now run correctly again when DISPLAY is not
|
|
set.
|
|
- Fixed an issue causing qutebrowser to crash with Python 3.5 as soon as an ad
|
|
was blocked.
|
|
- Fixed an issue causing qutebrowser to not start with more recent Python 3.4
|
|
versions (e.g. on Debian experimental).
|
|
- Fixed various `PendingDeprecationWarnings` shown with Python 3.5.
|
|
|
|
[[v0.4.0]]
|
|
v0.4.0 (2015-09-11)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New bookmark functionality (similar to quickmarks without a name).
|
|
* New command `:bookmark-add` to bookmark the current page (bound to `M`).
|
|
* New command `:bookmark-load` to load a bookmark (bound to `gb`/`gB`/`wB`).
|
|
- New (hidden) command `:completion-item-del` (bound to `<Ctrl-D>`) to delete
|
|
the current item in the completion (for quickmarks/bookmarks).
|
|
- New settings `tabs -> padding` and `tabs -> indicator-tabbing` to control the
|
|
size/padding of the tabbar.
|
|
- New setting `ui -> statusbar-padding` to control the size/padding of the
|
|
status bar.
|
|
- New setting `network -> referer-header` to configure when the referer should
|
|
be sent (by default it's only sent while on the same domain).
|
|
- New setting `tabs -> show` which supersedes the old `tabs -> hide-*` options
|
|
and has an additional `switching` option which shows tab while switching
|
|
them. There's also a new `show-switching` option to configure the timeout.
|
|
- New setting `storage -> remember-download-directory` to remember the last
|
|
used download directory.
|
|
- New setting `storage -> prompt-download-directory` to download all downloads
|
|
without asking.
|
|
- Rapid hinting is now also possible for downloads.
|
|
- Directory browsing via `file://` is now supported.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Some developer scripts got moved to `scripts/dev/`
|
|
- When downloading to a FIFO or special file, a confirmation is displayed as
|
|
this might cause qutebrowser to hang.
|
|
- The `:yank-selected` command now works in all modes instead of just caret
|
|
mode and is not hidden anymore.
|
|
- `minimal_webkit_testbrowser.py` now has a `--webengine` switch to test
|
|
QtWebEngine if it's installed.
|
|
- The column width percentages for the completion view now depend on the
|
|
completion model.
|
|
- The values for `tabs -> position` and `ui -> downloads-position` got changed
|
|
from `north`/`south`/`west/`east` to `top`/`bottom`/`left`/`right`. Existing
|
|
configs should be adjusted automatically.
|
|
- `:tab-focus`/`gt` now behaves like `:tab-next` if no count/index is given.
|
|
- The completion widget doesn't show a border anymore.
|
|
- The tabbar doesn't display ugly arrows anymore if there isn't enough space
|
|
for all tabs.
|
|
- Some insignificant Qt warnings which were printed on macOS are now hidden.
|
|
- Better support for Qt 5.5 and Python 3.5.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fixed a bug where cookies were saved despite qutebrowser being started in
|
|
private browsing mode.
|
|
- The local socket used for inter-process communication (opening new instances)
|
|
is now ensured to only be accessible by the user on all operating systems.
|
|
- Various corner cases for inter-process communication issues got fixed.
|
|
- `link_pyqt.py` now should work better on untested distributions.
|
|
- Fixed various corner-cases with crashes when reading invalid config values
|
|
and the history file.
|
|
- Fixed various corner-cases when setting text via an external editor.
|
|
- Fixed potential crash when hinting a text field.
|
|
- Fixed entering of insert mode when certain disabled text fields were clicked.
|
|
- Fixed a crash when using `:set` with `-p` and `!` (invert value)
|
|
- Downloads with unknown size are now handled correctly.
|
|
- `:navigate increment/decrement` (`<Ctrl-A>`/`<Ctrl-X>`) now handles some
|
|
corner-cases better.
|
|
- Fixed a bug where the completion got affected by another window's completion
|
|
if it was open in both windows.
|
|
- Fixed a performance issue with large histories when opening previously
|
|
unvisited websites.
|
|
- The progress bar now doesn't cause the statusbar to change it's height
|
|
anymore.
|
|
- `~` is now always expanded when spawning a script.
|
|
- Fixed various corner cases when opening links in an existing instance.
|
|
- Fixed a race-condition causing an exception when starting qutebrowser.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `tabs -> indicator-space` setting got removed as the new padding settings
|
|
should be used instead.
|
|
- The `tabs -> hide-always` and `tabs -> hide-auto` settings got merged into
|
|
the new `tabs -> show` setting.
|
|
|
|
[[v0.3.0]]
|
|
v0.3.0 (2015-06-28)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- New commands `:message-info`, `:message-error` and `:message-warning` to show messages in the statusbar, e.g. from a userscript.
|
|
- New command `:scroll-px` which replaces `:scroll` for pixel-exact scrolling.
|
|
- New command `:jseval` to run a javascript snippet on the current page.
|
|
- New (hidden) command `:follow-selected` (bound to `Enter`/`Ctrl-Enter` by default) to follow the link which is currently selected (e.g. after searching via `/`).
|
|
- New (hidden) command `:clear-keychain` to clear a partially entered keychain (bound to `<Escape>` by default, in addition to clearing search).
|
|
- New setting `ui -> smooth-scrolling`.
|
|
- New setting `content -> webgl` to enable/disable https://www.khronos.org/webgl/[WebGL].
|
|
- New setting `content -> css-regions` to enable/disable support for https://dev.w3.org/csswg/css-regions/[CSS Regions].
|
|
- New setting `content -> hyperlink-auditing` to enable/disable support for https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing[hyperlink auditing].
|
|
- New setting `tabs -> mousewheel-tab-switching` to control mousewheel behavior on the tab bar.
|
|
- New arguments `--datadir` and `--cachedir` to set the data/cache location.
|
|
- New arguments `--basedir` and `--temp-basedir` (intended for debugging) to set a different base directory for all data, which allows multiple invocations.
|
|
- New argument `--no-err-windows` to suppress all error windows.
|
|
- New arguments `--top-navigate` and `--bottom-navigate` (`-t`/`-b`) for `:scroll-page` to specify a navigation action (e.g. automatically go to the next page when arriving at the bottom).
|
|
- New flag `-d`/`--detach` for `:spawn` to detach the spawned process so it's not closed when qutebrowser is.
|
|
- New flag `-v`/`--verbose` for `:spawn` to print information when the process started/exited successfully.
|
|
- Many new color settings (foreground setting for every background setting).
|
|
- New setting `ui -> modal-js-dialog` to use the standard modal dialogs for javascript questions instead of using the statusbar.
|
|
- New setting `colors -> webpage.bg` to set the background color to use for websites which don't set one.
|
|
- New setting `completion -> auto-open` to only open the completion when tab is pressed (if set to false).
|
|
- New visual/caret mode (bound to `v`) to select text by keyboard.
|
|
- There are now some example userscripts in `misc/userscripts`.
|
|
- Support for Qt 5.5 and tox 2.0
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- *Breaking change for userscripts:* `QUTE_HTML` and `QUTE_TEXT` for userscripts now don't store the contents directly, and instead contain a filename.
|
|
- The `content -> geolocation` and `notifications` settings now support a `true` value to always allow those. However, this is *not recommended*.
|
|
- New bindings `<Ctrl-R>` (rapid), `<Ctrl-F>` (foreground) and `<Ctrl-B>` (background) to switch hint modes while hinting.
|
|
- `<Ctrl-M>` and numpad-enter are now bound by default for bindings where `<Return>` was bound.
|
|
- `:hint tab` and `F` now respect the `background-tabs` setting. To enforce a foreground tab (what `F` did before), use `:hint tab-fg` or `;f`.
|
|
- `:scroll` now takes a direction argument (`up`/`down`/`left`/`right`/`top`/`bottom`/`page-up`/`page-down`) instead of two pixel arguments (`dx`/`dy`). The old form still works but is deprecated.
|
|
- The `ui -> user-stylesheet` setting now also takes file paths relative to the config directory.
|
|
- The `content -> cookies-accept` setting now has new `no-3rdparty` (default) and `no-unknown-3rdparty` values to block third-party cookies. The `default` value got renamed to `all`.
|
|
- Improved startup time by reading the webpage history while qutebrowser is open.
|
|
- The way `:spawn` splits its commandline has been changed slightly to allow commands with flags.
|
|
- The default for the `new-instance-open-target` setting has been changed to `tab`.
|
|
- Sessions now store zoom/scroll-position separately for each entry.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- `:scroll` with two pixel-arguments is now deprecated - `:scroll-px` should be used instead.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- The `--no-crash-dialog` argument which was intended for debugging only was removed as it's replaced by `--no-err-windows` which suppresses all error windows.
|
|
- Support for Qt installations without SSL support was dropped.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Scrolling should now work more reliably on some pages where arrow keys worked but `hjkl` didn't.
|
|
- Small improvements when checking if an input is a URL or not.
|
|
- Fixed wrong cursor position when completing the first item in the completion.
|
|
- Fixed exception when using search engines with {foo} in their name.
|
|
- Fixed a bug where the same title was shown for all tabs on some systems.
|
|
- Don't install the scripts package when installing qutebrowser.
|
|
- Fixed searching for terms starting with a hyphen (e.g. `/-foo`)
|
|
- Proxy authentication credentials are now remembered between different tabs.
|
|
- Fixed updating of the tab title on pages without title.
|
|
- Fixed AssertionError when closing many windows quickly.
|
|
- Various fixes for deprecated key bindings and auto-migrations.
|
|
- Workaround for qutebrowser not starting when there are NUL-bytes in the history (because of a currently unknown bug).
|
|
- Fixed handling of keybindings containing Ctrl/Meta on macOS.
|
|
- Fixed crash when downloading a URL without filename (e.g. magnet links) via "Save as...".
|
|
- Fixed exception when starting qutebrowser with `:set` as argument.
|
|
- Fixed horrible completion performance when the `shrink` option was set.
|
|
- Sessions now store zoom/scroll-position correctly.
|
|
|
|
[[v0.2.1]]
|
|
v0.2.1 (2015-04-19)
|
|
-------------------
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Added missing manpage (doc/qutebrowser.1.asciidoc) to archive.
|
|
|
|
[[v0.2.0]]
|
|
v0.2.0 (2015-04-19)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
- Session support
|
|
* new command `:session-load` to load a session.
|
|
* new command `:session-save` to save a session.
|
|
* new command `:session-delete` to delete a session.
|
|
* new setting `general -> save-session` to always save the session on quit.
|
|
* new setting `general -> session-default-name` to configure the session name to use if none is given.
|
|
* new argument `-r`/`--restore` to specify a session to load.
|
|
* new argument `-R`/`--override-restore` to not load a session even if one was saved.
|
|
- New commands to manage downloads:
|
|
* `:download` to download a URL or the current page.
|
|
* `:download-cancel` to cancel a download.
|
|
* `:download-delete` to delete a download from disk.
|
|
* `:download-open` to open a finished download.
|
|
* `:download-remove` to remove a download from the list. `:download-remove --all` or the new 'cd' keybinding can be used to clear all finished downloads.
|
|
- History completion
|
|
* New option `completion -> timestamp-format` to set the format used to display the history timestamps.
|
|
* New option `completion -> web-history-max-items` to configure how many history items to show in the completion.
|
|
* The option `completion -> history-length` for the command history got renamed to `cmd-history-max-items`.
|
|
- Better save logic for the config/state:
|
|
* Only save files if modified (e.g. don't overwrite the config if it was edited outside of qutebrowser and nothing was changed in qutebrowser).
|
|
* Save things (cookies, config, quickmarks, ...) periodically all 15 seconds (time can be changed with the `general -> auto-save-interval` option).
|
|
- Opera-like mouse rocker gestures
|
|
* New option `input -> rocker-gestures`. When turned on, the history can be navigated back/forward by holding a mouse button and pressing the other one.
|
|
- New `-f` option for `:reload` to reload and bypass the cache.
|
|
- Pass more information (`QUTE_MODE`, `QUTE_SELECTED_TEXT`, `QUTE_SELECTED_HTML`, `QUTE_USER_AGENT`, `QUTE_HTML`, `QUTE_TEXT`) to userscripts.
|
|
- New `--userscript` option to `:spawn` (which deprecates `:run-userscript`).
|
|
- Ability to toggle a value to `:set` by appending a `!` to the value.
|
|
- New options to hide the tab-/statusbar:
|
|
* `tabs -> hide-always` for the tabbar
|
|
* `ui -> hide-statusbar` for the statusbar
|
|
- New options to configure how the tab/window titles should look:
|
|
* `tabs -> title-format` for the tabbar
|
|
* `ui -> window-title-format` for the window title
|
|
- HTML5 Geolocation/Notification support:
|
|
* New option `content -> geolocation` to permanently turn the geolocation off.
|
|
* New option `content -> notifications` to permanently turn notifications off.
|
|
- New options to disable javascript prompts/alerts:
|
|
* `content -> ignore-javascript-prompt` to turn off prompts.
|
|
* `content -> ignore-javascript-alerts` to turn off alerts.
|
|
- Two new options to customize the behavior of hints:
|
|
* `hints -> min-chars` to set minimum number of chars in hints.
|
|
* `hints -> scatter` which when turned off distributes the hints sequentially (like dwb) instead of scattering their positions (like Vimium).
|
|
- Make it possible to use `:open -[twb]` without url.
|
|
* New option `general -> default-page` to set the page to be opened when doing that.
|
|
- New `input -> partial-timeout` option to clear partial keystrings.
|
|
- New option `completion -> download-path-suggestion` to configure what to show in the completion for downloads.
|
|
- Queue messages shown in unfocused windows and show them when the window is focused.
|
|
* New option `ui -> message-unfocused` to disable this behavior.
|
|
- New `--relaxed-config` argument which ignores unknown options.
|
|
- New `:tab-detach` command to open the current tab in a new window.
|
|
- Zooming via Ctrl-Mousewheel.
|
|
* New option `input -> mouse-zoom-divider` to control how much the page is zoomed when rotating the wheel.
|
|
- New option (`content -> host-blocking-enabled`) to enable/disable host blocking.
|
|
- New values `tab-bg`/`tab-bg-silent` for `new-instance-open-target` to open a background tab.
|
|
- New `ui -> downloads-position` setting to move the downloads to the bottom.
|
|
- New `ui -> hide-mouse-cursor` option to hide the mouse cursor inside qutebrowser.
|
|
- New argument `-s` for qutebrowser to set a temporary config option.
|
|
- New argument `-p` for the `:set` command to print the new value.
|
|
- New `--rapid` option to `:hint`. The `rapid`/`rapid-win` targets are now deprecated, and `--rapid` can be used as well with the targets run/hover/userscript/spawn as well.
|
|
- New `-f` argument to `:bind` to overwrite the old binding.
|
|
- New `--qt-name` argument to qutebrowser which is passed to Qt to set `WM_CLASS`.
|
|
- Alternating row colors in completion. This adds a new `colors -> completion.alternate-bg` option.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
- Ignore quotes with maxsplit-commands (`:open`, `:quickmark-load`, etc.) and don't quote arguments for those commands in the completions. This also means some commands needed adjustments:
|
|
* Clear search when `:search` without arguments is given. (`:search ""` will now search for the literal text `""`)
|
|
* Add `-s`/`--space` argument to `:set-cmd-text` (as `:set-cmd-text "foo "` will now set the literal text `"foo "`)
|
|
- Ignore `;;` for splitting with some commands like `:bind`.
|
|
- Add unbound (new) default keybindings to config. This also adds a new `<unbound>` special command.
|
|
* To unbind a command keybinding without binding it to a new key, you now have to bind it to `<unbound>` or it'll be re-added automatically.
|
|
- If an SSL error is raised multiple times with the same error/certificate/host/scheme/port, the user is only asked once.
|
|
- Jump to last instead of first item when pressing Shift-Tab the first time in the completion.
|
|
- Add a fullscreen keybinding.
|
|
- Add a `:search` command in addition to `/foo` so it's more visible and can be used from scripts.
|
|
- Various improvements to documentation, logging, and the crash reporter.
|
|
- Expand `~` to the users home directory with `:run-userscript`.
|
|
- Improve the userscript runner on Linux/macOS by using `QSocketNotifier`.
|
|
- Add luakit-like `gt`/`gT` keybindings to cycle through tabs.
|
|
- Show default value for config values in the completion.
|
|
- Clone tab icon, tab text and zoom level when cloning tabs.
|
|
- Don't open relative file paths with `:open`, only with commandline arguments.
|
|
- Expand environment variables in config settings which take a file path.
|
|
- Add a list of common user agents to the user agent setting completion.
|
|
- Move cursor to end of textboxes when hinting.
|
|
- Don't start searches on invalid URLs for quickmarks/startpage.
|
|
- Various performance improvements for the completion.
|
|
- Always open URLs given as argument in the foreground.
|
|
- Improve various error messages.
|
|
- Add `startpage`/`default-page` values to `tabs -> last-close`.
|
|
- Various improvements to `:restart` - it should be more robust now and uses sessions so all state (focused tab, scroll position, etc.) gets remembered.
|
|
- Add tab index display to the statusbar.
|
|
- Keep progress bar height fixed when the statusbar is multiline.
|
|
- Many improvements to tests and related infrastructure:
|
|
* `init_venv.py` and `run_checks.py` have been replaced by https://tox.readthedocs.org/[tox]. Install tox and run `tox -e mkvenv` instead.
|
|
* The tests now use https://pytest.org/[pytest]
|
|
* Many new tests added
|
|
* Mac Mini buildbot to run the tests on macOS.
|
|
* Coverage recording via https://coverage.readthedocs.io/[coverage.py].
|
|
* New `--pdb-postmortem argument` to drop into the pdb debugger on exceptions.
|
|
* Use https://github.com/ionelmc/python-hunter[hunter] for line tracing instead of a selfmade solution.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
- The `:run-userscript` command - use `:spawn --userscript` instead.
|
|
- The `rapid` and `rapid-win` targets for `:hint` - use the `--rapid` argument to `:hint` instead.
|
|
- The `:cancel-download` command - use `:download-cancel` instead.
|
|
- The `:download-page` command - use `:download` instead.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
- `init_venv.py` and `run_checks.py` have been replaced by https://tox.readthedocs.org/[tox]. Install tox and run `tox -e mkvenv` instead..
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
- Fix for cache never being used.
|
|
- Fixed handling of key release events (e.g. for javascript) when holding a key and pressing a second one.
|
|
- Fix handling of commands using `;;` at various places (key config, command parser, `:bind`)
|
|
- Fix splitting of flags with arguments (`:bind -m`/`--mode`).
|
|
- Fix bindings of special keys with lower-case modifiers (e.g. `<ctrl-x>`)
|
|
- Fix for weird search highlights when changing tabs while search is active.
|
|
- Fix starting with `-c ""`.
|
|
- Fix removing of partial downloads when a download is cancelled via context menu.
|
|
- Fix retrying of downloads which were started in a now closed tab.
|
|
- Highlight text case-insensitively in completion.
|
|
- Scroll completion to top when showing it.
|
|
- Handle unencodable file paths in config types correctly.
|
|
- Fix for crash when executing a delayed command (because of a shadowed keybinding) and then unfocusing the window.
|
|
- Fix for crash when hinting on a page which doesn't have a URL yet.
|
|
- Fix exception when using `:set-cmd-text` with an empty argument.
|
|
- Add a timeout to pastebin HTTP replies.
|
|
- Various other fixes for small/rare bugs.
|
|
|
|
[[v0.1.4]]
|
|
v0.1.4 (2015-03-19)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* The Windows builds come with Qt 5.4.1 which has some https://listi.jpberlin.de/pipermail/qutebrowser/2015-March/000054.html[related bugfixes].
|
|
* Improvements to CPU usage when idle.
|
|
* Ensure there's no size for `font-family` settings.
|
|
* Handle URLs with double-colon as search strings.
|
|
* Adjust prompt size hint based on content.
|
|
* Refactor websettings and save/restore defaults.
|
|
* Various small improvements to logging.
|
|
* Various improvements for hinting.
|
|
* Improve parsing of `faulthandler` logs.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
* Remove default search engines.
|
|
* Remove debug console completing completely.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
* Ignore RuntimeError in `mouserelease_insertmode`.
|
|
* Hide Qt warning when aborting download reply.
|
|
* Hide "Error while shutting down tabs" message.
|
|
* Clear open target in `acceptNavigationRequest`.
|
|
* Fix handling of signals with deleted tabs.
|
|
* Restore `sys.std*` in `utils.fake_io` on exceptions.
|
|
* Allow font names with integers in them.
|
|
* Fix `QIODevice` warnings when closing tabs.
|
|
* Set the `QSettings` path to a config-subdirectory.
|
|
* Add workaround for adblock-message without window.
|
|
* Fix searching for terms starting with a slash.
|
|
* Ignore tab key presses if they'd switch focus.
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
* Stop the icon database from being created when private-browsing is set to true.
|
|
* Disable insecure SSL ciphers.
|
|
|
|
[[v0.1.3]]
|
|
v0.1.3 (2015-02-12)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* Various small logging improvements.
|
|
* Don't open relative files in `fuzzy_url` with `:open`
|
|
* Various crashdialog improvements.
|
|
* Hide adblocked iframes.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
* Handle shutdown of page with prompt correctly.
|
|
* fuzzy_url: handle invalid URLs with autosearch off
|
|
* Handle explicit searches with `auto-search=false`.
|
|
* Abort download override question on error/cancel.
|
|
* Set a higher z-index for hint labels.
|
|
* Close contextmenu when closing tab to avoid crash.
|
|
* Fix statusbar quickly popping up as window.
|
|
* Clean up `NetworkManager` after downloads finished.
|
|
* Fix restoring of cmd widget after an error.
|
|
* Fix retrying of downloads after the tab is closed.
|
|
* Fix `check_libraries()` output for Arch Linux.
|
|
* Handle all `IPCErrors` properly.
|
|
* Handle another `webelem.IsNullError` with hints.
|
|
* Handle `UnicodeDecodeError` when reading configs.
|
|
|
|
Security
|
|
~~~~~~~~
|
|
|
|
* Fix for HTTP passwords accidentally being written to debug log.
|
|
|
|
[[v0.1.2]]
|
|
v0.1.2 (2015-01-09)
|
|
-------------------
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* Uncheck sending of debug log by default when private browsing is on.
|
|
* Add SSL info to version info.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
* Remove hosts-file.net from blocker default lists.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
* Fix rare exception when a key is pressed shortly after opening a window
|
|
* Fix exception with certain invalid URLs like `http:foo:0`
|
|
* Work around Qt bug which renders checkboxes on macOS unusable
|
|
* Fix exception when a local files can't be read in `:adblock-update`
|
|
* Hide 2 more Qt warnings.
|
|
* Add `!important` to hint CSS so websites don't override the hint look
|
|
* Make `init_venv.py` work with multiple sip `.so` files.
|
|
* Fix splitting with certain commands with an empty argument
|
|
* Fix uppercase hints.
|
|
* Fix segfaults if another page is loaded while a prompt is open
|
|
* Fix exception with invalid `ShellCommand` config values.
|
|
* Replace unencodable chars
|
|
* Fix user-stylesheet setting with an empty value.
|
|
|
|
|
|
[[v0.1.1]]
|
|
v0.1.1 (2014-12-28)
|
|
-------------------
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* Set window icon and add a qutebrowser.ico file for Windows.
|
|
* Ask the user when downloading to an already existing file.
|
|
* Add a `network -> proxy-dns-requests` option.
|
|
* Add "Remove finished" to the download context menu
|
|
* Open and remove clicked downloads.
|
|
|
|
Changes
|
|
~~~~~~~
|
|
|
|
* Windows releases are now built with Qt 5.4 which brings many improvements and bugfixes.
|
|
* Add a troubleshooting section to the FAQ.
|
|
* Display IPC errors to the user.
|
|
* Rewrite keymode handling to use only one mode which also fixes various bugs.
|
|
* Save version to state config.
|
|
* Set zoom to default instead of 100% with `:zoom`/`=`.
|
|
* Adjust page zoom if default zoom changed.
|
|
* Force tabs to be focused on `:undo`.
|
|
* Replace manual installation instructions on macOS with homebrew/macports.
|
|
* Allow min-/maximizing of print preview on Windows.
|
|
* Various documentation improvements.
|
|
* Various other small improvements and cleanups.
|
|
|
|
Removed
|
|
~~~~~~~
|
|
|
|
* Clean up and temporarily disable alias completion.
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
* Fix setting of `QWebSettings` (e.g. web fonts) with empty strings.
|
|
* Re-focus web view when leaving prompt/yesno mode.
|
|
* Handle `:restart` correctly with Python eggs.
|
|
* Handle an invalid cwd properly.
|
|
* Fix popping of a dead question in prompter.
|
|
* Fix `AttributeError` on config changes on Ubuntu.
|
|
* Don't treat things like "31c3" as IP address.
|
|
* Handle category being `None` in Qt message handler.
|
|
* Force-include pygments in `freeze.py`.
|
|
* Fix scroll percentage not updating on some pages like twitter.
|
|
* Encode `Content-Disposition` header name properly.
|
|
* Fix item sorting in `NeighborList`.
|
|
* Handle data being `None` in download read timer.
|
|
* Stop download read timer when reply has finished.
|
|
* Fix handling of small/big `fuzzyval`'s in `NeighborList`.
|
|
* Fix crashes when entering invalid values in `qute:settings`.
|
|
* Abort questions in `NetworkManager` when destroyed.
|
|
* Fix height calculation of download view.
|
|
* Always auto-remove adblock downloads when done.
|
|
* Ensure the docs get included in `freeze.py`.
|
|
* Fix crash with `:zoom`.
|
|
|
|
[[v0.1]]
|
|
v0.1 (2014-12-14)
|
|
-----------------
|
|
|
|
Initial release.
|