[qutebrowser] qutebrowser v2.2.0 released!

Florian Bruhin me at the-compiler.org
Tue Apr 13 13:51:08 CEST 2021


Hey,

I'm happy to announce that I released qutebrowser v2.2.0 today.

The main changes to be aware of are probably:

* The new notification support (using libnotify for native
  notifications, if available)
* Backwards-incompatible changes to the content.ssl_strict option (now
  `content.tls.certificate_errors`) to (finally) make it more intuitive.

But there are other small and big changes as well - thanks to everyone
who contributed!

As usual, the full changelog is below.

Florian

Deprecated
~~~~~~~~~~

- Running qutebrowser with Qt 5.12.0 is now unsupported and logs a warning. It
  should still work - however, a workaround for issues with the Nvidia graphic
  driver was dropped. Newer Qt 5.12.x versions are still fully supported.
- The `--force` argument for `:tab-only` is deprecated, use `--pinned close`
  instead.
- Using `:tab-focus` without an argument or count is now deprecated, use
  `:tab-next` instead.

Added
~~~~~

- New dependency on the `QtDBus` module. If this requirement is an issue for you
  or your distribution, please open an issue! Note that a DBus connection at
  runtime is still optional.
- New `input.media_keys` setting which can be used to disable Chromium's
  handling of media keys.
- New `:process` command (and associated `qute://process` pages) which can be
  used to view and terminate/kill external processes spawned by qutebrowser.
- New `content.site_specific_quirks.skip` setting which can be used to disable
  individual site-specific quirks.
- New `--pinned` argument for `:tab-only`, which replaces `--force` (with
  `--pinned close`), but also can take `--pinned keep` to keep pinned tabs
  without prompting.
- New `fileselect.folder.command` which can be used with
  `fileselect.handler = external` to customize the command to use to upload
  directories (`<input type="file" webkitdirectory />` elements, which are
  non-standard but in wide use).
- New `content.notifications.presenter` setting with various new ways to show
  web notifications:
     * `auto` (default): Automatically detect the best available option
     * `qt`: Use Qt's built-in mechanism (like before this release)
     * `libnotify`: Use a libnotify-compatible notification server (i.e. native
       notifications on Linux)
     * `systray`: Use a systray icon (very similar to `qt` but without some of
       its drawbacks)
     * `messages`: Use qutebrowser messages
     * `herbe`: Use https://github.com/dudik/herbe[herbe]
- New `content.notifications.show_origin` setting, which can be used to decide
  for which notifications to show the origin (the URL the notification was sent
  from).

Changed
~~~~~~~

- The `content.ssl_strict` setting got renamed to
  `content.tls.certificate_errors`, with new values:
  * `ask`: Prompt on overridable certificate errors (`ssl_strict = 'ask'`)
  * `ask-block-thirdparty`: See below
  * `block`: Block the page load (`ssl_strict = True`)
  * `load-insecurely`: Load the page despite the error (`ssl_strict = False`)
- The new `content.tls.certificate_errors` setting now also understands the
  value `ask-block-thirdparty`, which asks for page loads but automatically blocks
  resource loads on TLS errors. This behavior is consistent with what other
  browsers do.
- The prompt text shown on certificate errors has been improved to make it
  clearer what kind of error occurred exactly.
- The `content.site_specific_quirks` setting got renamed to
  `content.site_specific_quirks.enabled`.
- The `content.notifications` option got renamed to
  `content.notifications.enabled`.
- The completion now also shows bindings starting with `set-cmd-text` in its
  third column, such as `o` for `:open`.
- When `:spawn` is used with the `-m` / `--output-messages` flag, the output now
  appears live, while the process is running.
- When a shown message replaces an existing related one (e.g. for zoom levels),
  the replacing now also works even if a different message was shown in between.
- The `.redirect(...)` method on interceptors now supports an
  `ignore_unsupported=True` argument which 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.
- QtWebEngine version detection (influencing things like dark mode settings or
  certain workarounds) now works correctly on OpenBSD.
- Certain version number formats in `/etc/os-release` caused qutebrowser to
  crash. Those are now handled correctly.
- The macOS releases now properly support Dark Mode for UI elements by setting
  `NSRequiresAquaSystemAppearance` to false.

Removed
~~~~~~~

- The `qute://spawn-output` page used by `:spawn -o` is now removed, as it's
  replaced by the new `qute://process` pages.

-- 
            me at the-compiler.org | https://www.qutebrowser.org 
       https://bruhin.software/ | https://github.com/sponsors/The-Compiler/
       GPG: 916E B0C8 FD55 A072 | https://the-compiler.org/pubkey.asc
             I love long mails! | https://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://listi.jpberlin.de/pipermail/qutebrowser/attachments/20210413/e1ffea75/attachment.asc>


More information about the qutebrowser mailing list