Removed
* Support for Python 3.8 is dropped, and Python 3.9 is now
required.
Changed
* Based on Chromium 122.0.6261.171 with security patches up to
131.0.6778.70
* The .desktop file now also declares qutebrowser as a valid
viewer for image/webp.
* 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.
* 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.
* 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.
* Added a workaround for a bogus QtWebEngine warning about
missing spell checking dictionaries.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=140
* Fixed: Updated the workaround for Google sign-in issues.
- Updates from version 3.3.0:
Added
* Added the qt.workarounds.disable_hangouts_extension setting,
for disabling the Google Hangouts extension built into
Chromium/QtWebEngine.
Removed
* 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.
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
* 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.
Fixed
* A minor memory leak of QItemSelectionModels triggered by
closing the completion dialog has been resolved.
* The link to the chrome URL match pattern documentation in our
settings docs now loads a live page again.
* A rare crash when on Qt 6, a renderer process terminates with
an unknown termination reason.
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=138
- Update to version 3.2.0:
Added:
* When qutebrowser receives a SIGHUP it will now reload any
config.py file in use (same as the :config-source command does)
gh#qutebrowser/qutebrowser#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.
gh#qutebrowser/qutebrowser#7187
Changed:
* With QtWebEngine 6.7+, the colors.webpage.darkmode.enabled
setting can now be changed at runtime and supports URL patterns
gh#qutebrowser/qutebrowser#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).
gh#qutebrowser/qutebrowser#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.
gh#qutebrowser/qutebrowser#8162
Fixed:
* input.insert_mode.auto_load sometimes not triggering due to
a race condition.
gh#qutebrowser/qutebrowser#8145
* Worked around qutebrowser quitting when closing a KDE file
dialog due to a Qt bug.
gh#qutebrowser/qutebrowser#8143
OBS-URL: https://build.opensuse.org/request/show/1178405
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=65
Added:
* When qutebrowser receives a SIGHUP it will now reload any
config.py file in use (same as the :config-source command does)
gh#qutebrowser/qutebrowser#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.
gh#qutebrowser/qutebrowser#7187
Changed:
* With QtWebEngine 6.7+, the colors.webpage.darkmode.enabled
setting can now be changed at runtime and supports URL patterns
gh#qutebrowser/qutebrowser#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).
gh#qutebrowser/qutebrowser#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.
gh#qutebrowser/qutebrowser#8162
Fixed:
* input.insert_mode.auto_load sometimes not triggering due to
a race condition.
gh#qutebrowser/qutebrowser#8145
* Worked around qutebrowser quitting when closing a KDE file
dialog due to a Qt bug.
gh#qutebrowser/qutebrowser#8143
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=134
- Update to version 3.1.0:
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:
* 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
OBS-URL: https://build.opensuse.org/request/show/1132497
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=64
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:
* 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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=132
- Update to version 3.0.2:
* 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
CVE-2023-4863, a critical heap buffer overflow in WebP, for
which "Google is aware that an exploit exists in the wild."
- Update to version 3.0.1:
* 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
OBS-URL: https://build.opensuse.org/request/show/1119102
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=130
- Update to version 3.0.0
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.
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
OBS-URL: https://build.opensuse.org/request/show/1104940
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/qutebrowser?expand=0&rev=62
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.
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
OBS-URL: https://build.opensuse.org/package/show/network/qutebrowser?expand=0&rev=128
- 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