- Update to version 2.5.3
Added
* New array_at quirk, polyfilling the 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
OBS-URL: https://build.opensuse.org/request/show/1066958
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=60
Added
* New array_at quirk, polyfilling the 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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=124
- Update to version 2.5.2
Fixed
* 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.
OBS-URL: https://build.opensuse.org/request/show/987485
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=59
Fixed
* 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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=122
- Update to version 2.5.1
Fixed
* The qute-pass userscript is marked as executable again.
* 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 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.
OBS-URL: https://build.opensuse.org/request/show/982814
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=58
Fixed
* The qute-pass userscript is marked as executable again.
* 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 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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=120
- Update to version 2.5.0
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.
OBS-URL: https://build.opensuse.org/request/show/967163
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=57
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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=118
- Update to version 2.4.0
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
* Speculative fix for a crash when closing qutebrowser while a
systray notification is shown.
OBS-URL: https://build.opensuse.org/request/show/926836
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=56
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
* Speculative fix for a crash when closing qutebrowser while a
systray notification is shown.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=117
- Update to version 2.3.1
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.
OBS-URL: https://build.opensuse.org/request/show/909841
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=54
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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=115
- Update to version 2.3.0
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 when two Greasemonkey scripts have the same name
(usually happening because the same file is in both the data
and the config directory).
OBS-URL: https://build.opensuse.org/request/show/902869
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=53
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 when two Greasemonkey scripts have the same name
(usually happening because the same file is in both the data
and the config directory).
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=114
- Update to version 2.2.3
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.
OBS-URL: https://build.opensuse.org/request/show/897212
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=112
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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=110
- Enable test suite
- Update to version 2.2.0
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
OBS-URL: https://build.opensuse.org/request/show/886814
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=49
- Update to version 2.2.0
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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=106
- Update to version 2.1.0
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 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
OBS-URL: https://build.opensuse.org/request/show/878536
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=48
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 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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=104
Fixed
* 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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=103
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".
Note for openSUSE users: The adblock library has not been packaged
yet due to the difficulty of packaging its Rust dependencies.
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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=102
- Update to version 1.14.1
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.
Fixed
* Setting the content.headers.referer setting to same-domain (the
default) was supposed to truncate referers 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 referers. 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 tenative 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.
* 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 a
useful starting point with QtWebEngine.
* 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
OBS-URL: https://build.opensuse.org/request/show/853375
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=47
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.
Fixed
* Setting the content.headers.referer setting to same-domain (the
default) was supposed to truncate referers 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 referers. 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,
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=100
- Update to version 1.14.0
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
OBS-URL: https://build.opensuse.org/request/show/842006
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=45
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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=96
- Update to version 1.13.1
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).
* 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.
* Certain autoconfig.yml with an invalid structure could lead to
crashes, which are now fixed.
* 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.
OBS-URL: https://build.opensuse.org/request/show/821559
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=44
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).
* 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.
* Certain autoconfig.yml with an invalid structure could lead to
crashes, which are now fixed.
* 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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=94
- Update to version 1.13.0
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.
+ 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 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.
- Update to version 1.12.0
Removed
* 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
* The content.cookies.accept setting now accepts URL patterns.
* 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.
* 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.
- Update to version 1.11.1
* 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.
- Update to version 1.11.0
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.
* 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.
OBS-URL: https://build.opensuse.org/request/show/819086
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=43
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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=92
Removed
* 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
* The content.cookies.accept setting now accepts URL patterns.
* 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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=91
* 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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=90
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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=89
- Update to version 1.10.1
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 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.
OBS-URL: https://build.opensuse.org/request/show/774697
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=41
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 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.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=85