qutebrowser/qutebrowser.changes
Mia Herkt f9669f4eed - Update to version 3.4.0:
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
2024-12-25 05:17:47 +00:00

3964 lines
187 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-------------------------------------------------------------------
Sat Dec 14 22:31:06 UTC 2024 - Joshua Smith <smolsheep@opensuse.org>
- Update to version 3.4.0:
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 theres 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.
-------------------------------------------------------------------
Wed Oct 16 07:25:24 UTC 2024 - Joshua Smith <smolsheep@opensuse.org>
- Update to version 3.3.1:
* 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.
-------------------------------------------------------------------
Wed Jun 26 01:25:34 UTC 2024 - Joshua Smith <smolsheep@opensuse.org>
- Update to version 3.2.1:
Fixed
* When the selected Qt wrapper is unavailable, qutebrowser now
again shows a GUI error message instead of only an exception in
the terminal.
-------------------------------------------------------------------
Tue Jun 4 00:31:01 UTC 2024 - Mia Herkt <mia@0x0.st>
- 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
* Trying to use qutebrowser after its been deleted/moved on disk
(e.g. after a Python upgrade) should now not crash anymore.
* When the QtWebEngine resources dir couldnt be found,
qutebrowser now doesnt crash anymore (but QtWebEngine still
might).
* Fixed a rare crash in the completion widget when there was no
selection model when we went to clear that, probably when
leaving a mode.
gh#qutebrowser/qutebrowser#7901
* The latest PDF.js release (v4.2.67) is now supported when
backed by QtWebEngine 6.6+
gh#qutebrowser/qutebrowser#8170
-------------------------------------------------------------------
Mon Dec 11 13:29:26 UTC 2023 - Mia Herkt <mia@0x0.st>
- 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
still evident on Qt 6.6.0.
gh#qutebrowser/qutebrowser#7489
* The colors.webpage.darkmode.threshold.foreground setting
(.text in older versions) now works correctly with Qt 6.4+.
-------------------------------------------------------------------
Thu Oct 19 20:41:39 UTC 2023 - Michael Vetter <mvetter@suse.com>
- 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."
-------------------------------------------------------------------
Thu Oct 19 20:40:58 UTC 2023 - Michael Vetter <mvetter@suse.com>
- 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 its transparent.
* Due to a Qt bug, cloning/undoing a tab which was not fully loaded
caused qutebrowser to crash. This is now fixed via a workaround.
* Graphical glitches in Google sheets and PDF.js via a new setting
qt.workarounds.disable_accelerated_2d_canvas to disable the
accelerated 2D canvas feature which defaults to enabled on
affected Qt versions. (#7489)
* The download dialog should no longer freeze when browsing to
directories with many files. (#7925)
* The app.slack.com User-Agent quirk now targets chromium 112 on
Qt versions lower than 6.6.0 (previously it always targets
chromium 99) (#7951)
* Workaround a Qt issue causing jpeg files to not show up in the
upload file picker when it was filtering for image filetypes (#7866)
-------------------------------------------------------------------
Sun Aug 20 19:07:25 UTC 2023 - Mia Herkt <mia@0x0.st>
- 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
start page yet).
* New `content.javascript.log_message.levels` setting, allowing
to surface JS log messages as qutebrowser messages (rather than
only logging them). By default, errors in internal `qute:`
pages and userscripts are shown to the user.
* New `content.javascript.log_message.excludes` setting, which
allows to exclude certain messages from the
`content.javascript.log_message.levels` setting described
above.
* New `tabs.title.elide` setting to configure where text should
be elided (replaced by `…`) in tab titles when space runs out.
* New `**quiet` switch for `:back` and `:forward`, to suppress
the error message about already being at beginning/end of
history.
* New `qute-1pass` userscript using the 1password commandline to
fill passwords.
* New features in userscripts:
+ `qutedmenu` gained new `window` and `private` options.
+ `qute-keepassxc` now supports unlock-on-demand, multiple
account selection via rofi, and inserting TOTP-codes
(experimental).
+ `qute-pass` will now try looking up candidate pass entries
based on the calling tab's verbatim netloc (hostname
including port and username) if it can't find a match with
an earlier candidate (FQDN, IPv4 etc).
* New `qt.chromium.experimental_web_platform_features` setting,
which is enabled on Qt 5 by default, to maximize compatibility
with websites despite an aging Chromium backend.
* New `colors.webpage.darkmode.increase_text_contrast` setting
for Qt 6.3+
* New `fonts.tooltip`, `colors.tooltip.bg` and
`colors.tooltip.fg` settings.
* New `log-qt-events` debug flag for `-D`
* New `--all` flags for `:bookmark-del` and `:quickmark-del` to
delete all quickmarks/bookmarks.
Removed:
* Python 3.8.0 or newer is now required.
* Support for Qt/PyQt before 5.15.0 and QtWebEngine before 5.15.2
are now dropped, as older Qt versions are end-of-life upstream
since mid/late 2020 (5.13/5.14) and late 2021 (5.12 LTS).
* The `--enable-webengine-inspector` flag is now dropped. It used
to be ignored but still accepted, to allow doing a `:restart`
from versions older than v2.0.0. Thus, switching from v1.x.x
directly to v3.0.0 via `:restart` will not be possible.
Changed:
* The `content.javascript.can_access_clipboard` setting got
renamed to `content.javascript.clipboard` and now understands
three different values rather than being a boolean: `none`
(formerly `false`), `access` (formerly `true`) and
`access-paste` (additionally allows pasting content, needed for
websites like Photopea or GitHub Codespaces).
* The default `hints.selectors` now also match the `treeitem`
ARIA roles.
* The `:click-element` command now can also click elements based
on its ID (`id`), a CSS selector (`css`), a position
(`position`), or click the currently focused element
(`focused`).
* The `:click-element` command now can select the first found
element via `--select-first`.
* New `search.wrap_messages` setting, making it possible to
disable search wrapping messages.
* The `:session-save` command now has a new `--no-history` flag,
to exclude tab history.
* New widgets for `statusbar.widgets`:
+ `clock`, showing the current time
+ `search_match`, showing the current match and total count
when finding text on a page
* Messages shown by qutebrowser now don't automatically get
interpreted as rich text anymore. Thus, e.g.
`:message-info <h1>test` now shows the given text. To show rich
text with `:message-*` commands, use their new `--rich` flag.
Note this is NOT a security issue, as only a small subset of
HTML is interpreted as rich text by Qt, independently from the
website.
* Improved output when loading Greasemonkey scripts.
* The "... called unimplemented GM_..." messages are now logged
as info JS messages instead of errors.
* For QtNetwork downloads (e.g. `:adblock-update`), various
changes were done for how redirects work:
* Insecure redirects (HTTPS -> HTTP) now fail the download.
* 20 redirects are now allowed before the download fails rather
than only 10.
* A redirect to the same URL will now fail the download with
too many redirects instead of being ignored.
* When a download fails in a way it'd leave an empty file around,
the empty file is now deleted.
* With Qt 6, setting `content.headers.referer` to `always` will
act as if it was set to `same*domain`. The documentation is now
updated to point that out.
* With QtWebEngine 5.15.5+, the load finished workaround was
dropped, which should make certain operations happen when the
page has started loading rather when it fully finished.
* When `QUTE_QTWEBENGINE_VERSION_OVERRIDE` is set, it now always
wins, no matter how the version would otherwise have been
determined. Note setting this value can break things (if set to
a wrong value), and usually isn't needed.
* When qutebrowser is run with an older QtWebEngine version as on
the previous launch, it now prints an error before starting
(which causes the underlying Chromium to remove all browsing
data such as cookies).
* The keys "<To Do List>" and "<Contrast adjust>" are now named
"<To-do list>" and "<Adjust contrast>", respectively.
* `:config*diff` now has an `--include-hidden` flag, which also
shows internally-set settings.
* Improved error messages when `:spawn` can't find an executable.
* When a process fails, the error message now suggests using
`:process PID` with the correct PID (rather than always showing
the latest process, which might not be the failing one)
* When a process got killed with `SIGTERM`, no error message is
now displayed anymore (unless started with `:spawn --verbose`).
* When a process got killed by a signal, the signal name is now
displayed in the message.
* The `js-string-replaceall` quirk is now removed from the
default `content.site_specific_quirks.skip`, so that
`String.replaceAll` is now polyfilled on QtWebEngine < 5.15.3,
hopefully improving website compaitibility.
* Hints are now displayed for elements setting an `aria-haspopup`
attribute.
* qutebrowser now uses SPDX license identiiers in its files.
Full support for the REUSE specification (license provided in a
machine-readable way for every single file) is not done yet,
but planned for a future release.
Fixed:
* When the devtools are clicked but
`input.insert_mode.auto_enter` is set to `false`, insert mode
now isn't entered anymore.
* The search wrapping messages are now correctly displayed in
(hopefully) all cases with QtWebEngine.
* When a message with the same text as a currently already
displayed one gets shown, qutebrowser used to only show one
message. This is now only done when the two messages are
completely equivalent (text, level, etc.) instead of doing so
when only the text matches.
* The `progress` and `backforward` statusbar widgets now stay
removed if you choose to remove them. Previously they would
appear again on navigation.
* Rare crash when running userscripts with crashed renderer
processes.
* Multiple rare crashes when quitting qutebrowser.
* ResourceWarning when using `:restart`.
* Crash when shutting down before fully initialized.
* Crash with some notification servers when the server is
quitting.
* Crash when using QtWebKit with PAC and the file has an invalid
encoding.
* Crash with the "tiramisu" notification server.
* Crash when the "herbe" notification presenter doesn't start
correctly.
* Crash when no notification server is installed/available.
* Warning with recent versions of the "deadd"
(aka "linux notification center") notification server.
* Crash when using `:print --pdf` with a directory where its
parent directory did not exist.
* The `PyQt{5,6}.sip` version is now shown correctly in the
`:version`/`--version` output. Previously that showed the
version from the standalone `sip` module which was only set
for PyQt5.
* When a `config.py` calls `.redirect()` via a request
interceptor (which is unsupported) and supplies an invalid
redirect target URL, an exception is now raised for the
`.redirect()` call instead of later inside qutebrowser.
* Crash when loading invalid history items from a session file.
-------------------------------------------------------------------
Sun May 14 09:09:07 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 2.5.4:
* Support SQLite with DQS (double quoted string) compile time
option turned off.
-------------------------------------------------------------------
Tue Feb 21 09:55:22 UTC 2023 - Mia Herkt <mia@0x0.st>
- 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
-------------------------------------------------------------------
Thu Jul 7 15:25:44 UTC 2022 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Wed Jun 15 13:47:47 UTC 2022 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Tue Apr 5 23:54:02 UTC 2022 - Mia Herkt <mia@0x0.st>
- 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.
* Using :tab-give or :tab-take on the last tab in a window now
always closes that window, no matter what tabs.last_close is
set to.
* Redesigned qute://settings (:set) page with buttons for options
with fixed values.
* The default hint.selectors now match more ARIA roles (tab,
checkbox, menuitem, menuitemcheckbox and menuitemradio).
* Using e.g. :bind --mode=passthrough now scrolls to the
passthrough section on the qute://bindings page.
* Clicking on a notification now tries to focus the tab where the
notification is coming from. Note this might not work properly
if there is more than one tab from the same host open.
* Improvements to userscripts:
+ qute-bitwarden understands a new
--password-prompt-invocation, which can be used to specify a
tool other than rofi to ask for a password.
+ cast now uses yt-dlp if available (falling back to youtube-dl
if not). It also lets users override the tool to use via a
QUTE_CAST_YTDL_PROGRAM environment variable.
+ qute-pass now understands a new --prefix argument if used in
gopass mode, which gets passed as subfolder prefix to gopass.
+ open_download now supports Flatpak by using its XDG Desktop
Portal.
+ open_download now waits for the exit status of xdg-open,
causing qutebrowser to report any issues with it.
+ The content.headers.custom setting now accepts empty strings
as values, resulting in an empty header being sent.
* Renamed settings:
+ qt.low_end_device_mode -> qt.chromium.low_end_device_mode
+ qt.process_model -> qt.chromium.process_model
* System-wide userscripts are now discovered from the correct
location when running via Flatpak (/app/share rather than
/usr/share).
* Filename prompts now don't display a .. entry in the list of
files anymore. To get back to the parent directory, either type
../ manually, or use the new :rl-filename-rubout command,
bound to <Ctrl-Shift-W> by default.
Added
* New input.match_counts option which allows to turn off count
matching for more emacs-like bindings.
* New {relative_index} field for tabs.title.format
(and .pinned_format) which shows relative tab numbers.
* New input.mode_override option which allows overriding the
current mode based on the new URL when navigating or switching
tabs.
* New qt.chromium.sandboxing setting which allows to disable
Chromium's sandboxing (mainly intended for development and
testing).
* New QUTE_TAB_INDEX variable for userscripts, containing the
index of the current tab.
* New editor.remove_file setting which can be set to False to
keep all temporary editor files after closing the external
editor.
* New :rl-rubout command replacing :rl-unix-word-rubout
(and optionally :rl-unix-filename-rubout), taking a delimiter
as argument.
* New :rl-filename-rubout command, using the OS path separator
and ignoring spaces. The command also gets shown in the
suggested commands for a download filename prompt now.
Fixed
* When search.incremental is disabled, searching using /text
followed by a backwards search via ?text (or vice-versa) now
correctly changes the search direction.
* Elements getting a hint due to a tabindex now are skipped if
it's set to -1, reducing some false-positives.
* The audible indicator ([A]) now uses a 2s cooldown when the
audio goes silent, equivalent with the behavior of older
QtWebEngine versions.
* With confirm_quit set to downloads, the confirmation dialog is
now only shown when closing the last window (rather than
closing any window, which would continue running that window's
downloads). Unfortunately, more issues with confirm_quit and
multiple windows remain.
* Crash when a previous crash-log file contains non-ASCII
characters (which should never happen unless it was edited
manually)
* Due to changes in Debian, an old workaround (for broken
QtWebEngine patching on Debian) caused the inferior qutebrowser
error page to be displayed, when Chromium's would have worked
fine. The workaround was now dropped.
* Crash when using <Ctrl-D> (:completion-item-del) in the
:tab-focus list, rather than :tab-select.
* Work around a Qt issue causing :spawn to run executables from
the current directory if no system-wide executable was found.
The underlying Qt bug is tracked as CVE-2022-25255, though the
impact with typical qutebrowser usage is low: Normally,
qutebrowser is run from a fixed location (usually the users
home directory), and :spawn is not typically used with
executables that don't exist. The main security impact of this
bug is in tools like text editors, which are often executed in
untrusted directories and might attempt to run auxiliary tools
automatically.
* When :rl-rubout or :rl-filename-rubout
(formerly :rl-unix-word-rubout and :rl-unix-filename-rubout)
were used on a string not starting with the given delimiter,
they failed to delete the first character, which is now fixed.
* Fixes in userscripts:
+ ripbang now works again (it got blocked due to a missing user
agent and used outdated qutebrowser commands before)
+ keepassxc now has a properly working --insecure flag
* Speculative fix for a qutebrowser crash when the notification
daemon crashes while showing the notification.
* Fix crash when using :screenshot with an invalid --rect
argument.
* Added a site-specific quirk to make cookie dialogs on
StackExchange pages (such as Stack Overflow) work on Qt 5.12.
-------------------------------------------------------------------
Thu Oct 21 19:58:09 UTC 2021 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Thu Sep 23 06:05:30 UTC 2021 - Mia Herkt <mia@0x0.st>
- Disable test suite. This is too non-deterministic and random
BDD tests will fail most of the time even though the program
behaves correctly in practice.
-------------------------------------------------------------------
Tue Aug 3 00:07:38 UTC 2021 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Mon Jun 28 15:54:56 UTC 2021 - Mia Herkt <mia@0x0.st>
- 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).
-------------------------------------------------------------------
Thu Jun 3 12:37:54 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- 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.
-------------------------------------------------------------------
Thu May 20 18:58:16 UTC 2021 - Mia Herkt <mia@0x0.st>
- Update to version 2.2.2
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.
-------------------------------------------------------------------
Sat May 8 15:49:14 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
- Update to version 2.2.1
* When an error occurs in a notification presenter, qutebrowser
now shows that error in the statusbar instead of just logging it
* New site-specific-quirk for Discord logging users out when using
vertical tabs
* Certain errors from notification daemons are now displayed
as non-fatal errors instead of qutebrowser crashing:
* With the legacy GNOME Flashback notification daemon, when
more than 20 notifications are currently shown.
* With the KDE Plasma notification daemon, when the same
notification is shown twice.
* Running :spawn -u -o broke in v2.2.0 and now works properly
again
* Fixes in userscripts:
* The qute-bitwarden userscript now still consumes returned
data if the Bitwarden CLI showed a warning but exited with
a successful exit code.
* The qute-pass userscript now doesn't try to match a username
with --password-only, and error messages with invalid
patterns are improved.
* The qute-pass userscript now avoids running pass twice
when --otp-only is used.
- SPEC file: Drop parts related to outdated openSUSE versions
-------------------------------------------------------------------
Mon Apr 19 22:31:55 UTC 2021 - Mia Herkt <mia@0x0.st>
- 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
ways to show web notifications:
+ auto (default): Automatically detect the best available
option
+ qt: Use Qt's built-in mechanism (like before this release)
+ libnotify: Use a libnotify-compatible notification server
(i.e. native notifications on Linux)
+ systray: Use a systray icon (very similar to qt but without
some of its drawbacks)
+ messages: Use qutebrowser messages
+ herbe: Use herbe
* New content.notifications.show_origin setting, which can be
used to decide for which notifications to show the origin
(the URL the notification was sent from).
Changed
* The content.ssl_strict setting got renamed to
content.tls.certificate_errors, with new values:
+ ask: Prompt on overridable certificate errors
(ssl_strict = 'ask')
+ ask-block-thirdparty: See below
+ block: Block the page load (ssl_strict = True)
+ load-insecurely: Load the page despite the error
(ssl_strict = False)
* The new content.tls.certificate_errors setting now also
understands the value ask-block-thirdparty, which asks for page
loads but automatically blocks resource loads on TLS errors.
This behavior is consistent with what other browsers do.
* The prompt text shown on certificate errors has been improved
to make it clearer what kind of error occurred exactly.
* The content.site_specific_quirks setting got renamed to
content.site_specific_quirks.enabled.
* The content.notifications option got renamed to
content.notifications.enabled.
* The completion now also shows bindings starting with
set-cmd-text in its third column, such as o for :open.
* When :spawn is used with the -m / --output-messages flag,
the output now appears live, while the process is running.
* When a shown message replaces an existing related one (e.g. for
zoom levels), the replacing now also works even if a different
message was shown in between.
* The .redirect(...) method on interceptors now supports an
ignore_unsupported=True argument which supresses exceptions if
a request could not be redirected. Note, however, that it is
still not public API.
* When the --config-py argument is used, no warning about a
missing config.load_autoconfig is shown anymore, as the
argument is typically used for temporarily testing a config.
* The internal _autosave session used for crash recovery is now
only saved once per minute, since saving it for every page load
is a noticable performance issue.
* The readability-js userscript now displays a small header with
page information.
* When an external file selector is used, some additional
validation is done on the picked files now, so that errors are
shown if e.g. a directory is selected when a file was expected.
* The default binding for T (:tab-focus) got changed so that it
fills the command line with :tab-focus if used without a count
(instead of being equivalent to :tab-next in that case).
* The :config-unset command now understands the --pattern (-u)
flag to unset options customized for a given URL pattern
(such as after answering a prompt with "always"/"never").
* The :config-unset command now shows an error when used on an
option which is valid, but was never customized.
* The statusbar.widgets setting now understands text:... entries
which allows adding a hard-coded text to the statusbar.
* The polyfill for String.replaceAll (required for Nextcloud
Calendar < 2.2.0 with QtWebEngine < 5.15.3) is now disabled by
default, as it's not fully compliant to the ECMAScript spec and
might cause issues on other websites. If you still need it
(e.g. if you're still on an old Nextcloud Calendar version),
remove js-string-replaceall from
content.site_specific_quirks.skip.
Fixed
* When an editor exits with a != 0 exit status, the temporary
editor file is now persisted. This already was the case when
the editor crashed.
* When a nonexistent file gets passed to --config-py, qutebrowser
now complains instead of silently not loading it.
* With some (rare) setups, opening the report dialog or using a
PAC proxy with QtWebKit could result in qutebrowser hanging due
to a PyQt bug. There's now a workaround which prevents the hang
* Certain version number formats in /etc/os-release caused
qutebrowser to crash. Those are now handled correctly.
Removed
* The qute://spawn-output page used by :spawn -o is now removed,
as it's replaced by the new qute://process pages.
- Changes in 2.1.1
Added
* Site-specific quirk for krunker.io, which shows a
"Socket Error" with qutebrowser's default Accept-Language
header. The workaround is equivalent to doing
:set -u matchmaker.krunker.io content.headers.accept_language "".
Changed
* Clicking the 'x' in the devtools window to hide it now also
leaves insert mode.
Fixed
* The workaround for black on (almost) black formula images in
dark mode now also works with Qt 5.12 and 5.13.
* When the metainfo in the completion database doesn't have the
expected structure, qutebrowser now tries to gracefully recover
from the situation instead of crashing.
* When qutebrowser displays an error during initialization,
opening a second instance would lead to a crash. Instead,
qutebrowser now ignores the attempt to open a new page as long
as it's not fully initialized yet.
* When the Brave adblock cache folder was unreadable,
qutebrowser crashed. It now displays an error instead.
* Fixes in the qute-pass userscript for gopass:
+ Generating OTP tokens now works correctly.
+ Storing the username as part of the secret broke in v2.0.0
and now works again.
* When using bindings.key_mappings to map a key to multiple other
keys, qutebrowser would crash. This is now handled correctly -
however, note that it's usually better to map keys to commands
instead.
* When a minimized window is selected via :tab-select, it's now
un-minimized properly.
* When a format string in the config (e.g. tabs.title_format)
used a value like {current_url.host} (instead of
{current_url:host}), qutebrowser would crash. It now correctly
reports an invalid config value instead.
* In rare circumstances, sending URLs/commands to existing
instances would result in a crash, which is now fixed.
* Running the testsuite should now fully work without internet
access again. The --asciidoc script for mkvenv.py broke with
v1.14.0. It now works correctly again.
-------------------------------------------------------------------
Fri Mar 12 11:12:54 UTC 2021 - Mia Herkt <mia@0x0.st>
- 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
binary. This should reduce issues with dark mode (and some
workarounds) not working when using differing versions of
QtWebEngine/PyQtWebEngine/Qt. This change also prepares
qutebrowser for QtWebEngine 5.15.3, which will get released
without an updated Qt.
* When doing :hint links yank --rapid, the messages shown now
replace each other, thus being less noisy.
* Newlines in JavaScript messages (confirm, prompt and alert) are
now preserved.
* Messages in prompts are now word-wrapped rather than displaying
them in one long line.
* If a command starts with space (e.g. : open ..., it's now not
saved to command history anymore (similar to how some shells
work).
* When a tab is pinned, running :open will now open a new tab
instead of displaying an error.
* The fileselect.*.command settings now support file selectors
writing the selected paths to stdout, which is used if no {}
placeholder is contained in the configured command.
* The --debug-flag argument now understands a new
log-sensitive-keys value which logs all keypresses (including
those in insert/passthrough/prompt/... mode) for debugging.
* The readability and readability-js userscripts now add a
qute-readability CSS class to the page, so that it can be
styled easily via a user stylesheet.
Fixed
* With QtWebEngine 5.15.3 and some locales, Chromium can't start
its subprocesses. As a result, qutebrowser only shows a blank
page and logs "Network service crashed, restarting service.".
This release adds a qt.workarounds.locale setting working
around the issue. It is disabled by default since distributions
shipping 5.15.3 will probably have a proper patch for it
backported very soon.
* The colors.webpage.preferred_color_scheme and
colors.webpage.darkmode.* settings now work correctly with
QtWebEngine 5.15.3.
* When dark mode settings were set, existing blink-features
arguments in qt.args (or --qt-flag) were overridden. They are
now combined properly. On QtWebEngine 5.15.2, auto detection
for the prefers-color-scheme media query is broken and always
returns no-preference, which was removed from the CSS WG
Specification. This release contains a workaround to always
return light instead (as per the spec).
* When an external file selector deletes the temporary file
(like nnn does when quitting the terminal), qutebrowser would
crash. It now displays an error instead. The same applies if
the temporary file is unreadable for any other reason.
* The quirk added for a missing String.replaceAll did not handle
special regexp characters correctly, thus breaking some sites.
It now handles them properly.
* The "try again" button on error pages now works correctly with
JavaScript disabled.
* If a GreaseMonkey script doesn't have a "@run-at" comment,
qutebrowser accidentally treated that as
"@run-at document-idle". However, other GreaseMonkey
implementations default to "@run-at document-end" instead,
which is what qutebrowser now does, too.
* The hist_importer.py script didn't work correctly after
qutebrowser v2.0.0 and resulted in a history database
qutebrowser couldn't read properly. It now works properly
again.
* With certain QtWebEngine versions (5.15.0 based on Chromium 80
and 5.15.3 based on Chromium 87), Chromium's dark mode doesn't
invert certain SVG images, even with
colors.wegpage.darkmode.policy.images set to smart.
Most notably, this causes formulae on Wikipedia to display
black on (almost) black. If content.site_specific_quirks is
enabled, qutebrowser now injects some CSS as a workaround,
which inverts all math formula images on Wikipedia
(and potentially other sites, if they use the same CSS class).
* When a hint label text started with an apostrophe, it would
show an escaped text until the hints first character has been
pressed. It now shows up correctly.
-------------------------------------------------------------------
Thu Feb 4 18:07:42 UTC 2021 - Mia Herkt <mia@0x0.st>
- Update to version 2.0.2
Fixed
* When right-clicking an empty part of the downloads bar,
qutebrowser v2.0.x would crash. This is now fixed.
* Setting content.cookies.store to false only worked properly
when this was done after qutebrowser was already started due to
a regression in v2.0.0. It now works as expected again.
* The changelog for v2.0.0 claimed that hints.leave_on_load was
set to true by default. However, the
input.insert_mode.leave_on_load setting was instead set to
true accidentally. This is now fixed by actually setting
hints.leave_on_load to true, and reversing the change to
input.insert_mode.leave_on_load so it is set to false by
default again.
* Site-specific quirk JavaScript files were loaded lazily rather
than preloaded at the start of qutebrowser, causing a crash
when e.g. switching between versions while qutebrowser is open.
Now they are preloaded at the start of qutebrowser again.
* The link to the keybinding cheatsheet on the internal :help
page wasn't displayed correctly. This is now fixed.
* When the completion rebuilding process was interrupted,
qutebrowser did not detect this condition on the next start,
thus resulting in a completion with inconsistent data. This is
now fixed, with another rebuild being forced with this update,
to ensure the data is consistent for all users.
* In certain scenarios, qutebrowser v2.0.x warned about
config.load_autoconfig(...) being missing when loading a
secondary config (e.g. via config.source(...)). It now only
shows those warnings for the main config.py file.
* The --enable-webengine-inspector flag is now accepted again,
however it's unused and undocumented. It purely exists to make
it possible to use :restart between pre-v2.0.x and v2.0.2+
versions.
* When hints.dictionary pointed to a file not encoded as UTF-8,
this resulted in a crash (also in versions before v2.0.0).
It now properly displays an error instead.
* When running qutebrowser with a single empty commandline
argument, such as done by open_url_in_instance.sh, this would
result in a partially initialized window. Interacting with that
window results in a crash (also in versions before v2.0.0).
Instead, the startpage is now shown properly.
-------------------------------------------------------------------
Sun Jan 31 23:14:05 UTC 2021 - Mia Herkt <mia@0x0.st>
- Update to version 2.0.1
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.
-------------------------------------------------------------------
Thu Jan 28 09:01:57 UTC 2021 - Mia Herkt <mia@0x0.st>
- Update to version 2.0.0
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
v2.1.0.
+ run-macro -> macro-run
+ record-macro -> macro-record
+ buffer -> tab-select
+ open-editor -> edit-text
+ toggle-selection -> selection-toggle
+ drop-selection -> selection-drop
+ reverse-selection -> selection-reverse
+ follow-selected -> selection-follow
+ follow-hint -> hint-follow
+ enter-mode -> mode-enter
+ leave-mode -> mode-leave
Added
* New settings for the ABP-based adblocker:
+ content.blocking.method to decide which blocker(s) should be
used.
+ content.blocking.adblock.lists to configure ABP-like lists to
use.
* New qt.environ setting which makes it easier to set/unset
environment variables for qutebrowser.
* New settings to use an external file picker (such as ranger or
vifm):
+ fileselect.handler (default or external)
+ fileselect.multiple_files.command
+ fileselect.single_file.command
* When QtWebEngine has been updated but PyQtWebEngine hasn't yet,
the dark mode settings might stop working. As a (currently
undocumented) escape hatch, this version adds a
QUTE_DARKMODE_VARIANT=qt_515_2 environment variable which can be
set to get the correct behavior in (transitive) situations like
this.
* New --desktop-file-name commandline argument, which can be used
to customize the desktop filename passed to Qt (which is used to
set the app_id on Wayland).
* The :open completion now also completes local file paths and
file:// URLs, via a new filesystem entry in
completion.open_categories. Also, a new completion.favorite_paths
setting was added which can be used to add paths to show when
:open is used without any input.
* New QUTE_VERSION variable for userscripts, which can be used to
read qutebrowser's version.
* New "Copy URL" entry in the context menu for downloads.
* New :bookmark-list command which lists all bookmarks/quickmarks.
The corresponding qute://bookmarks URL already existed since
v0.8.0, but it was never exposed as a command.
* New qt.workarounds.remove_service_workers setting which can be
used to remove the "Service Workers" directory on every start.
Usage of this option is generally discouraged, except in
situations where the underlying QtWebEngine bug is a known cause
for crashes.
* Changelogs are now shown after qutebrowser was upgraded.
By default, the changelog is only shown after minor upgrades
(feature releases) but not patch releases. This can be adjusted
(or disabled entirely) via a new changelog_after_upgrade setting.
* New userscripts:
+ kodi to play videos in Kodi
+ qr to generate a QR code of the current URL
+ add-nextcloud-bookmarks to create bookmarks in Nextcloud's
Bookmarks app
+ add-nextcloud-cookbook to add recipes to Nextcloud's Cookbook
app
Changed
* config.py files now are required to have either
config.load_autoconfig(False) (don't load autoconfig.yml) or
config.load_autoconfig() (do load autoconfig.yml) in them.
* Various host-blocking settings have been renamed to accomodate
the new ABP-like adblocker:
+ content.host_blocking.enabled -> content.blocking.enabled
(controlling both blockers)
+ content.host_blocking.whitelist -> content.blocking.whitelist
(controlling both blockers)
+ content.host_blocking.lists -> content.blocking.hosts.lists
* Changes to default settings:
+ tabs.background is now true by default, so that new tabs get
opened in the background.
+ input.partial_timeout is now set to 0 by default, so that
partially typed key strings are never cleared.
+ hints.leave_on_load is now false by default, so that hint mode
doesn't get left when a page finishes loading. This can lead to
stale hints persisting in rare circumstances, but is better
than leaving hint mode when the user entered it before loading
was completed.
+ The default for tabs.width (tab bar width if vertical) is now
15% of the window width rather than 20%.
+ The default bindings for moving tabs
(tab-move - and tab-move +) were changed from gl and gr to gK
and gJ, to be consistent with the tab switching bindings.
+ The text color for warning messages is now black instead of
white, for increased contrast and thus readability.
+ The default timeout for messages is now raised from 2s to 3s.
* On the first start, the history completion database is
regenerated to remove a few problematic entries (such as long
qute://pdfjs URLs). This might take a couple of minutes, but is
a one-time operation. This should result in a performance
improvement for the completion for affected users.
* qutebrowser now shows an error if its history database version is
newer than expected. This currently should never happen, but
allows for potentially backwards-incompatible changes in future
versions.
* At least Python 3.6.1 is now required to run qutebrowser, support
for Python 3.5 (and 3.6.0) is dropped. Note that Python 3.5 is
no longer supported upstream since September 2020.
* At least Qt/PyQt 5.12 is now required to run qutebrowser, support
for 5.7 to 5.11 (inclusive) is dropped.
* New optional dependency on the Python adblock library (see above
for details).
* The (formerly optional) cssutils dependency is now removed.
It was only needed for improved behavior in corner cases when
using :download --mhtml with the (non-default) QtWebKit backend,
and as such it's unlikely anyone is still relying on it.
The cssutils project is also dead upstream, with its repository
being gone after Bitbucket removed Mercurial support.
* The (formerly required) pygments dependency is now optional.
It is only used when using :view-source with QtWebKit, or when
forcing it via :view-source --pygments on QtWebEngine. If it is
unavailable, an unhighlighted fallback version of the page's
source is shown.
* The former runtime dependency on the pkg_resources module (part
of the setuptools project) got dropped. Note that setuptools is
still required to run setup.py.
* A new dependency on the importlib_resources module got introduced
for Python versions up to and including 3.8. Note that the stdlib
importlib.resources module for Python 3.7 and 3.8 is missing the
needed APIs, thus requiring the backports for those versions as
well.
* The former dependency on the attrs/attr package is now dropped in
favour of dataclasses in the Python standard library. On Python
3.6, a new dependency on the dataclasses backport is now
required.
* The former dependency on the pypeg2 package is now dropped. This
might cause some changes for certain corner-cases for suggested
filenames when downloading files with the QtWebKit backend.
* The colors.webpage.darkmode.* settings are now also supported
with older Qt versions (Qt 5.12 and 5.13) rather than just with
Qt 5.14 and above.
* For regexes in the config (hints.{prev,next}_regexes), certain
patterns which will change meanings in future Python versions are
now disallowed. This is the case for character sets starting with
a literal [ or containing literal character sequences --, &&, ~~,
or ||. To avoid a warning, remove the duplicate characters or
escape them with a backslash.
* If prompt(..., "default") is used via JS, the default text is now
pre-selected in the prompt shown by qutebrowser.
* URLs such as ::1/foo are now handled as a search term or local
file rather than IPv6. Use [::1]/foo to force parsing as IPv6
instead.
* The mkvenv.py script now runs a "smoke test" after setting up the
virtual environment to ensure it's working as expected. If
necessary, the test can be skipped via a new --skip-smoke-test
flag.
* Both qutebrowser userscripts and Greasemonkey scripts are now
additionally picked up from qutebrowser's config directory
(the userscripts and greasemonkey subdirectories of e.g.
~/.config/qutebrowser/) rather than only the data directory
(the same subdirectories of e.g. ~/.local/share/qutebrowser/).
* The :later command now understands a time specification like 5m
or 1h5m2s, rather than just taking milliseconds.
* The importer.py script doesn't use a browser argument anymore;
instead its --input-format switch can be used to configure the
input format. The help also was expanded to explain how to use
it properly.
* If tabs.tabs_are_windows is set, the tabs.last_close setting is
now ignored and the window is always closed when using
:close (d).
* With the (default) QtWebEngine backend, if a custom accept header
is set via content.headers.custom, the custom value is now
ignored for XHR (XMLHttpRequest) requests. Instead, the sent
value is now */* or the header set from JavaScript, as it would
be if content.headers.custom wasn't set.
* The :tab-select completion now shows the underlying renderer
process PID if doing so is supported (on QtWebEngine 5.15).
* If tabs.favicons.show is set to never, favicons aren't
unnecessarily downloaded anymore. Thus, disabling favicons can
help with a possible fingerprinting vector.
* "Super" is now understood as a modifier (i.e. as alias to
"Meta").
* Initial support for Python 3.10 (currently in Alpha stage).
* Various performance improvements, including for the startup time.
Fixed
* With interpolated color settings (colors.tabs.indicator.* and
colors.downloads.*), the alpha channel is now handled correctly.
* Fixes to userscripts:
+ format_json now uses env in its shebang, making it work
correctly on systems where bash isn't located in /bin.
+ qute-pass now handles the MIME output format introduced in
gopass 1.10.0.
+ qute-lastpass now types multiple < or > characters correctly.
* The :undo completion now sorts its entries correctly (by the
numerical index rather than lexicographically).
* The completion.web_history.ignore setting now works properly when
set in config.py (rather than via :set). Additionally, a
:config-source will not result in a history rebuild if the value
wasn't actually changed.
* When downloading a data: URL, the suggested filename is now
improved and contains a proper extension. Before this fix,
qutebrowser would use the URL's data contents as filename with
QtWebEngine; or "binary blob" with the Qt network stack.
* When :tab-only is run before a tab is available, an error is now
shown instead of crashing.
* A couple of long URLs (such as qute://pdfjs URLs) are now not
added to the history database anymore.
* A bug in QtWebEngine 5.15.2 causes "renderer process killed"
errors on websites like LinkedIn and TradingView. There is now a
workaround in qutebrowser to prevent this from happening.
* Nextcloud Calendars started using String.replaceAll which was
only added to Chromium recently (Chrome 85), so won't work with
current QtWebEngine versions. This release includes a workaround
(a polyfill as a site-specific-quirk).
-------------------------------------------------------------------
Sun Dec 6 08:23:53 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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
-------------------------------------------------------------------
Sun Nov 15 17:22:38 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Change sip requirement to the PyQt5.sip package instead of
deprecated python-sip
-------------------------------------------------------------------
Thu Oct 15 21:57:47 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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
time.
* :back and :forward now take an optional index which is
completed using the current tab's history.
* The time a website in a tab was visited is now saved/restored
in sessions.
* When attempting to download a file to a location for which
there's already a still-running download, a confirmation prompt
is now displayed.
* :completion-item-focus now understands next-page and prev-page
with corresponding <PgDown> / <PgUp> default bindings.
* When the last private window is closed, all private browsing
data is now cleared.
* When config.source(...) is used with a --config-py argument
given, qutebrowser used to search relative files in the config
basedir, leading to them not being found when using a shared
config.py for different basedirs. Instead, they are now
searched relative to the given config.py file.
* navigate prev ([[) and navigate next (]]) now recognize links
with nav-prev and nav-next classes, such as those used by the
Hugo static site generator.
* When tabs.favicons is disabled but tabs.tabs_are_windows is
set, the window icon is still set to the page's favicon now.
* Dark mode (colors.webpage.darkmode.*) is now supported with
Qt 5.15.2 (which is not released yet).
* The default for the darkmode policy.images setting is now set
to smart which fixes issues with e.g. formulas on Wikipedia.
* The readability-js userscript now adds some CSS to improve the
reader mode styling in various scenarios:
+ Images are now shrinked to the page width, similarly to what
Firefox' reader mode does.
+ Some images ore now displayed as block (rather than inline)
which is what Firefox' reader mode does as well.
+ Blockquotes are now styled more distinctively, again based
on the Firefox reader mode.
+ Code blocks are now easier to distinguish from text and
tables have visible cell margins.
* The readability-js userscript now supports hint userscript
mode.
Added
* New argument strip for :navigate which removes queries and
fragments from the current URL.
* :undo now has a new -w / --window argument, which can be used
to restore closed windows (rather than tabs). This is bound to
U by default.
* :jseval can now take javascript:... URLs via a new --url flag.
* New replacement {aligned_index} for tabs.title.format and
format_pinned which behaves like {index}, but space-pads the
index based on the total numbers of tabs. This can be used to
get aligned tab texts with vertical tabs.
* New command :devtools-focus (bound to wIf) to toggle keyboard
focus between the devtools and web page.
* The --target argument to qutebrowser now understands a new
private-window value, which can be used to open a private
window in an existing instance from the commandline.
* The :download-open command now has a new --dir flag, which can
be used to open the directory containing the downloaded file.
An entry to do the same was also added to the context menu.
* Messages are now wrapped when they are too long to be displayed
on a single line.
* New possible --debug-flag values:
+ wait-renderer-process waits for a SIGUSR1 in the renderer
process so a debugger can be attached.
+ avoid-chromium-init allows using --version without needing
a working QtWebEngine/Chromium.
Fixed
* A URL pattern with a *. host was considered valid and matched
all hosts. Due to keybindings like tsH toggling scripts for
*://*.{url:host}/*, invoking them on pages without a host
(e.g. about:blank) could result in accidentally
allowing/blocking JavaScript for all pages. Such patterns are
now considered invalid, with existing patterns being
automatically removed from autoconfig.yml.
* When scrolling.bar was set to overlay (the default),
qutebrowser would internally override any enable-features=...
flags passed via qt.args or --qt-flag. It now correctly
combines existing enable-feature flags with internal ones.
* Elements with an inherited contenteditable attribute now
trigger insert mode and get hints assigned correctly.
* When checkmarks, radio buttons and some other elements are
styled via the Bootstrap CSS framework, they now get hints
correctly.
* When the session file isn't writable when qutebrowser exits,
an error is now logged instead of crashing.
* When using -m with the qute-lastpass userscript, it
accidentally matched URLs containing the match as substring.
This is now fixed.
* When a filename is derived from a page's title, it's now
shortened to the maximum filename length permitted by the
filesystem.
* :enter-mode register crashed since v1.13.0, it now displays
an error instead.
* With the QtWebKit backend, webpage resources loading certain
invalid URLs could cause a crash, which is now fixed.
* When :config-edit is used but no config.py exists yet, the file
is now created (and watched for changes properly) before
spawning the external editor.
* When hint mode was entered from outside normal mode, the status
bar was empty instead of displaying the proper text.
This is now fixed.
* When entering different modes too quickly (e.g. pressing fV),
the statusbar could end up in a confusing state. This is now
fixed.
* When qutebrowser quits, running downloads are now cancelled
properly.
* The site-specific quirk for web.whatsapp.com has been updated
to work after recent changes in WhatsApp.
* Highlighting in the completion now works properly when UTF-16
surrogate pairs (such as emoji) are involved.
* When a windowed inspector is clicked, insert mode now isn't
entered anymore.
* When :undo is used to re-open a tab, but tabs.tabs_are_windows
was set between closing and undoing the close, qutebrowser
crashed. This is now fixed.
* With QtWebEngine 5.15.0, setting the darkmode image policy to
smart leads to renderer process crashes. The offending setting
value is now ignored with a warning.
* Fixes for the qute-pass userscript:
+ With newer gopass versions, a deprecation notice was copied
as password due to qute-pass using it in a deprecated way.
+ The --password-store argument didn't actually set
+ PASSWORD_STORE_DIR for pass, resulting in qute-pass finding
matches but the underlying pass not finding matching
passwords.
-------------------------------------------------------------------
Fri Jul 17 19:42:28 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Mon Jul 6 23:40:08 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Tue Jun 2 13:01:22 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Fri May 8 08:32:56 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Wed May 6 05:00:29 UTC 2020 - Mia Herkt <mia@0x0.st>
- 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.
-------------------------------------------------------------------
Sun Apr 19 16:08:25 UTC 2020 - Mia Herkt <mia@0x0.st>
- Update to version 1.10.2
Fixed
* The WhatsApp workaround now also works when using WhatsApp in
languages other than English.
-------------------------------------------------------------------
Sun Feb 16 12:38:59 UTC 2020 - Martin Herkt <9+suse@cirno.systems>
- 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.
-------------------------------------------------------------------
Thu Feb 13 16:14:30 UTC 2020 - Tom Warnke <tom+opensuse@toromtomtom.com>
- replace shebangs pointing to /usr/bin/bash with /bin/bash. This
removes the requirement /usr/bin/bash from the RPM.
Fixes boo#1163276.
-------------------------------------------------------------------
Wed Feb 5 07:18:39 UTC 2020 - Martin Rey <mrey@suse.com>
- Update to version 1.10.0
Added
* New colors.webpage.prefers_color_scheme_dark setting which
allows forcing prefers-color-scheme: dark colors for websites
(QtWebEngine with Qt 5.14 or newer).
* New fonts.default_size setting which can be used to set a
bigger font size for all UI fonts.
Changed
* The fonts.monospace setting has been removed and replaced by
fonts.default_family. The new default_family setting is
improved in various ways:
+ It accepts a list of font families (or a single font family)
rather than a comma-separated string. As an example, instead
of fonts.monospace = "Courier, Monaco", use
fonts.default_family = ["Courier", "Monaco"].
+ Since a list is now accepted as value, no quoting of font
names with spaces is required anymore. As an example,
instead of fonts.monospace = '"xos4 Terminus"', use
fonts.default_family = 'xos4 Terminus'.
+ It is now empty by default rather than having a long list of
font names in the default config. When the value is empty,
the system's default monospaced font is used.
* If monospace is now used in a font value, it's used literally
and not replaced anymore. Instead, default_family is replaced
as explained above.
* The default content.headers.accept_language value now adds a
;q=0.9 classifier which should make the value sent more
in-line with what other browsers do.
* The qute-pass userscript now has a new --mode gopass switch
which uses gopass rather than pass.
* The tox -e mkvenv (or mkvenv-pypi) way of installing
qutebrowser is now replaced by a mkvenv.py script. See the
updated link:install{outfilesuffix}#tox[install instructions]
for details.
Fixed
* When quitting qutebrowser, components are now cleaned up
differently. This should fix certain (rare) segmentation
faults and exceptions when quitting, especially with the new
exit scheme introduced in in PyQt5 5.13.1.
* Added a workaround for per-domain settings (e.g. a JavaScript
whitelist) not being applied in some scenarios with Qt 5.13
and above.
* Added additional site-specific quirk for WhatsApp Web.
* The qute-pass userscript now works correctly when a
PASSWORD_STORE_DIR ending with a trailing slash is given.
-------------------------------------------------------------------
Thu Jan 9 22:24:07 UTC 2020 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.9.0
Added
* Initial support for Qt 5.14.
* New content.site_specific_quirks setting which enables
workarounds for websites with broken user agent parsing
(enabled by default, see the "Fixed" section for fixed
websites).
* New qt.force_platformtheme setting to force Qt to use a given
platform theme.
* New tabs.tooltips setting which can be used to disable hover
tooltips for tabs.
* New settings to configure the appearance of context menus:
+ fonts.contextmenu
+ colors.contextmenu.menu.bg
+ colors.contextmenu.menu.fg
+ colors.contextmenu.selected.bg
+ colors.contextmenu.selected.fg
Changed
* The content.headers.user_agent setting now is a format string
with the default value resembling the behavior of it being set
to null before. This slightly changes the sent user agent for
QtWebKit: Instead of mentioning qutebrowser and its version
it now mentions the Qt version.
* The qute-pass userscript now has a new --extra-url-suffixes
(-s) argument which passes extra URL suffixes to the tldextract
library.
* A stack is now used for :tab-focus last rather than just saving
one tab. Additionally, :tab-focus now understands stack-prev
and stack-next arguments to traverse that stack.
* :hint now has a new right-click target which allows
right-clicking elements via hints.
* The Terminus font has been removed from the default monospace
fonts since it caused trouble with HighDPI setups. To get it
back, add either "xos4 Terminus" or Terminus (depending on
fontconfig version) to the beginning of the fonts.monospace
setting.
* As a workaround for a Qt bug causing a segfault, desktop
sharing is now automatically rejected on Qt versions before
5.13.2. Note that screen sharing still won't work on Linux
before Qt 5.14.
* Comment lines in quickmarks/bookmarks files are now ignored.
However, note that qutebrowser will overwrite those files if
bookmark/quickmark commands are used.
* Reopening PDF.js pages from e.g. a session file will now
re-download and display those PDFs.
* Improved behavior when using :open-download in a sandboxed
environment (KDE Flatpak).
* qutebrowser now enables the new PyQt exit scheme, which should
result in things being cleaned up more properly (e.g. cookies
being saved even without a timeout) on PyQt 5.13.1 and newer.
* The :spawn command has a new -m / --output-messages argument
which shows qutebrowser messages based on a command's standard
output/error.
* Improved insert mode detection for some CodeMirror usages
(e.g. in JupyterLab and Jupyter Notebook).
* If JavaScript is disabled globally, file://* now doesn't
automatically have it enabled anymore. Run :set -u file://*
content.javascript.enabled true to restore the previous
behavior.
* Settings with URL patterns can now be used to affect the
behavior of the QtWebEngine inspector. Note that the underlying
URL is chrome-devtools://* from Qt 5.11 to Qt 5.13, but
devtools://* with Qt 5.14.
* Improvements when tabs.tabs_are_windows is set:
+ Using :tab-take and :tab-give now shows an error, as the
effect of doing so would be equal to :tab-clone.
+ The :buffer completion doesn't show any window sections
anymore, only a flat list of tabs.
* Improved parsing in some corner cases for the QtFont type
(used for fonts.tabs and fonts.debug_console).
* Performance improvements for the following areas:
+ Adding settings with URL patterns
+ Matching of settings using URL patterns
Fixed
* Downloads (e.g. via :download) now see the same user agent
header as webpages, which fixes cases where overly restrictive
servers/WAFs closed the connection before.
* The logic for :restart has been revisited, which should fix
issues with relative basedirs.
* Remaining issues related to Python 3.8 are now fixed
(mostly warnings, especially on QtWebKit).
* Workaround for a Qt bug where a page never finishes loading
with a non-overridable TLS error (e.g. due to HSTS).
* The qute://configdiff page now doesn't show built-in settings
(e.g. javascript being enabled for qute:// and chrome:// pages)
anymore.
* The qute-lastpass userscript now stops prompting for passwords
when cancelling the password input.
* The tab hover text now shows ampersands (&) correctly.
* With QtWebEngine and Qt >= 5.11, the inspector now shows its
icons correctly even if loading of images is disabled via the
content.images setting.
* Entering a very long string (over 50k characters) in the
completion used to crash, now it shows an error message instead
* Various improvements for URL/searchengine detection:
+ Strings with a dot but with characters not allowed in a URL
(e.g. an underscore) are now not treated as URL anymore.
+ Strings like "5/8" are now not treated as IP anymore.
+ URLs with an explicit scheme and a space (%20) are correctly
treated as URLs.
+ Mail addresses are now treated as search terms.
+ With url.open_base_url set, searching for a search engine
name now works.
+ url.open_base_url = True together with
url.auto_search = 'never' is now handled correctly.
+ Fixed crash when a search engine URL turns out to be invalid.
* New "site specific quirks", which work around some broken
websites:
+ WhatsApp Web
+ Google Accounts
+ Slack (with older QtWebEngine versions)
+ Dell.com support pages (with Qt 5.7)
+ Google Docs (fixes broken IME/compose key)
-------------------------------------------------------------------
Thu Dec 5 23:17:55 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.8.3
Fixed
* Segmentation fault introduced in v1.8.2 when a tab gets closed
immediately after it has finished loading (e.g. with certain
login flows).
-------------------------------------------------------------------
Tue Nov 26 04:39:55 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.8.2
Fixed
* Unbinding keys via config.bind(key, None) accidentally worked
in v1.7.0 but raises an exception in v1.8.0. It now works
again, but is deprecated and shows an error. Note that
:config-py-write did write such invalid lines before v1.8.0,
so existing config files might need adjustments.
* The readability-js userscript now handles encodings correctly
(which it didn't before for some websites).
* can now be used to paste text starting with a hyphen.
* Following hints via the number keypad now works properly again.
* Errors while reading the state file are now displayed instead
of causing a crash.
* Crash when using :debug-log-level without a console attached.
* Downloads are now hidden properly when the browser is in
fullscreen mode.
* Crash when setting colors.webpage.bg to an empty value with
QtWebKit.
* Crash when the history database file is not a proper sqlite
database.
-------------------------------------------------------------------
Thu Oct 17 22:57:12 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.8.1
Added
* New userscripts:
+ readability-js which uses Mozilla's node.js readability
library.
+ qute-bitwarden which integrates the Bitwarden CLI.
Changed
* The statusbar text for passthrough mode now shows all
configured bindings to leave the mode, not only one.
* When :config-source is used with a relative filename, the file
is now searched in the config directory instead of the current
working directory.
* HTML5 inputs with date/time types now enter insert mode when
selected.
* dictcli.py now shows where dictionaries are installed to and
complains when running it as root if doing so would result in
a wrong installation path.
* Changes to userscripts:
+ qute-pass: Don't run pass if only a username is requested.
+ qute-pass: Support private domains like myrouter.local.
+ readability: Improved CSS styling.
* Performance improvements in various areas:
+ Loading config files
+ Typing without any completion matches
+ General keyboard handling
+ Scrolling
* :version now shows details about the loaded
autoconfig.yml/config.py.
* Hosts are now additionally looked up including their ports in
netrc files.
* With Qt 5.10 or newer, qutebrowser now doesn't force software
rendering with Nouveau drivers anymore. However,
QtWebEngine/Chromium still do so.
* The XSS Auditor is now disabled by default
(content.xss_auditing = false). This reflects a similar change
in Chromium, see their XSS Auditor Design Document for details.
Fixed
* :config-write-py now correctly writes config.unbind(...) lines
(instead of config.bind(..., None)) when unbinding a default
keybinding.
* Prevent repeat keyup events for JavaScript when a key is held
down.
* ~/.config/qutebrowser/blocked-hosts can now also contain
/etc/hosts-like lines, not just simple hostnames.
* Restored compatibility with Jinja2 2.8
* Fixed implicit type conversion warning with Python 3.8.
* The desktop file now sets StartupWMClass correctly, so the
qutebrowser icon is no longer shown twice in the Gnome dock
when pinned.
* Bindings involving keys which need the AltGr key now work
properly.
* Fixed crash (caused by a Qt bug) when typing characters above
the Unicode BMP (such as certain emoji or CJK characters).
* dictcli.py now works properly again.
* Shift can now be used while typing hint keystrings, which e.g.
allows typing number hints on French keyboards.
* With rapid hinting in number mode, backspace now edits the
filter text after following a hint.
* A certain type of error ("locking protocol") while initializing
sqlite now isn't handled as crash anymore.
* Crash when showing a permission request in certain scenarios.
Removed
* At least Python 3.5.2 is now required to run qutebrowser,
support for 3.5.0 and 3.5.1 was dropped.
-------------------------------------------------------------------
Thu Jul 18 15:27:22 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.7.0
Added
* New settings:
+ colors.tabs.pinned.* to control colors of pinned tabs.
+ hints.leave_on_load which allows disabling leaving of hint
mode when a new page is loaded.
+ colors.completion.item.selected.match.fg which allows
configuring the text color for the matching text in the
currently selected completion item.
+ tabs.undo_stack_size to limit how many undo entries are kept
for closed tabs.
* New commands:
+ :reverse-selection (o in caret mode) to swap the
stationary/moving ends of a selection.
* New commandline replacements:
+ {url:domain}, {url:auth}, {url:scheme}, {url:username},
{url:password}, {url:host}, {url:port}, {url:path},
{url:query} for the respective parts of the current URL.
+ {title} for the current page title.
* The {title} field in tabs.title.format,
tabs.title.format_pinned and window.title_format got renamed to
{current_title} (mirroring {current_url}) in order to not
conflict with the new {title} commandline replacement.
* New delete target for :hint which removes the hinted element
from the DOM.
* New --config-py commandline argument to use a custom config.py
file.
* Qt 5.13: Support for notifications (shown via system tray).
Changed
* The desktop file qutebrowser.desktop is now renamed to
org.qutebrowser.qutebrowser.desktop.
* Pinned tabs now always show a favicon (even if the site doesn't
provide one) when shrinking.
* Setting downloads.location.directory now changes the directory
displayed in the download prompt even if
downloads.location.remember is set.
* The yank command gained a new inline argument, which allows to
e.g. use :yank inline [{title}]({url}).
* Duplicate consecutive history entries with the same URL are now
ignored.
* More detailed error messages when spawning a process failed.
* The content.pdfjs setting now supports domain patterns.
* Improved process status output with :spawn -o.
* The colors.tabs.bar.bg setting is now of type QssColor and thus
supports gradients.
* The :fullscreen command now understands a new --enter flag
which causes it to always enter fullscreen instead of toggling
the current state.
* --debug-flag stack is now needed to show stack traces on
renderer process crashes.
* --debug-flag chromium can be used to easily turn on verbose
Chromium logging.
* Permission prompts can now be answered with
Y (:prompt-accept --save yes) and N (:prompt-accept --save no)
to save the answer as a per-domain setting.
* content.dns_prefetch is now turned off by default, as it causes
crashes inside QtWebEngine.
* The (still unofficial) interceptor plugin API now contains
resource_type for a request and allows redirecting requests.
* :bookmark-remove now shows a message for consistency with
:bookmark-add.
* Very early segfaults are now also caught by the crash handler.
* The appdata XML now contains proper release information and an
(empty) OARS content rating.
* Improved Linux distribution detection.
* Qt 5.13: Request filtering now happens in the UI rather than
IO thread.
* Qt 5.13: Support for PDFium (Chromium's PDF viewer) is disabled
for now so that PDFs can still be downloaded
(or shown with PDF.js) properly.
* Various performance improvements (e.g. for showing hints or
the :open completion).
Deprecated
* :yank markdown got deprecated, as :yank inline [{title}]({url})
can now be used instead.
Fixed
* Various QtWebEngine load signals are now handled differently,
which should fix issues with insert mode being left while
typing on sites like Google Translate.
* Race condition causing a colored statusbar in normal mode when
entering/exiting caret mode quickly.
* Using 100% for a hue in a hsv(...) config value now corresponds
to 359 (rather than 255), matching the fixed behavior in
Qt 5.13.
* Chaining commands with ;; used to abort with some failing
commands. It now runs the second command no matter whether the
first one succeeded or not.
* Handling of profiles and private windows (and resulting crashes
with Qt 5.12.2).
* Fixes for corner-cases when using :navigate increment/decrement
* The type for the colors.hints.match.fg setting was changed to
QtColor.
* Gradients were never supported for this setting, and with this
change, values like rgb(0, 0, 0) now work as well.
* Permission prompts now show a properly normalized URL with
QtWebKit.
* Crash on start when PyQt was built without SSL support with
Qt >= 5.12.
* Minor memory leaks.
-------------------------------------------------------------------
Tue Jun 18 12:13:45 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.6.3
Fixed
* Crash when hinting and changing/closing the tab before hints
are displayed.
* Crash on redirects with Qt 5.13.
* Hide bogus AA_ShareOpenGLContexts warning with Qt 5.12.4.
* Workaround for renderer process crashes with Qt 5.12.4.
If you're unable to update, you can remove ~/.cache/qutebrowser
for the same result.
-------------------------------------------------------------------
Mon May 6 21:15:52 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.6.2
Fixed
* Crash when SQL errors occur while using the completion.
* Crash when cancelling a download prompt started in an already
closed window.
* Crash when many prompts are opened at the same time.
* Running without Qt installed now displays a proper error again.
* High CPU usage when using the keyhint widget with a low delay.
-------------------------------------------------------------------
Mon Apr 1 19:40:27 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Force sqlite backend to be installed, otherwise qtbrowser segfaults
bsc#1126269
-------------------------------------------------------------------
Wed Mar 20 06:05:39 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.6.1
Fixed
* Crash when using :config-{dict,list}-{add,remove} with an invalid setting.
* Functionality like hinting on pages with an element with ID _qutebrowser
(such as qutebrowser.org) on Qt 5.12.
* The .desktop file in v1.6.0 was missing the "Actions" key.
* The SVG icon now has a size of 256x256px set to comply with freedesktop
standards.
* Setting colors.statusbar.*.bg to a gradient now has the expected effect of
the gradient spanning the entire statusbar.
-------------------------------------------------------------------
Tue Feb 26 01:48:56 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.6.0
Added
* New settings:
+ tabs.new_position.stacking which controls whether new tabs
opened from a page should stack on each other or not.
+ completion.open_categories which allows to configure which
categories are shown in the :open completion, and how they
are ordered.
+ tabs.pinned.frozen to allow/deny navigating in pinned tabs.
+ hints.selectors which allows to configure what CSS selectors
are used for hints, and also allows adding custom hint groups
+ input.insert_mode.leave_on_load to turn off leaving insert
mode when a new page is loaded.
* New config manipulation commands:
+ :config-dict-add and :config-list-add to a new element to a
dict/list setting.
+ :config-dict-remove and :config-list-remove to remove an
element from a dict/list setting.
+ New :yank markdown feature which yanks the current URL and
title in markdown format.
+ Support for new QtWebEngine features in Qt 5.12:
~ Basic support for client certificates. Selecting the
certificate to use when there are multiple matching
certificates isn't implemented yet.
~ Support for DNS prefetching (plus new content.dns_prefetch
setting).
Changed
* :q now closes the current window instead of quitting
qutebrowser completely (:close), while :qa quits (:quit).
The behavior of :wq remains unchanged (:quit --save), as
closing a window while saving the session doesn't make sense.
* Completion highlighting is now done differently (using
QSyntaxHighlighter), which should fix some highlighting
corner-cases.
* The QtColor config type now also understands colors like
rgb(...).
* :yank now has a --quiet option which causes it to not display
a message.
* The :open completion now also shows search engines by default.
* The content.host_blocking.enabled setting now supports URL
patterns, so the adblocker can be disabled on a given page.
* Elements with a tabindex attribute now also get hints by
default.
* Various small performance improvements for hints and the
completion.
* The Wayland check for QtWebEngine is now disabled on
Qt >= 5.11.2, as those versions should work without any issues.
* The JavaScript console object is now available in PAC files.
* PAC proxies currently don't work properly on QtWebEngine (and
never did), so an error is now shown when trying to configure
a PAC proxy.
* The metainfo file qutebrowser.appdata.xml is now renamed to
org.qutebrowser.qutebrowser.appdata.xml.
* The qute-pass userscript now understands domains in gpg
filenames in addition to directory names.
* The autocompletion for content.headers.user_agent got updated
to only include the default and Chrome, as setting the UA to
Firefox has various bad side-effects.
* Combining Qt 5.12 with an older PyQt can lead to issues, so a
warning is now shown when starting qutebrowser with that
combination.
Fixed
* Invalid world IDs now get rejected for :jseval and GreaseMonkey
scripts.
* When websites suggest download filenames with invalid
characters, those are now correctly replaced.
* Invalid hint length calculation in certain rare cases.
* Dragging tabs in the tab bar (which was broken in v1.5.0)
* Using Shift-Home in command mode now works properly.
* Workaround for a Qt bug which prevented
content.cookies.accept = no-3rdparty from working properly on
some pages like GMail. However, the default for
content.cookies.accept is still all to be in line with what
other browsers do.
* :navigate not incrementing in anchors or queries.
* Crash when trying to use a proxy requiring authentication with
QtWebKit.
* Slashes in search terms are now percent-escaped.
* When scrolling.bar = True was set in versions before v1.5.0,
this now correctly gets migrated to always instead of
when-searching.
* Completion highlighting now works again on Qt 5.11.3 and 5.12.1
* The non-standard header X-Do-Not-Track is no longer sent.
* PAC proxies were never correctly supported with QtWebEngine,
but are now explicitly disallowed.
* Issues with fullscreen handling when exiting a video player.
* Various fixes for Qt 5.12 issues:
+ A javascript error on page load was fixed.
+ window.print() works with Qt 5.12 now.
+ Fixed handling of duplicate download filenames.
+ Fixed broken qute://history page.
+ Fixed PDF.js not working properly.
+ The download button in PDF.js now works (it's not possible
to make it work with earlier Qt versions).
+ Since Greasemonkey scripts modifying the DOM fail when being
run at document-start, some known-broken scripts (Iridium,
userstyles.org) are now forced to run at document-end.
-------------------------------------------------------------------
Sat Feb 23 19:28:37 UTC 2019 - Martin Herkt <9+suse@cirno.systems>
- Require python3-qtwebengine-qt5 on TW
(package split since PyQt5 5.12)
-------------------------------------------------------------------
Mon Oct 29 22:23:40 UTC 2018 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.5.2:
* The content.cookies.accept setting is now set to all instead
of no-3rdparty by default, as no-3rdparty breaks various pages
such as GMail.
-------------------------------------------------------------------
Wed Oct 10 17:50:18 UTC 2018 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.5.1:
Fixed:
* Flickering when opening/closing tabs (as soon as more than
10 are open) on some pages.
* Improved logging for PDF.js resources which fail to load.
* Crash when closing a tab after doing a search.
* Tabs appearing when hidden after e.g. closing tabs.
-------------------------------------------------------------------
Wed Oct 3 18:23:48 UTC 2018 - Martin Herkt <9+suse@cirno.systems>
- Update to version 1.5.0:
Added:
* Rewritten PDF.js support:
+ PDF.js support and the content.pdfjs setting are now
available with QtWebEngine.
+ Opening a PDF file now doesn't start a second request
anymore.
+ Opening PDFs on https:// sites now works properly.
+ New --pdfjs flag for prompt-open-download, so PDFs can be
opened in PDF.js with <Ctrl-P> in the download prompt.
* New settings:
+ content.mouse_lock to handle HTML5 pointer locking.
+ completion.web_history.exclude which hides a list of URL
patterns from the completion.
+ qt.process_model which can be used to change Chromium's
process model.
+ qt.low_end_device_mode which turns on Chromium's low-end
device mode. This mode uses less RAM, but the expense of
performance.
+ content.webrtc_ip_handling_policy, which allows more
fine-grained/restrictive control about which IPs are
exposed via WebRTC.
+ tabs.max_width which allows to have a more "normal" look
for tabs.
+ content.mute which allows to mute pages (or all tabs) by
default.
* Running qutebrowser with QtWebKit or Qt < 5.9 now shows a
warning (only once), as support for those is going to be
removed in a future release.
* New t[iI][hHu] default bindings (similar to tsh etc.) to
toggle images.
* The qute-pass userscript now has optional OTP support.
* When :spawn --userscript is called with a count, that count
is now passed to userscripts as $QUTE_COUNT.
Changed:
* Various performance improvements when many tabs are opened.
* The content.headers.referer setting now works on QtWebEngine.
* The :repeat command now takes a count which is multiplied
with the given "times" argument.
* The default keybinding to leave passthrough mode was changed
from <Ctrl-V> to <Shift-Escape>, which makes pasting from the
clipboard easier in passthrough mode and is also unlikely to
conflict with webpage bindings.
* The app_id is now set to qutebrowser for Wayland.
* Using :set option now shows the value of the setting
(like :set option? already did).
* The completion.web_history_max_items setting got renamed to
completion.web_history.max_items.
* Regenerating completion history now shows a progress dialog.
* The content.autoplay setting now supports URL patterns on
Qt >= 5.11.
* The content.host_blocking.whitelist setting now takes a list
of URL patterns instead of globs.
* In passthrough mode, Ctrl + Mousewheel now also gets passed
through to the page instead of zooming.
* Editing text in an external editor now simulates a JS "input"
event, which improves compatibility with websites reacting
via JS to input.
* The qute://settings page is now properly sorted on Python 3.5
* :zoom, :zoom-in and :zoom-out now have a --quiet switch which
causes them to not display a message.
* The scrolling.bar setting now takes three values instead of
being a boolean: always, never, and when-searching (which
only displays it while a search is active).
* '@@' now repeats the last run macro.
* The content.host_blocking.lists setting now accepts a file://
URL to a directory, and reads all files in that directory.
* The :tab-give and :tab-take command now have a new flag
--keep which causes them to keep the old tab around.
* :navigate now clears the URL query.
Fixed:
* qute:// pages now work properly on Qt 5.11.2
* Error when passing a substring with spaces to :tab-take.
* Greasemonkey scripts which start with an UTF-8 BOM are now
handled correctly.
* When no documentation has been generated, the plaintext
documentation now can be shown for more files such as
qute://help/userscripts.html.
* Crash when doing initial run on Wayland without XWayland.
* Crash when trying to load an empty session file.
* :hint with an invalid --mode= value now shows a proper error.
* Rare crash on Qt 5.11.2 when clicking on <select> elements.
* Rare crash related to the completion.
Removed:
* Support for importing pre-v1.0.0 history files has been
removed.
* The content.webrtc_public_interfaces_only setting has been
removed and replaced by content.webrtc_ip_handling_policy.
-------------------------------------------------------------------
Sun Sep 2 13:39:04 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.4.2:
Changed:
* The content.xss_auditing setting is now enabled by default,
to mirror Chromium's rather than Qt's default behavior.
* Long URLs in the statusbar are now elided at the end rather
than in the middle, to make sure the hostname is completely
visible whenever possible.
Fixed:
* Crash in Qt 5.7.1 when a website uses window.print().
* The workaround for Nouveau graphic drivers now works properly
again.
* Crash when using :follow-selected with a link which is
outside of the view.
* Workaround for windows not showing as urgent with some window
managers (like i3).
* Crash when opening URLs with some unicode characters
(IDNA 2008). Those URLs still won't open though, due to
missing support in Qt.
* Crash when a download directory which can't be created is
configured.
* Crash in the importer.py script when importing Chrome
bookmarks from newer Chrome versions.
* The content.webrtc_public_interfaces_only option didn't work
on Qt 5.11 previously (it now does). Note it still does not
work on Qt 5.10 (due to a Qt bug) and Qt < 5.9.2.
* Repeated escaping of entries in qute://log when refreshing
page.
* The host blocker doesn't block 0.0.0.0 anymore.
* Crash when using :// as URL pattern.
* The :buffer completion now sorts tabs with indices >= 10
correctly again.
-------------------------------------------------------------------
Wed Jul 11 17:46:59 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.4.1:
Security:
* CVE-2018-10895: Fix CSRF issue on the qute://settings page,
leading to possible arbitrary code execution (boo#1100968).
See the related GitHub issue for details:
https://github.com/qutebrowser/qutebrowser/issues/4060
Fixed:
* Rare crash when an error occurs in downloads.
* Newlines are now stripped from the :version pastebin URL.
* Worked around a Qt issue which redirects to a
chrome-error:// page when trying to use U2F.
* The link_pyqt.py script now works correctly with PyQt 5.11.
-------------------------------------------------------------------
Tue Jul 3 16:29:33 UTC 2018 - 9+suse@cirno.systems
- Update %description
- Update to version 1.4.0:
Added:
* Support for the bundled sip module in PyQt 5.11 and other
changes in Qt/PyQt 5.11.x.
* New --debug-flag log-requests to log requests to the debug
log for debugging.
* New --first flag for :hint (bound to gi for inputs) which
automatically selects the first hint.
* New input.escape_quits_reporter setting which can be used to
avoid accidentally quitting the crash reporter when pressing
escape.
* New qute-lastpass userscript which uses the LastPass CLI to
fill passwords.
* The Makefile now installs a
/usr/share/metainfo/qutebrowser.appdata.xml file.
* QtWebEngine: Support for printing from webpages via
window.print.
* QtWebEngine: Support for muting tabs:
+ New {audio} field for window.title_format and
tabs.title.format which displays [M]/[A] for
muted/recently audible tabs.
+ New :tab-mute command (bound to <Alt-m>) to mute/unmute a
tab.
* QtWebEngine: Support for content.cookies.accept with
third-party cookies blocked by default (requires Qt 5.11).
* QtWebEngine: New settings:
+ Support for requesting persistent storage via
navigator.webkitPersistentStorage.requestQuota with a new
content.persistent_storage setting (requires Qt 5.11).
This setting also supports URL patterns.
+ Support for registering custom protocol handlers via
navigator.registerProtocolHandler with a new
content.register_protocol_handler setting (requires
Qt 5.11). This setting also supports URL patterns.
+ Support for WebRTC screen sharing with a new
content.desktop_capture setting (requires Qt 5.10).
This setting also supports URL patterns.
+ New content.autoplay setting to enable/disable automatic
video playback (requires Qt 5.10).
+ New content.webrtc_public_interfaces_only setting to only
expose public interfaces over WebRTC (requires Qt 5.9.2
or 5.11).
+ New content.canvas_reading setting to disable reading from
canvas elements.
Changed:
* The following settings now support URL patterns:
+ content.headers.do_not_track
+ content.headers.custom
+ content.headers.accept_language
+ content.headers.user_agent
+ content.ssl_strict
+ content.geolocation
+ content.notifications
+ content.media_capture
* New short flags for commandline arguments: -B and -T for
--basedir and --temp-basedir; -d and -D for --debug and
--debug-flag.
* Deleting history items via :history-clear or
:completion-item-del now also removes that URL from
QtWebEngine's visited links.
* There's now completion for commands taking a variable count
of arguments (like :config-cycle).
* QtWebEngine: On Qt 5.11.1, no reloads are needed anymore
when switching between pages with changed settings
(e.g. content.javascript.enabled).
* The qt.force_software_rendering setting changed from a
boolean to taking different values (software-opengl,
qt-quick and chromium) for different kinds of software
rendering workarounds.
* On Qt 5.11, using wayland with QtWebEngine is now possible
when using software rendering.
* GreaseMonkey scripts now get their own global scope (based on
the page's one), which allows scripts like OneeChan to work.
* Rapid hinting is now supported with the yank and yank-primary
targets, copying newline-separated links.
* QtWebEngine: On Qt 5.11, the developer tools (inspector) can
now be used securely and without requiring the
--enable-webengine-inspector option.
* The <Enter> key (:follow-selected) now follows the currently
focused element if there's no selection.
* The --logfilter argument now can be prepended with an
exclamation mark (e.g. --logfilter '!init,destroy') to
invert the filter.
* :view-source now has a --pygments flag which uses the "old"
way of rendering sources even with QtWebEngine.
* Improved error messages when a setting needs a newer Qt
version.
* QtWebEngine: Various improvements to make the cursor more
visible in caret browsing.
* When a prompt is opened in insert/passthrough mode, the mode
is restored after closing the prompt.
* On Qt 5.10 or newer, dictionaries are now read from the
qutebrowser data directory (e.g. ~/.local/share/qutebrowser)
instead of /usr/share/qt.
Existing dictionaries are copied over.
* If an error while parsing ~/.netrc occurs, the cause of the
error is now logged.
* On Qt 5.9 or newer, certificate errors now show Chromium's
detailed error page.
* Greasemonkey scripts now support a "@qute-js-world" tag to
run them in a different JavaScript context.
Fixed:
* Various subtle keyboard focus issues.
* The security fix in v1.3.3 caused URLs with ampersands
(www.example.com?one=1&two=2) to send the wrong arguments
when clicked on the qute://history page (boo#1100968,
CVE-2018-1000559).
* Crash when opening a PDF page with PDF.js enabled
(on QtWebKit), but no PDF.js installed.
* Crash when closing a tab shortly after opening it.
Removed:
* :tab-detach which has been deprecated in v1.1.0 has been
removed.
* The content.developer_extras setting got removed.
On QtWebKit, developer extras are now automatically enabled
when opening the inspector.
-------------------------------------------------------------------
Fri Jun 22 10:25:18 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.3.3:
Security:
* An XSS vulnerability on the qute://history page allowed
websites to inject HTML into the page via a crafted title
tag. This could allow them to steal your browsing history.
If you're currently unable to upgrade, avoid using :history.
This issue has been assigned CVE-2018-1000559.
Fixed:
* Crash in a workaround for a Qt 5.11 bug in rare
circumstances.
* Workaround for a Qt bug which preserves searches between page
loads.
-------------------------------------------------------------------
Wed Jun 13 21:56:04 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.3.2:
* QtWebEngine: Improved workaround for a bug in Qt 5.11 where
only the top/bottom half of the window is used.
* QtWebEngine: Work around a bug in Qt 5.11 where an endless
loading-loop is triggered when clicking a link with an unknown
scheme.
* QtWebEngine: When switching between pages with changed
settings, less unnecessary reloads are done now.
* QtWebEngine: It's now possible to open external links such as
magnet:// or mailto: via hints.
-------------------------------------------------------------------
Tue May 29 09:23:43 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.3.1:
* Work around a bug in Qt 5.11 where only the top/bottom half of
the window is used. This workaround is incomplete, but fixes
the majority of the cases where this happens.
* Work around keyboard focus issues with Qt 5.11.
* Work around an issue in Qt 5.11 where e.g. activating
JavaScript per-domain needed a manual reload in some cases.
* Don't crash when a ² key is pressed (e.g. on AZERTY keyboards).
* Don't crash when a tab is opened and quickly closed again.
-------------------------------------------------------------------
Fri May 4 10:29:52 UTC 2018 - 9+suse@cirno.systems
- Use upstream Makefile to install
* Package scripts and manpage
- Package AppStream metadata
- Update to version 1.3.0:
Added:
* New :scroll-to-anchor command to scroll to an anchor in the
document.
* New url.open_base_url option to open the base URL of a
searchengine when no search term is given.
* New tabs.min_width setting to configure the minimal width
for tabs.
* New userscripts:
+ getbib to download bibtex information for DOIs on a page.
+ qute-keepass to get passwords from KeePassX.
Changed:
* QtWebEngine: Support for JavaScript Shared Web Workers have
been disabled on Qt versions older than 5.11 because of
security issues in in Chromium. You can get the same effect
in earlier versions via
":set qt.args ['disable-shared-workers']". An equivalent
workaround is also contained in Qt 5.9.5 and 5.10.1.
* The file dialog for downloads now has basic tab completion
based on the entered text.
* :version now shows OS information for POSIX OS other than
Linux/macOS.
* When there's an error inserting the text from an external
editor, a backup file is now saved.
* The window.hide_wayland_decoration setting got renamed to
window.hide_decoration and now also works outside of wayland.
* The tabs.favicons.show setting now can take three values:
'always' (was True), 'never' (was False) and 'pinned'
(to only show favicons for pinned tabs).
* Hover tooltips on tabs now always show the webpage's title.
* The default value for content.host_blocking.lists was
changed to only include https://github.com/StevenBlack/hosts
which combines various sources.
* Error messages when trying to wrap when tabs.wrap is False
are now logged to debug instead of messages.
Fixed:
* Using hints before a page is fully loaded is now possible
again.
* Selecting hints with the number keypad now works again.
* Tab titles for tabs loaded from sessions should now really be
correct instead of showing the URL.
* Loading URLs with customized settings from a session now
avoids an additional reload.
* The window icon and title now get set correctly again.
* The tabs.switching_delay setting now has a correct maximum
value limit set.
* The taskadd script now works properly when there's multi-line
output.
* QtWebEngine: Worked around issues with
GreaseMonkey/stylesheets not being loaded correctly in some
situations.
* The statusbar now more closely reflects the caret mode state.
* The icon on Windows should now be displayed in a higher
resolution.
* The QtWebEngine development tools (inspector) now also work
when JavaScript is disabled globally.
* Building .exe files now works when upx is installed on the
system.
* The keyhint widget now shows the correct text for chained
modifiers.
* Loading GreaseMonkey scripts now also works with Jinja2 2.8
(e.g. on Debian Stable).
* Adding styles with GreaseMonkey on fast sites now works
properly.
* Window ID 0 is now excluded properly from ":tab-take"
completion.
* A rare crash when cancelling a download has been fixed.
* The Makefile (intended for packagers) now supports PREFIX
properly.
* The workaround for a black window with Nvidia graphics is now
enabled on non-Linux systems (like FreeBSD) as well.
* Initial support for Qt 5.11.
* Checking for a new version after sending a crash report now
works properly again.
* "@match" in Greasemonkey scripts now more closely matches the
proper pattern syntax.
* Searching via / or ? now doesn't handle any characters in a
special way.
* Fixed crash when trying to retry some failed downloads on
QtWebEngine.
* An invalid spellcheck dictionary filename now doesn't crash
anymore. When no spellcheck dictionaries are configured,
it's now disabled internally. This works around an issue with
entering special characters on Facebook messenger.
-------------------------------------------------------------------
Wed Mar 14 19:31:01 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.2.1:
Fixed:
* qutebrowser now starts properly when the PyQt5
QOpenGLFunctions package wasn't found.
* The keybinding cheatsheet on the quickstart page is now
loaded from a local qute:// URL again.
* Unbinding keys which were bound in older qutebrowser versions
now doesn't crash anymore.
* Fixed a crash when reloading a page which wasn't fully
loaded with v1.2.0
* Keys on the numeric keypad now fall back to the same bindings
without Num+ if no Num+ binding was found.
* Fixed hinting on some pages with Qt < 5.10.
* Titles are now displayed correctly again for tabs which are
cloned or loaded from sessions.
-------------------------------------------------------------------
Sat Mar 10 01:23:23 UTC 2018 - 9+suse@cirno.systems
- Update keyring
- Update to version 1.2.0:
Added:
* Initial implementation of per-domain settings:
+ :set and :config-cycle now have a -u/--pattern argument
taking a URL match pattern for supported settings.
+ config.set in config.py now takes a third argument which is
the pattern.
+ New with config.pattern('...') as p: context manager for
config.py to use the shorthand syntax with a pattern.
+ New tsh keybinding to toggle scripts for the current host.
With a capital S, the toggle is saved. With a capital H,
subdomains are included. With u instead of h, the exact
current URL is used.
+ New tph keybinding to toggle plugins, with the same
additional binding described above.
* New QtWebEngine features:
+ Caret/visual mode
+ Authentication via ~/.netrc
+ Retrying downloads with Qt 5.10 or newer
+ Hinting and other features inside same-origin frames
* New flags for existing commands:
+ :session-load has a new --delete flag which deletes the
session after loading it.
+ New --no-last flag for :tab-focus to not focus the last tab
when focusing the currently focused one.
+ New --edit flag for :view-source to open the source in an
external editor.
+ New --select flag for :follow-hint which acts like the
given string was entered but doesn't necessary follow the
hint.
* New special pages:
+ qute://bindings (opened via :bind) which shows all
keybindings.
+ qute://tabs (opened via :buffer) which lists all tabs.
* New settings:
+ statusbar.widgets to configure which widgets should be
shown in which order in the statusbar.
+ tabs.mode_on_change which replaces
tabs.persist_mode_on_change. It can now be set to restore
which remembers input modes (input/passthrough) per tab.
+ input.insert_mode.auto_enter which makes it possible to
disable entering insert mode automatically when an editable
element was clicked. Together with
input.forward_unbound_keys, this should allow for
emacs-like "modeless" keybindings.
* New :prompt-yank command (bound to Alt-y by default) to yank
URLs referenced in prompts.
* The hostblock_blame script which was removed in v1.0 was
updated for the new config and re-added.
* New cycle-inputs.js script in scripts/ which can be used with
:jseval -f to cycle through inputs.
Changed:
* Complete refactoring of key input handling, with various
effects:
+ emacs-like keychains such as <Ctrl-X><Ctrl-C> can now be
bound.
+ Key chains can now be bound in any mode (this allows
binding unused keys in hint mode).
+ Yes/no prompts don't use keybindings from the prompt
section anymore, they have their own yesno section instead.
+ Trying to bind invalid keys now shows an error.
+ The bindings.default setting can now only be set in a
config.py, and existing values in autoconfig.yml are
ignored.
* Improvements for GreaseMonkey support:
+ @include and @exclude now support regex matches.
With QtWebEngine and Qt 5.8 and newer, Qt handles the
matching, but similar functionality will be added in
Qt 5.11.
+ Support for @requires
+ Support for the GreaseMonkey 4.0 API
* The sqlite history now uses write-ahead logging which should
be a performance and stability improvement.
* When an editor is spawned with :open-editor and :config-edit,
the changes are now applied as soon as the file is saved in
the editor.
* The hist_importer.py script now only imports URL schemes
qutebrowser can handle.
* Deleting a prefix (:, / or ?) via backspace now leaves
command mode.
* Angular 1 elements and <summary>/<details> now get hints
assigned.
* :tab-only with pinned tabs now still closes unpinned tabs.
* The url.incdec_segments option now also can take port as
possible segment.
* QtWebEngine: :view-source now uses Chromium's view-source:
scheme.
* Tabs now show their full title as tooltip.
* When there are multiple unknown keys in a autoconfig.yml,
they now all get reported in one error.
* More performance improvements when opening/closing many tabs.
* The :version page now has a button to pastebin the
information.
* Replacements like {url} can now be escaped as {{url}}.
Fixed:
* QtWebEngine bugfixes:
+ Improved fullscreen handling with Qt 5.10.
+ Hinting and scrolling now works properly on special
view-source: pages.
+ Scroll positions are now restored correctly from sessions.
+ :follow-selected should now work in more cases with
Qt > 5.10.
+ Incremental search now flickers less and doesn't move to
the second result when pressing Enter.
+ Keys like Ctrl-V or Shift-Insert are now correctly
handled/filtered with Qt 5.10.
+ Fixed hangs/segfaults on exit with Qt 5.10.1.
+ Fixed favicons sometimes getting cleared with Qt 5.10.
+ Qt download objects are now cleaned up properly when a
download is removed.
+ JavaScript messages are now not double-HTML escaped anymore
on Qt < 5.11
* QtWebKit bugfixes:
+ Fixed GreaseMonkey-related crashes.
+ :view-source now displays a valid URL.
* URLs containing ampersands and other special chars are now
shown correctly when filtering them in the completion.
* :bookmark-add "" foo can now be used to save the current URL
with a custom title.
* :spawn -o now waits until the process has finished before
trying to show the output. Previously, it incorrectly showed
the previous output immediately.
* Suspended pages now should always load the correct page when
being un-suspended.
* Exception types are now shown properly with :config-source
and :config-edit.
* When using :bookmark-add --toggle, bookmarks are now saved
properly.
* Crash with an empty completion.timestamp_format.
* Crash when completion.min_chars is set in some cases.
* HTML/JS resource files are now read into RAM on start to
avoid crashes when changing qutebrowser versions while it's
open.
* Setting bindings.key_mappings to an empty value is now
allowed.
* Bindings to an empty commands are now ignored rather than
crashing.
Removed:
* QUTE_SELECTED_HTML is now not set for userscripts anymore
except when called via hints.
* The qutebrowser_viewsource userscript has been removed as
:view-source --edit can now be used.
* The tabs.persist_mode_on_change setting has been removed and
replaced by tabs.mode_on_change.
-------------------------------------------------------------------
Thu Mar 1 23:44:36 UTC 2018 - 9+suse@cirno.systems
- Update to version 1.1.2:
Fixed:
* QtWebEngine: Crash with Qt 5.10.1 when using :undo on some
tabs.
* Compatibility with Python 3.7
- Use %license macro
-------------------------------------------------------------------
Sat Jan 20 18:51:40 UTC 2018 - 9@cirno.systems
- Update to version 1.1.1:
* Fixed crashes with Qt 5.10 when closing a tab before it
finished loading.
-------------------------------------------------------------------
Mon Jan 15 19:04:57 UTC 2018 - 9@cirno.systems
- Update to version 1.1.0:
Added:
* Initial support for Greasemonkey scripts. There are still
some rough edges, but many scripts should already work.
* New fields for window.title_format and tabs.title.format:
+ {current_url}
+ {protocol}
* New settings:
+ colors.statusbar.passthrough.fg/.bg
+ completion.delay and completion.min_chars to update the
completion less often.
+ completion.use_best_match to automatically use the
best-matching command in the completion.
+ keyhint.radius to configure the edge rounding for the key
hint widget.
+ qt.highdpi to turn on Qt's High-DPI scaling.
+ tabs.pinned.shrink (true by default) to make it possible
for pinned tabs and normal tabs to have the same size.
+ content.windowed_fullscreen to show e.g. a fullscreened
video in the window without fullscreening that window.
+ tabs.persist_mode_on_change to keep the current mode when
switching tabs.
+ session.lazy_restore which allows to not load pages
immediately when restoring a session.
* New commands:
+ :tab-give and :tab-take, to give tabs to another window,
or take them from another window.
+ :completion-item-yank (bound to <Ctrl-C>) to yank the
current completion item text.
+ :edit-command to edit the commandline in an editor.
+ search.incremental for incremental text search.
* New flags for existing commands:
+ -o flag for :spawn to show stdout/stderr in a new tab.
+ --rapid flag for :command-accept (bound to Ctrl-Enter by
default), which allows executing a command in the
completion without closing it.
+ --private and --related flags for :edit-url, which have the
same effect they have with :open.
+ --history for :completion-item-focus which causes it to go
through the command history when no text was entered.
The default bindings for cursor keys in the completion
changed to use that, so that they can be used again to
navigate through completion items when a text was entered.
+ --file for :debug-pyeval which makes it take a filename
instead of a line of code.
* New config.source(...) method for config.py to source another
file.
* New {line} and {column} replacements for editor.command to
position the cursor correctly.
* New qute-pass userscript as alternative to password_fill
which allows selecting accounts via rofi or any other
dmenu-compatile application.
* New hist_importer.py script to import history from
Firefox/Chromium.
Changed:
* Some settings got renamed:
* tabs.width.bar -> tabs.width
* tabs.width.indicator -> tabs.indicator.width
* tabs.indicator_padding -> tabs.indicator.padding
* session_default_name -> session.default_name
* ignore_case -> search.ignore_case
* Much improved user stylesheet handling for QtWebEngine which
reduces flickering and updates immediately after setting a
stylesheet.
* High-DPI favicons are now used when available.
* The asciidoc2html.py script now uses Pygments (which is
already a dependency of qutebrowser) instead of
source-highlight for syntax highlighting.
* The :buffer command now doesn't require quoting anymore,
similar to :open.
* The importer.py script was largely rewritten and now also
supports importing from Firefox' places.sqlite file and
Chrome/Chromium profiles.
* Various internal refactorings to use Python 3.5 and
ECMAscript 6 features.
* If the window.hide_wayland_decoration setting is False, but
QT_WAYLAND_DISABLE_WINDOWDECORATION is set in the
environment, the decorations are still hidden.
* The install_dict.py script for QtWebEngine was renamed to
dictcli.py and can now also upgrade dictionaries correctly.
* :undo now can re-open multiple tabs after :tab-only was used.
* :config-write-py with a relative path now puts the file into
the config directory.
* The qute://version page now also shows the uptime of
qutebrowser.
* qutebrowser now prompts to create a non-existing directory
when starting a download.
* :jseval --file now searches relative paths in a js/ subdir in
qutebrowser's data dir, e.g. ~/.local/share/qutebrowser/js.
* The current/default bindings are now shown in the ``:bind`
completion.
* Empty categories are now hidden in the :open completion.
* Search terms for URLs and titles can now be mixed when
filtering the completion.
* The default font size for the UI got bumped up from 8pt to
10pt.
* Improved matching in the completion: The words entered are
now matched in any order, and mixed matches on URL/tite are
possible.
* The system's default encoding (rather than UTF-8) is now used
to decode subprocess output.
* qutebrowser now ensures it's focused again after an external
editor is closed.
* The colors.completion.fg setting can now be a list, allowing
to specify different colors for the three completion columns.
Fixed:
* More consistent sizing for favicons with vertical tabs.
* Using :home on pinned tabs is now prevented.
* Fix crash with unknown file types loaded via qute://help.
* Scrolling performance improvements.
* Sites like qute://help now redirect to qute://help/ to make
sure links work properly.
* Fixes for the size calculation of pinned tabs in the tab bar.
* Worked around a crash with PyQt 5.9.1 compiled against
Qt < 5.9.1 when using :yank or qute:// URLs.
* Fixed crash when opening qute://help/img.
* Fixed gU (:navigate up) on qute://help and webservers not
handling .. in a URL.
* Using e.g. -s backend webkit to set the backend now works
correctly.
* Fixed crash when closing the tab an external editor was
opened in.
* When using :search-next before a search is finished, no
warning about no results being found is shown anymore.
* Fix :click-element with an ID containing non-alphanumeric
characters.
* Fix crash when a subprocess outputs data which is not
decodable as UTF-8.
* Fix crash when closing a tab immediately after hinting.
* Worked around issues in Qt 5.10 with loading progress never
being finished.
* Fixed a crash when writing a flag before a command
(e.g. :-w open).
* Fixed a crash when clicking certain form elements with
QtWebEngine.
Deprecated:
* :tab-detach has been deprecated, as :tab-give without
argument can be used instead.
Removed:
* The long-deprecated :prompt-yes, :prompt-no, :paste-primary
and :paste commands have been removed.
* The invocation :download <url> <dest> which was deprecated
in v0.5.0
was removed, use :download --dest <dest> <url> instead.
* The messages.unfocused option which wasn't used anymore was
removed.
* The x[xtb] default bindings got removed again as many users
accidentally triggered them.
-------------------------------------------------------------------
Tue Nov 28 10:12:35 UTC 2017 - 9@cirno.systems
- Update to version 1.0.4:
* The qute://gpl page now works correctly again.
* Trying to bind an empty command now doesn't crash anymore.
* Fixed crash when :config-write-py fails to write to the given
path.
* Fixed crash for some users when selecting a file with Qt 5.9.3
* Improved handling for various SQL errors
* Fix crash when setting content.cache.size to a big value
(> 2 GB)
-------------------------------------------------------------------
Sat Nov 4 16:32:49 UTC 2017 - aavindraa@gmail.com
- Update to version 1.0.3:
* Changed
+ Performance improvements for tab rendering.
+ The :open-editor command is not hidden anymore and also usable
in normal mode.
+ Security enhancements for macos and windows builds
* Fixed
+ Handle accessing a locked sqlite database gracefully
+ Abort pinned tab dialogs properly when a tab is closed e.g.
by closing a window.
+ Unbinding a default keybinding twice no longer binds it again
+ Completions are now sorted correctly again when filtered
-------------------------------------------------------------------
Sat Oct 21 20:20:10 UTC 2017 - sor.alexei@meowr.ru
- Add the missing python3-attrs dependency (boo#1064515).
-------------------------------------------------------------------
Tue Oct 17 13:47:35 UTC 2017 - aavindraa@gmail.com
- Update to version 1.0.2:
* Fixed
+ Fix workaround for black screens or crashes with Nvidia cards
+ Handle a filesystem going read-only gracefully
+ Fix crash when setting fonts.monospace
+ Fix list options not being modifyable via .append() in
config.py
+ Mark the content.notifications setting as QtWebKit only
correctly
+ Fix wrong rendering of keys like <back> in the completion
* Changed
+ Nicer error messages and other minor improvements
* Includes fixes from 1.0.1:
+ Fixed starting after customizing fonts.tabs or
fonts.debug_console.
+ Fixed starting with old PyQt versions compiled against newer
Qt versions.
+ Fixed check for PyQt version to correctly enforce 5.7
(not 5.2).
-------------------------------------------------------------------
Thu Oct 12 12:44:12 UTC 2017 - aloisio@gmx.com
- Update to version 1.0.0
* Dependency changes:
+ Support for legacy QtWebKit (before 5.212 which is
distributed independently from Qt) is dropped.
+ Support for Python 3.4 is dropped.
+ Support for Qt before 5.7.1 and PyQt before 5.7 is dropped.
+ New dependency on the QtSql module and Qt sqlite support.
+ New dependency on the attrs project (packaged as
python-attr in some distributions).
+ The depedency on PyOpenGL (when using QtWebEngine) got
removed. Note that PyQt5.QtOpenGL is still a dependency.
+ PyQt5.QtOpenGL is now always required, even with QtWebKit.
* The QtWebEngine backend is now used by default. Note this
means that QtWebEngine now should be a required dependency, and
QtWebKit (if new enough) should be changed to an optional
dependency.
* Completely rewritten configuration system which ignores the
old config file. See link:qute://help/configuring.html[] for
details.
* Various documentation files got moved to the doc/ subfolder;
qutebrowser.desktop got moved to misc/.
* :set now doesn't support toggling/cycling values anymore, that
functionality got moved to :config-cycle.
* New completion engine based on sqlite, which allows to
complete the entire browsing history. The default for
completion.web_history_max_items got changed to -1 (unlimited).
If the completion is too slow on your machine, try setting it to
a few 1000 items.
Added:
* QtWebEngine: Spell checking support, see the
spellcheck.languages setting.
* New qt.args setting to pass additional arguments to
Qt/Chromium.
* New backend setting to select the backend to use. Together
with the previous setting, this should make most wrapper
scripts unnecessary.
* qutebrowser can now be set as the default browser on macOS.
* New config commands:
+ :config-cycle to cycle an option between multiple values.
+ :config-unset to remove a configured option.
+ :config-clear to remove all configured options.
+ :config-source to (re-)read a config.py file.
+ :config-edit to open the config.py file in an editor.
+ :config-write-py to write a config.py template file.
* New :version command which opens qute://version.
* New back/forward indicator in the statusbar.
* New bindings.key_mappings setting to map keys to other keys.
* QtWebEngine: Support for proxy authentication.
Changed:
* Using :download now uses the page's title as filename.
* Using :back or :forward with a count now skips intermediate
pages.
* When there are multiple messages shown, the timeout is
increased.
* :search now only clears the search if one was displayed
before, so pressing <Escape> doesn't un-focus inputs anymore.
* Pinned tabs now adjust to their text's width, so the
tabs.width.pinned setting got removed.
* :set-cmd-text now has a --run-on-count argument to run the
underlying command directly if a count was given.
* :scroll-perc got renamed to :scroll-to-perc.
Removed:
* Migrating QtWebEngine data written by versions before
2016-11-15 (before v0.9.0) is now not supported anymore.
* Upgrading qutebrowser with a version older than v0.4.0 still
running now won't work properly anymore.
* The --harfbuzz and --relaxed-config commandline arguments got
dropped.
Fixes:
* Exiting fullscreen via :fullscreen or buttons on a page now
restores the correct previous window state
(maximized/fullscreen).
* When input.insert_mode.auto_load is set, background tabs now
don't enter insert mode anymore.
* The keybinding help widget now works correctly when using
keybindings with a count.
* The window.hide_wayland_decoration setting now works correctly
again.
-------------------------------------------------------------------
Sun Aug 13 17:25:21 UTC 2017 - 9@cirno.systems
- Update to version 0.11.0:
* New dependencies:
+ New dependency on PyQt5.QtOpenGL if QtWebEngine is used.
QtWebEngine depends on QtOpenGL already, but on distributions packaging
split PyQt5 wrappers, the wrappers for QtOpenGL are now required.
+ New dependency on PyOpenGL if QtWebEngine is used.
* Added:
+ Private browsing is now implemented for QtWebEngine, and changed its
behavior: The general -> private-browsing setting now only applies to
newly opened windows, and you can use the -p flag to :open to open a
private window.
+ New "pinned tabs" feature, with a new :tab-pin command
(bound to <Ctrl-p> by default).
+ (QtWebEngine) Implemented :follow-selected.
+ New :clear-messages command to clear shown messages.
+ New ui -> keyhint-delay setting to configure the delay until
the keyhint overlay pops up.
+ New -s option for :open to force a HTTPS scheme.
+ :debug-log-filter now accepts none as an argument to clear any log
filters.
+ New --debug-flag argument which replaces --debug-exit and --pdb-postmortem
+ New tabs -> favicon-scale option to scale up/down favicons.
+ colors -> statusbar.bg/fg.private and .command.private to customize
statusbar colors for private windows.
+ New {private} field displaying [Private Mode] for
ui -> window-title-format and tabs -> title-format.
+ (QtWebEngine) Proxy support with Qt 5.7.1
(already was supported for 5.8 and newer)
* Changed:
+ To prevent elaborate phishing attacks, the Punycode version (xn--*) is now
shown in addition to the decoded version for international domain names
(IDN).
+ Starting with legacy QtWebKit now shows a warning message.
With the next release, support for it will be removed.
+ Improved qute://history page (with lazy loading)
+ Crash reports are not public anymore.
+ Comments in the config file are now placed before the individual options
instead of being before sections.
+ Messages are now hidden when clicked.
+ stdin is now closed immediately for processes spawned from qutebrowser.
+ When ui -> message-timeout is set to 0, messages are now never cleared.
+ Middle/right-clicking the blank parts of the tab bar (when vertical) now
closes the current tab.
+ The adblocker now also blocks non-GET requests (e.g. POST).
+ javascript: links can now be hinted.
+ :view-source, :tab-clone and :navigate --tab now don't open the tab as
"explicit" anymore, i.e. (with the default settings) open it next to the
active tab.
+ qute:* pages now use qute://* instead (e.g. qute://version instead of
qute:version), but the old versions are automatically redirected.
+ Texts in prompts are now selectable.
+ The default level for :messages is now info, not error
+ Trying to focus the currently focused tab with :tab-focus now focuses the
last viewed tab.
+ (QtWebEngine) With Qt 5.9, content -> cookies-store can now be set without
a restart.
+ (QtWebEngine) With Qt 5.9, better error messages are now shown for failed
downloads.
+ (QtWebEngine) The underlying Chromium version is now shown in the version
info.
+ (QtWebKit) Renderer process crashes now show an error page on Qt 5.9
or newer.
+ (QtWebKit) storage -> offline-web-application-storagegot renamed to
...-cache
+ (QtWebKit) PAC now supports SOCKS5 as type.
* Fixed:
+ Fixed crash with :download on PyQt 5.9.
+ Cloning a page without history doesn't crash anymore.
+ When a download results in a HTTP error, it now shows the error correctly
instead of crashing.
+ Pressing ctrl-c while a config error is shown works as intended now.
+ When the key config isn't writable, we now show an error instead of
crashing.
+ Fixed crash when unbinding an unbound key in the key config.
+ Fixed crash when using :debug-log-filter when --filter wasn't given
on startup.
+ Fixed crash with some invalid setting values.
+ Continuing a search after clearing it now works correctly.
+ The tabbar and completion should now be more consistently and correctly
styled with various system styles.
+ Applying styiles in qt5ct now shouldn't crash anymore.
+ The validation for colors in stylesheets is now less strict,
allowing for all valid Qt values.
+ data: URLs now aren't added to the history anymore.
+ Accidentally starting with Python 2 now shows a proper error message again
+ For some people, running some userscripts crashed - this should now be
fixed.
+ Various other rare crashes should now be fixed.
+ The settings documentation was truncated with v0.10.1 which should now be
fixed.
+ Scrolling to an anchor in a background tab now works correctly,
and javascript gets the correct window size for background tabs.
+ (QtWebEngine) Added a workaround for a black screen with some setups
+ (QtWebEngine) Starting with Nouveau graphics now shows an error message
instead of crashing in Qt.
+ (QtWebEngine) Retrying downloads now shows an error instead of crashing.
+ (QtWebEngine) Cloning a view-source tab now doesn't crash anymore.
+ (QtWebEngine) window.navigator.userAgent is now set correctly when
customizing the user agent.
+ (QtWebEngine) HTML fullscreen is now tracked for each tab separately,
which means it's not possible anymore to accidentally get stuck in
fullscreen state by closing a tab with a fullscreen video.
+ (QtWebEngine) :scroll-page with --bottom-navigate now works correctly.
+ (QtWebKit) The HTTP cache is disabled on Qt 5.7.1 and 5.8 now as it leads
to frequent crashes due to a Qt bug.
+ (QtWebKit) Fixed Crash when a PAC file returns an invalid value.
-------------------------------------------------------------------
Tue May 2 06:56:20 UTC 2017 - sor.alexei@meowr.ru
- Update to version 0.10.1:
* --qt-arg and --qt-flag can now also be used to pass arguments
to Chromium when using QtWebEngine.
* URLs are now redacted properly (username/password, and
path/query for HTTPS) when using Proxy Autoconfig with QtWebKit.
* Fix a crash when updating adblock lists with invalid UTF8-chars
in them.
* Fix the web inspector with QtWebEngine.
* Version checks when starting qutebrowser now also take the Qt
version PyQt was compiled against into account.
* Hinting a input now doesn't select existing text anymore with
QtWebKit.
* The cursor now moves to the end when input elements are
selected with QtWebEngine.
* Download suffixes like (1) are now correctly stripped with
QtWebEngine.
* Fix a crash when trying to print a tab which was closed in the
meantime.
- Add the missing python3-sip dependency (boo#1036934).
-------------------------------------------------------------------
Sun Feb 26 13:14:24 UTC 2017 - sor.alexei@meowr.ru
- Update to version 0.10.0:
* Userscripts now have a new `$QUTE_COMMANDLINE_TEXT` environment
variable, containing the current commandline contents.
* A new `ripbang` userscript to create a searchengine from a
duckduckgo bang.
* QtWebKit Reloaded (https://github.com/annulen/webkit) is now
fully supported.
* Various new functionality with the QtWebEngine backend:
+ printing support with Qt >= 5.8;
+ proxy support with Qt >= 5.8;
+ the `general -> print-element-backgrounds` option with
Qt >= 5.8;
+ the `content -> cookies-store` option;
+ the `storage -> cache-size` option;
+ the `colors -> webpage.bg` option;
+ the HTML5 fullscreen API (e.g. youtube videos);
+ `:download --mhtml`.
* A new `qute:history` URL and `:history` command to show the
browsing history.
* Open tabs are now auto-saved on each successful load and
restored in case of a crash.
* `:jseval` now has a `--file` flag so you can pass a javascript
file.
* `:session-save` now has a `--only-active-window` flag to only
save the active window.
* PyQt 5.7/Qt 5.7.1 is now required for the QtWebEngine backend.
* Scrolling with the scrollwheel while holding shift now scrolls
sideways.
* New way of clicking hints which solves various small issues.
* When yanking a mailto: link via hints, the mailto: prefix is
now stripped.
* Zoom level messages are now not stacked on top of each other
anymore.
* qutebrowser now automatically uses QtWebEngine if QtWebKit is
not available.
* :history-clear now asks for a confirmation, unless it's run
with --force.
* `input -> mouse-zoom-divider` can now be 0 to disable zooming
by mouse wheel.
* `network -> proxy` can also be set to `pac+file://...` now to
use a local proxy autoconfig file (on QtWebKit).
* Fix various bugs with Qt 5.8 and QtWebEngine:
+ a segfault when closing a window;
+ a segfault when closing a tab with a search active;
+ fix various mouse actions (like automatically entering insert
mode) not working;
+ fixed hints sometimes not working;
+ segfault when opening a URL after a QtWebEngine renderer
process crash.
* Other QtWebEngine fixes:
+ insert mode now gets entered correctly with a non-100% zoom;
+ crash reports are now re-enabled when using QtWebEngine;
+ fix crashes when closing tabs while hinting;
+ using :undo or :tab-clone with a view-source:// or chrome://
tab is now prevented, as it segfaults.
* `:enter-mode` now refuses to enter modes which can't be entered
manually (which caused crashes).
* `:record-macro` (`q`) now doesn't try to record macros for
special keys without a text.
* Fix PAC (proxy autoconfig) not working with QtWebKit.
* `:download --mhtml` now uses the new file dialogue.
* Word hints are now upper-cased correctly when
hints -> uppercase is true.
* Font validation is now more permissive in the config, allowing
e.g. "Terminus (TTF)" as font name.
* Fix starting on newer PyQt/sip versions with LibreSSL.
* When downloading files with QtWebKit, a User-Agent header is
set when possible.
* Fix showing keybindings in the :help completion.
* `:navigate prev/next` now detects `rel` attributes on `<a>`
elements, and handles multiple `rel` attributes correctly.
* Fix a crash when hinting with target `userscript` and spawning
a non-existing script.
* Lines in Jupyter notebook now trigger insert mode.
-------------------------------------------------------------------
Sat Feb 25 09:38:44 UTC 2017 - otto.tuominen@openmailbox.org
- Update to version 0.9.1 (changes since 0.8.1):
* Prevent websites from downloading files to a location outside of the download
folder with QtWebEngine.
* New dependency: qutebrowser now depends on the Qt QML module, which is
packaged separately in some distributions (as Qt Declarative/QML/Quick).
* New :rl-backward-kill-word command which does what :rl-unix-word-rubout
did before v0.8.0.
* New :rl-unix-filename-rubout command which is similar to readline's
unix-filename-rubout.
* New fonts -> completion.category setting to customize the font used for
completion category headers.
* New :debug-log-capacity command to adjust how many lines are logged into RAM
(to report bugs which are difficult to reproduce).
* New hide-unmatched-rapid-hints option to not hide hint unmatched hint labels
in rapid mode.
* New {clipboard} and {primary} replacements for the commandline which
replace the :paste command.
* New :insert-text command to insert a given text into a field on the page,
which replaces :paste-primary together with the {primary} replacement.
* New :window-only command to close all other windows.
* New prev-category and next-category arguments to :completion-item-focus
to focus the previous/next category in the completion (bound to <Ctrl-Tab>
* and <Ctrl-Shift-Tab> by default).
* New :click-element command to fake a click on a element.
* New :debug-log-filter command to change console log filtering on-the-fly.
* New :debug-log-level command to change the console loglevel on-the-fly.
* New general -> yank-ignored-url-parameters option to configure which URL
parameters (like utm_source etc.) to strip off when yanking an URL.
* Support for the HTML5 page visibility API
* New readability userscript which shows a readable version of a page (using
the readability-lxml python package)
* New cast userscript to show a video on a Google Chromecast
* New :run-with-count command which replaces the (undocumented) :count:command syntax.
* New :record-macro (q) and :run-macro (@) commands for keyboard macros.
* New ui -> hide-scrollbar setting to hide the scrollbar independently of the
user-stylesheet setting.
* New general -> default-open-dispatcher setting to configure what to open
downloads with (instead of e.g. xdg-open on Linux).
* Support for PAC (proxy autoconfig) with QtWebKit
* Hints are now drawn natively in Qt instead of using web elements. This has a
few implications for users:
The hints -> opacity setting does not exist anymore, but you can use
rgba(r, g, b, alpha) colors instead for colors -> hints.bg.
The hints -> font setting is not affected by
fonts -> web-family-fixed anymore. Thus, a transformer got added to
change Monospace to ${_monospace}.
Gradients in hint colors can now be configured by using qlineargradient
and friends instead of -webkit-gradient. The most common cases get
migrated automatically, but if you drastically changed the defaults,
you'll need to manually adjust your config.
Styling hints by styling qutehint elements in user-stylesheet was
never officially supported and does not work anymore.
Hints are now not affected by the page's stylesheet or zoom anymore.
* :bookmark-add now has a --toggle flag which deletes the bookmark if it
already exists.
* :bookmark-load now has a --delete flag which deletes the bookmark after
loading it.
* :open now also accepts quickmark names instead of URLs
* :tab-move now optionally takes an index for absolute moving.
* Commands taking either an argument or a count (like :zoom or :tab-focus)
now prefer the count instead of showing an error message.
* :open now has an --implicit argument to treat the opened tab as implicit
(i.e. to open it at the position it would be opened if it was a clicked link)
* :download-open and :prompt-open-download now have an optional cmdline
argument to pass a commandline to open the download with.
* :yank now has a position argument to select what to yank instead of using
flags.
* Replacements like {url} can now also be used in the middle of an argument.
* Consequently, commands taking another command (:later, :repeat and
:bind) now don't immediately evaluate variables.
* Tab titles in the :buffer completion now update correctly when a page's
title is changed via javascript.
* :hint now has a --mode <mode> flag to override the hint mode configured
using the hints -> mode setting.
* With new-instance-open-target set to a tab option, the tab is now opened in
the most recently focused (instead of the last opened) window. This can be
configured with the new new-instance-open-target.window setting.
* It can also be set to last-visible to show the pages in the most recently
visible window, or first-opened to use the first (oldest) available window.
* Word hints now are more clever about getting the element text from some elements.
* Completions for :help and :bind now also show hidden commands
* The :buffer completion now also filters using the first column (id).
* :undo has been improved to reopen tabs at the position they were closed.
* :navigate now takes a count for up/increment/decrement.
* The hints -> auto-follow setting now can be set to
always/full-match/unique-match/never to more precisely control when
hints should be followed automatically.
* Counts can now be used with special keybindings (e.g. with modifiers).
This was already implemented for v0.7.0 originally, but got reverted because
it caused some issues and then never re-applied.
* Sending a command to an existing instance (via "qutebrowser :reload") now
doesn't mark it as urgent anymore.
* tabs -> title-format now treats an empty string as valid.
* Bindings for :, / and ? are now configured explicitly and not hardcoded
anymore.
* The completion -> show setting can now be set to always, auto or
never.
* :open-editor can now be used in any mode.
* Lots of improvements to and bugfixes for the QtWebEngine backend, such as
working hints. However, using qutebrowser directly from git is still advised
when using --backend webengine.
content -> javascript-can-open-windows got renamed to
javascript-can-open-windows-automatically.
* :prompt-accept now optionally accepts a value which overrides the one
entered in the input box. yes and no can be used as values for yes/no
questions.
* The new --qt-arg and --qt-flag arguments can be used to pass
arguments/flags to Qt's commandline.
* Error/warning/info messages are now shown stacked above the statusbar.
* This also added various new settings:
colors -> messages.fg.error (renamed from statusbar.fg.error)
colors -> messages.bg.error (renamed from statusbar.bg.error)
colors -> messages.border.error
colors -> messages.fg.warning (renamed from statusbar.fg.warning)
colors -> messages.bg.warning (renamed from statusbar.bg.warning)
colors -> messages.border.warning
colors -> messages.fg.info
colors -> messages.bg.info
colors -> messages.border.info
fonts -> messages.error
fonts -> messages.warning
fonts -> messages.info
* The qute:settings page now also shows option descriptions.
* qute:version and qutebrowser --version now show various important paths
* :spawn/userscripts now show a nicer error when a script wasn't found
* Various functionality now works when javascript is disabled with QtWebKit
* Various commands/settings taking left/right/previous arguments now take
prev/next/last-used to remove ambiguity.
* The ui -> user-stylesheet setting now only takes filenames, not CSS snippets
* ui -> window-title-format now has a new {backend} replacement
* :hint has a new --add-history argument to add the URL to the history for
yank/spawn targets.
* :set now cycles through values if more than one argument is given.
* :open now opens default-page without an URL even without -t/-b/-w given.
* The :paste command got deprecated as :open with {clipboard} and
{primary} can be used instead.
* The :paste-primary command got deprecated as :insert-text {primary} can
be used instead.
* The :prompt-yes and :prompt-no commands got deprecated as
:prompt-accept yes and :prompt-accept no can be used instead.
* The :yank-selected command got merged into :yank as :yank selection
and thus removed.
* The :completion-item-prev and :completion-item-next commands got merged
into a new :completion-focus {prev,next} command and thus removed.
* The ui -> hide-mouse-cursor setting since it was completely broken and
nobody seemed to care.
* The hints -> opacity setting - see the "Changed" section for details.
* The completion -> auto-open setting got merged into completion -> show and
thus removed.
* All --qt-* arguments got replaced by --qt-arg and --qt-flag and thus
removed.
* The -c/--confdir, --datadir and --cachedir arguments got removed, as
--basedir should be sufficient.
* :undo now doesn't undo tabs "closed" by :tab-detach anymore.
* Fixed an issue with hint chars not being cleared correctly when leaving hint
mode.
* :tab-detach now fails correctly when there's only one tab open.
* Various small issues with the command completion
* Fixed hang when using multiple spaces in a row with the URL completion
* qutebrowser now still starts with an incorrectly configured
$XDG_RUNTIME_DIR.
* Fixed crash when a userscript writes invalid unicode data to the FIFO
* Fixed crash when a included HTML was not found
* v0.8.3 accidentally broke compatibility with Python 3.4, which is restored with this release.
* Fixed crash when doing :<space><enter>, another corner-case introduced in v0.8.0
* Fixed :open-editor (<Ctrl-e>) on Windows
* Fixed crash when setting general -> auto-save-interval to a too big value.
* Fixed crash when using hints on Void Linux.
* Fixed compatibility with Python 3.5.2+ on Debian unstable
* Compatibility with pdfjs v1.6.210
* :bind can now be used to bind to an alias (binding by editing keys.conf
already worked before)
* The command completion now updates correctly when changing aliases
* The tabbar now displays correctly with the Adwaita Qt theme
* The default sk keybinding now sets the commandline to :bind correctly
* Fixed crash when closing a window without focusing it
* Fixed general -> private-browsing not being set correctly until a restart
(which caused e.g. local storage to be enabled).
* Fixed crash when using hints with JS disabled in some rare circumstances.
When hinting input fields (:t), also consider input elements without a type.
* Fixed crash when opening an invalid URL with a percent-encoded and a real @ in it
* Fixed default ;o and ;O bindings
* Fixed local storage not working (and possible other bugs) when using a
relative path with --basedir.
* Fixed crash when deleting a quickmark with Ctrl-D
* Fixed HTML5 video playback on Windows
* Fixed crash when using :prompt-open-download with a file with chars not
encodable with the OS' filesystem encoding (e.g. with LC_ALL=C)
* Fixed :prompt-open-download with a too long filename (< 255 bytes)
* Fixed crash when cancelling a download after doing :prompt-open-download
* Fixed crash when writing a download to disk fails with
:prompt-open-download.
* Fixed HTML5 video playback on Windows
-------------------------------------------------------------------
Sat Jul 30 15:12:32 UTC 2016 - sor.alexei@meowr.ru
- Update to version 0.8.1 (changes since 0.7.0):
* Add new ":repeat-command" command (mapped to ".") to repeat the
last command.
Note that two former default bundings conflict with that
binding, unbinding them via ":unbind .i" and ":unbind .o" is
recommended.
* Add new "qute:bookmarks" page which displays all bookmarks and
quickmarks.
* Add new ":prompt-open-download" (bound to Ctrl-X) which can be
used to open a download directly when getting the filename
prompt.
* Add new "{host}" replacement for tab- and window titles which
evaluates to the current host.
* Add new default binding ";t" for ":hint input".
* Add new variables "$QUTE_CONFIG_DIR", "$QUTE_DATA_DIR" and
"$QUTE_DOWNLOAD_DIR" available for userscripts.
* Add new option "ui" -> "status-position" to configure the
position of the status bar (top/bottom).
* Add new "--pdf <filename>" argument for ":print" WHICH can be
used to generate a PDF without a dialog.
* ":scroll-perc" now prefers a count over the argument given to
it, which means "gg" can be used with a count.
* Aliases can now use ";;" to have an alias which executed
multiple commands.
* ":edit-url" now does nothing if the URL isn't changed in the
spawned editor.
* ":bookmark-add" can now be passed a URL and title to add that
as a bookmark rather than the current page.
* New "taskadd" userscript to add a taskwarrior task annotated
with the current URL.
* ":bookmark-del" and ":quickmark-del" now delete the current
page's URL if none is given.
* Fix compatibility with PyQt 5.7.
* Fix some configuration values being lost when a config option
gets removed from qutebrowser's code.
* Fix a crash when downloading with a full drive.
* Fix using ":jump-mark" (e.g. '') when the current URL is
invalid doesn't crash anymore.
* Fix a crash when pressing enter without a command.
* Remove the ability to display status messages from webpages, as
well as the related "ui" -> "display-statusbar-messages"
setting.
* Remove the "general" -> "wrap-search" setting as searches now
always wrap.
According to a quick straw poll and prior crash logs, almost
nobody is using "wrap-search = false", and turning off wrapping
is not possible with QtWebEngine.
* Remove ":edit-url" now doesn't accept a count anymore as its
behaviour was confusing and it doesn't make much sense to add a
count.
-------------------------------------------------------------------
Sat Jun 11 09:34:07 UTC 2016 - sor.alexei@meowr.ru
- Update to version 0.7.0:
* Add new ":edit-url" command to edit the URL in an external
editor.
* Add new "network -> custom-headers" setting to send custom
headers with every request.
* Add new "{url:pretty}" commandline replacement which gets
replaced by the decoded URL.
* Add new marks to remember a scroll position.
* Add new ":jump-mark" command to jump to a mark, bound to "'".
* Add new ":set-mark" command to set a mark, bound to ```
(backtick).
* Now the "'" mark gets set when moving away (hinting link with
anchor, searching, etc.) so you can move back with "''".
* Add new "--force-color" argument to force coloured logging even
if stdout is not a terminal.
* Add new ":messages" command to show error messages.
* Add new pop-up showing possible keybinding when the first key
of a keychain is pressed. This can be turned off using
":set ui keyhint-blacklist *".
* Add new "hints -> auto-follow-timeout" setting to ignore
keypresses after following a hint when filtering in number mode.
* Add new ":history-clear "command to clear the entire history
* Add new "hints -> find-implementation" to select which
implementation (JS/Python) should be used to find hints on a
page. The javascript implementation is better, but slower.
* Change (slightly update) logo.
* ":tab-focus" can now take a negative index to focus the nth tab
counted from the right.
* ":yank" can now yank the pretty/decoded URL by adding "--pretty".
* ":navigate" now clears the URL fragment.
* ":completion-item-del" (Ctrl-D) can now be used in ":buffer"
completion to close a tab.
* Counts can now be used with special keybindings (e.g. with
modifiers).
* Various SSL ciphers are now disabled by default. With recent
Qt/OpenSSL versions those already all are disabled, but with
older versions they might not be.
* Show favicons as window icon with tabs-are-windows set.
* ":bind <key>" without a command now shows the existing binding.
* The optional colorlog dependency got removed, as qutebrowser
now displays coloured logs without it.
* URLs are now shown decoded when hovering.
* Keybindings are now shown in the command completion.
* Improved behaviour when pasting multiple lines.
* Rapid hints can now also be used for the normal hint target,
which can be useful with javascript click handlers or
checkboxes which dont actually open a new page.
* ":zoom-in" or ":zoom-out" (+/-) with a too large count now
zooms to the smallest/largest zoom instead of doing nothing.
* The commandline now accepts partially typed commands if theyre
unique.
* Number hints are now kept filtered after following a hint in
rapid mode.
* Number hints are now renumbered after filtering.
* Number hints can now be filtered with multiple space-separated
search terms.
* "hints -> scatter" is now ignored for number hints.
* Better history implementation which also stores titles. As a
consequence, URLs which redirect to another URL are now added to
the history too, marked with an -r suffix to the timestamp field.
* Fix using ":hint links spawn" with flags you can now use
things like the -v argument for ":spawn" or pass flags to the
spawned commands.
* Various fixes for hinting corner-cases where following a link
didnt work or the hint was drawn at the wrong position.
* Fix crash when downloading from an URL with SSL errors.
* Close file handles correctly when a download failed.
* Fix crash when using ";Y" (":hint links yank-primary") on a
system without primary selection.
* Dont display quit confirmation with finished downloads.
* Fix updating the tab index in the statusbar when opening a
background tab.
* Fix a crash when entering `:-- ` in the commandline.
* Fix ":debug-console" with PyQt 5.6.
* Fix qutebrowser not starting when sys.stderr is None.
* Fix a crash when cancelling a download which belongs to a MHTML
download.
* Fix rebinding of keybindings being case-sensitive.
* Fix for tab indicators getting lost when moving tabs.
* Fix handling of backspace in number hinting mode.
* Fix FileNotFoundError when starting in some cases on old Qt
versions.
* Fix sharing of cookies between tabs when "private-browsing" is
enabled.
* Toggling values with ":set" now uses lower-case values.
* Hints now work with (non-standard) links with spaces around the
URL.
* Strip off trailing spaces for history entries with no title.
-------------------------------------------------------------------
Sat May 7 07:12:54 UTC 2016 - sor.alexei@meowr.ru
- Update to version 0.6.2:
* Fix crash when using :tab-{prev,next,focus} right after closing
the last tab with last-close set to close.
* Fix crash when doing :undo in a new instance with
tabs -> last-close set to default-page.
* Fix crash when starting with --cachedir="".
* Fix crash in some circumstances when using dictionary hints.
* Fix various crashes related to PyQt 5.6.
-------------------------------------------------------------------
Thu Apr 21 07:07:37 UTC 2016 - sor.alexei@meowr.ru
- Initial Package.