Skip to content

@The-Compiler The-Compiler released this Oct 15, 2020 · 268 commits to master since this release

Note: The QtWebEngine version bundled with the Windows/macOS releases is still based on Qt 5.15.0 (like with qutebrowser v1.12.0 and
v1.13.0) rather than Qt 5.15.1 because of a Qt bug causing frequent renderer process crashes. When Qt 5.15.2 is released (planned for November 3rd, 2020), a qutebrowser v1.14.x patch release with an updated QtWebEngine will be released.

Furthermore, this release still only contains partial session support for QtWebEngine 5.15. It's still recommended to run against Qt 5.15 due to the security patches contained in it -- for most users, the added workarounds seem to work out fine. A rewritten session support will be part of qutebrowser v2.0.0, tentatively planned for the end of the year or early 2021.

Changed

  • The content.media_capture setting got split up into three more fine-grained
    settings, content.media.audio_capture, .video_capture and
    .audio_video_capture. Before this change, answering "always" to a prompt
    about e.g. audio capturing would set the content.media_capture setting,
    which would also allow the same website to capture video on a future visit.
    Now every prompt will set the appropriate setting, though existing
    content.media_capture settings in autoconfig.yml will be migrated to set
    all three settings. To review/change previously granted permissions, use
    :config-diff and e.g.
    :config-unset -u example.org content.media.video_capture.
  • The main window's (invisible) background color is now set to transparent.
    This allows using the alpha channel in statusbar/tabbar colors to get a
    partially transparent qutebrowser window on a setup which supports doing so.
  • If QtWebEngine is compiled with PipeWire support and libpipewire is
    installed, qutebrowser will now support screen sharing on Wayland. Note that
    QtWebEngine 5.15.1 is needed.
  • When :undo is used with a count, it now reopens the count-th to last tab
    instead of the last one. The depth can instead be passed as an argument,
    which is also completed.
  • The default completion.timestamp_format now also shows the time.
  • :back and :forward now take an optional index which is completed using
    the current tab's history.
  • The time a website in a tab was visited is now saved/restored in sessions.
  • When attempting to download a file to a location for which there's already a
    still-running download, a confirmation prompt is now displayed.
  • :completion-item-focus now understands next-page and prev-page with
    corresponding <PgDown> / <PgUp> default bindings.
  • When the last private window is closed, all private browsing data is now cleared.
  • When config.source(...) is used with a --config-py argument given,
    qutebrowser used to search relative files in the config basedir, leading to them
    not being found when using a shared config.py for different basedirs. Instead,
    they are now searched relative to the given config.py file.
  • navigate prev ([[) and navigate next (]]) now recognize links with
    nav-prev and nav-next classes, such as those used by the Hugo static site
    generator.
  • When tabs.favicons is disabled but tabs.tabs_are_windows is set, the
    window icon is still set to the page's favicon now.
  • The --asciidoc argument to src2asciidoc.py and build_release.py now
    only takes the path to asciidoc.py, using the current Python interpreter by
    default. To configure the Python interpreter as well, use
    --asciidoc-python path/to/python --asciidoc path/to/asciidoc.py
    instead of the former
    --asciidoc path/to/python path/to/asciidoc.py.
  • Dark mode (colors.webpage.darkmode.*) is now supported with Qt 5.15.2 (which
    is not released yet).
  • The default for the darkmode policy.images setting is now set to smart
    which fixes issues with e.g. formulas on Wikipedia.
  • The readability-js userscript now adds some CSS to improve the reader mode
    styling in various scenarios:
    • Images are now 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.
Assets 9

@The-Compiler The-Compiler released this Jul 17, 2020 · 995 commits to master since this release

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.
  • In certain situations on Windows, qutebrowser fails to find the username of
    the user launching qutebrowser (most likely due to a bug in the application
    launching it). When this happens, an error is now displayed instead of
    crashing.
  • Certain autoconfig.yml with an invalid structure could lead to crashes,
    which are now fixed.
  • Generating docs with asciidoc2html.py (e.g. via mkvenv.py) now works
    correctly without Pygments being installed system-wide.
  • Ever since Qt 5.9, when input.mouse.rocker_gestures was enabled, the
    context menu still was shown when clicking the right mouse button, thus
    preventing the rocker gestures. This is now fixed.
  • Clicking the inspector switched from existing modes (such as passthrough) to
    normal mode since v1.13.0. Now insert mode is only entered when the inspector
    is clicked in normal mode.
  • Pulseaudio now shows qutebrowser's audio streams as qutebrowser correctly,
    rather than showing them as Chromium with some Qt versions.
  • If :help was called with a deprecated command (e.g. :help :inspector),
    the help page would show despite deprecated commands not being documented.
    This now shows an error instead.
  • The qute-lastpass userscript now filters out duplicate entries with
    --merge-candidates.
Assets 9

@The-Compiler The-Compiler released this Jun 26, 2020 · 995 commits to master since this release

Deprecated

  • The :inspector command is deprecated and has been replaced by a new
    :devtools command (see below).

Removed

  • The :debug-log-level command was removed as it's replaced by the new
    logging.level.console setting.
  • The qute://plainlog special page got replaced by qute://log?plain - the
    names of those pages is considered an implementation detail, and
    :messages --plain should be used instead.

Changed

  • Changes to commands:
    • :config-write-py now adds a note about config.py files being targeted at
      advanced users.
    • :report now takes two optional arguments for bug/contact information, so
      that it can be used without the report window popping up.
    • :message now takes a --logfilter / -f argument, which is a list of
      logging categories to show.
    • :debug-log-filter now understands the full logfilter syntax.
  • Changes to settings:
    • fonts.tabs has been split into fonts.tabs.{selected,unselected} (see
      below).
    • statusbar.hide has been renamed to statusbar.show with the possible
      values being always (hide = False), never (hide = True) or
      in-mode (new, only show statusbar outside of normal mode.
    • The QtFont config type formerly used for fonts.tabs and
      fonts.debug_console is now removed and entirely replaced by Font. The
      former distinction was mainly an implementation detail, and the accepted
      values shouldn't have changed.
    • input.rocker_gestures has been renamed to input.mouse.rocker_gestures.
    • content.dns_prefetch is now enabled by default again, since the crashes
      it caused are now fixed (Qt 5.15) or worked around.
    • scrolling.bar supports a new overlay value to show an overlay
      scrollbar, which is now the default. On unsupported configurations (on Qt <
      5.11, with QtWebKit or on macOS), the value falls back to when-searching
      or never (QtWebKit).
    • url.auto_search supports a new schemeless value which always opens a
      search unless the given URL includes an explicit scheme.
  • New handling of bindings in hint mode which fixes various bugs and allows for
    single-letter keybindings in hint mode.
  • The statusbar now shows partial keychains in all modes (e.g. while hinting).
  • New t[Cc][Hh] default bindings which work similarly to the t[Ss][Hh]
    bindings for JavaScript but toggle cookie permissions.
  • The tor_identity userscript now takes the password via a -p flag and has
    a new -c flag to customize the Tor control port.
  • Small performance improvements.

Added

  • New settings:
    • logging.level.ram and logging.level.console to configure the default
      logging levels via the config.
    • fonts.tabs.selected and fonts.tabs.unselected to set the font of the
      selected tab independently from unselected tabs (e.g. to make it bold).
    • input.mouse.back_forward_buttons which can be set to false to disable
      back/forward mouse buttons.
  • New :devtools command (replacing :inspector) with various improved
    functionality:
    • The devtools can now be docked to the main window, by running
      :devtools left (wIh), bottom (wIj), top (wIk) or right
      (wIl). To show them in a new window, use :devtools window (wIw).
      Using :devtools (wi) will open them at the last used position.
    • The devtool window now has a "qutebrowser developer tools" window title.
    • When a resource is opened from the devtools, it now opens in a proper
      qutebrowser tab.
    • On Fedora, when the qt5-webengine-devtools package is missing, an error
      is now shown instead of a blank inspector window.
    • If opened as a window, the devtools are now closed properly when the
      associated tab is closed.
    • When the devtools are clicked, insert mode is entered automatically.

Fixed

  • Crash when tabs.focus_stack_size is set to -1.
  • Crash when a pdf.js file for PDF.js exists, but viewer.html does not.
  • Crash when :completion-item-yank --sel is used on a platform without
    primary selection support (e.g. Windows/macOS).
  • Crash when there's a feature permission request from Qt with an invalid URL
    (which happens due to a Qt bug with Qt 5.15 in private browsing mode).
  • Crash in rare cases where QtWebKit/QtWebEngine imports fail in unexpected
    ways.
  • Crash when something removed qutebrowser's IPC socket file and it's been
    running for 6 hours.
  • :config-write-py now works with paths starting with ~/... again.
  • New site-specific quirk for a missing globalThis in Qt <= 5.12 on Reddit
    and Spotify.
  • When ; is added to hints.chars, using hint labels containing ;; now
    works properly.
  • Hint letters outside of ASCII should now work.
  • When bindings.key_mappings is used with hints, it now works properly with
    letters outside of ASCII as well.
  • With Qt 5.15, the audible/muted indicators are not updated properly due to a
    Qt bug. This release adds a workaround so that at least the muted indicator
    is shown properly.
  • As a workaround for crashes with QtWebEngine versions between 5.12 and 5.14
    (inclusive), changing the user agent (content.headers.user_agent) exposed
    to JS now requires a restart. The corresponding HTTP header is not affected.
Assets 9

@The-Compiler The-Compiler released this Jun 1, 2020 · 1282 commits to master since this release

Removed

  • tox -e mkvenv which was deprecated in qutebrowser v1.10.0 is now
    removed. Use the mkvenv.py script instead.
  • Support for using config.bind(key, None) in config.py to unbind a
    key was deprecated in v1.8.2 and is now removed. Use
    config.unbind(key) instead.
  • :yank markdown was deprecated in v1.7.0 and is now removed. Use
    :yank inline [{title}]({url}) instead.

Added

  • New :debug-keytester command, which shows a "key tester" widget.
    Previously, that was only available as a separate application via python3 -m scripts.keytester.
  • New :config-diff command which opens the qute://configdiff page.
  • New --debug-flag log-cookies to log cookies to the debug log.
  • New colors.contextmenu.disabled.{fg,bg} settings to customize colors for
    disabled items in the context menu.
  • New line selection mode (:toggle-selection --line), bound to Shift-V in caret mode.
  • New colors.webpage.darkmode.* settings to control Chromium's dark mode.
    Note that those settings only work with QtWebEngine on Qt >= 5.14 and require
    a restart of qutebrowser.

Changed

  • Windows and macOS releases now ship Qt 5.15, which is based on Chromium
    80.0.3987.163 with security fixes up to 81.0.4044.138.
  • The content.cookies.accept setting now accepts URL patterns.
  • Tests are now included in release tarballs. Note that only running them with
    the exact dependencies listed in
    misc/requirements/requirements-tests.txt{,-raw} is supported.
  • The :tab-focus command now has completion for tabs in the current window.
  • The bindings.key_mappings setting now maps <Ctrl+I> to the tab key by default.
  • :tab-give --private now detaches a tab into a new private window.

Fixed

  • Using :open -s now only rewrites http:// in URLs to https://, not other
    schemes like qute://.
  • When an unhandled exception happens in certain parts of the code (outside of
    the main thread), qutebrowser did crash or freeze when trying to show its
    exception handler. This is now fixed.
  • :inspector now works correctly when cookies are disabled globally.
  • Added workaround for a (Gentoo?) PyQt/packaging issue related to the
    QWebEngineFindTextResult handling added in v1.11.0.
  • When entering caret selection mode (v, v) very early before a page is
    loaded, an error is now shown instead of a crash happening.
  • The workaround for session loading with Qt 5.15 now handles
    sessions.lazy_restore so that the saved page is loaded instead of the
    "stub" page with no possibility to get to the web page.
  • A site specific quirk to allow typing accented characters on Google
    Docs was active for docs.google.com, but not drive.google.com. It is
    now applied for both subdomains.
  • With older graphics hardware (OpenGL < 4.3) with Qt 5.14 on Wayland, WebGL
    causes segfaults. Now qutebrowser detects that combination and suggests to
    disable WebGL or use XWayland.
Assets 9

@The-Compiler The-Compiler released this May 7, 2020 · 1528 commits to master since this release

Security

  • CVE-2020-11054: After a certificate error was overridden by the user, qutebrowser displays the URL as yellow (colors.statusbar.url.warn.fg). However, when the affected website was subsequently loaded again, the URL was mistakenly displayed as green (colors.statusbar.url.success_https). While the user already has seen a certificate error prompt at this point (or set content.ssl_strict to false which is not recommended), this could still provide a false sense of security. This is now fixed.

Note: The original source release accidentally contained a Python virtual environment in misc/requirements/testenv as well as some other files (doc/changelog.html, doc/faq.html, misc/requirements/requirements-pyqt-5.15.txt-raw). In the post1 release, those files are deleted, with no other changes.

Assets 11

@The-Compiler The-Compiler released this Apr 27, 2020 · 1528 commits to master since this release

Added

  • New settings:
    • search.wrap which can be set to false to prevent wrapping around the page
      when searching. With QtWebEngine, Qt 5.14 or newer is required.
    • content.unknown_url_scheme_policy which allows controlling when an
      external application is opened for external links (never, from user
      interaction, always).
    • content.fullscreen.overlay_timeout to configure how long the fullscreen
      overlay should be displayed. If set to 0, no overlay is displayed.
    • hints.padding to add additional padding for hints.
    • hints.radius to set a border radius for hints (set to 3 by default).
  • New placeholders for url.searchengines values:
    • {unquoted} inserts the search term without any quoting.
    • {semiquoted} (same as {}) quotes most special characters, but slashes
      remain unquoted.
    • {quoted} (same as {} in earlier releases) also quotes slashes.

Changed

  • First adaptions to Qt 5.15, including a stop-gap measure for session loading
    not working properly with it.
  • Searching now wraps around the page by default with QtWebKit (where it didn't
    before). Set search.wrap to false to restore the old behavior.
  • The {} placeholder for search engines (the url.searchengines setting) now
    does not quote slashes anymore, but other characters typically encoded in
    URLs still get encoded. This matches the behavior of search engines in
    Chromium. To revert to the old behavior, use {quoted} instead.
  • The content.windowed_fullscreen setting got renamed to
    content.fullscreen.window.
  • Mouse-wheel scrolling is now prevented while hints are active.
  • Changes to userscripts:
    • qute-bitwarden now has an optional --totp flag which can be used
      to copy TOTP codes to clipboard (requires the pyperclip module).
    • readability-js now opens readability tabs next to the original
      tab (using the :open --related flag).
    • readability-js now displays a favicon for readability tabs.
    • password_fill now triggers a change JavaScript event after filling the
      data.
  • The dictcli.py script now shows better error messages.
  • Various improvements to the mkvenv.py script (mainly useful for development).
  • Minor performance improvements.

Deprecated

  • A warning about old Qt versions is now also shown with Qt 5.9 and 5.10, as
    support for Qt < 5.11 will be dropped in qutebrowser v2.0.

Fixed

  • unsafeWindow is now defined for Greasemonkey scripts with QtWebKit.
  • The proxied window global is now shared between different
    Greasemonkey scripts (but still separate from the page's window), to
    match the original Greasemonkey implementation.
  • The --output-messages (-m) flag added in v1.9.0 now also works correctly
    when using :spawn --userscript.
  • :version and --version now don't crash if there's an (invalid)
    /etc/os-release file which has non-comment lines without a = character.
  • Scripts in scripts/ now report errors to stderr correctly, instead of
    using stdout.
Assets 9

@The-Compiler The-Compiler released this Apr 17, 2020 · 1810 commits to master since this release

Changed

  • Windows and macOS releases now bundle Qt 5.14.2, including security fixes up
    to Chromium 80.0.3987.132.

Fixed

  • The WhatsApp workaround now also works when using WhatsApp in languages other
    than English.
  • The mkvenv.py script now also works properly on Windows.
Assets 9

@The-Compiler The-Compiler released this Feb 15, 2020 · 1810 commits to master since this release

Fixed

  • Crash when saving data fails during shutdown (which was a regression
    introduced in v1.9.0).
  • Error while reading config.py when fonts.tabs or fonts.debug_console is
    set to a value including default_size.
  • When a state file contains invalid UTF-8 data, a proper error is now
    displayed.

Changed

  • When the Qt version changes (and also on the first start of v1.10.1 on Qt
    5.14), service workers registered by websites are now deleted. This is done
    as a workaround for QtWebEngine issues causing crashes when visiting pages
    using service workers (such as Google Mail/Drive). No persistent data should
    be affected as websites can re-register their service workers, but a (single)
    backup is kept at webengine/Service Worker-bak in qutebrowser's data
    directory.
  • Better output on stdout when config errors occur.
  • The mkvenv.py now ensures the latest versions of setuptools and wheel
    are installed in the virtual environment, which should speed up installation
    and fix install issues.
  • The default for colors.statusbar.command.private.bg has been changed to a
    slightly different gray, as a workaround for a Qt issue where the cursor was
    invisible in that case.
Assets 9

@The-Compiler The-Compiler released this Feb 2, 2020 · 1810 commits to master since this release

Added

  • New colors.webpage.prefers_color_scheme_dark setting which allows forcing
    prefers-color-scheme: dark colors for websites (QtWebEngine with Qt 5.14 or
    newer).
  • New fonts.default_size setting which can be used to set a bigger font size
    for all UI fonts.

Changed

  • The fonts.monospace setting has been removed and replaced by
    fonts.default_family. The new default_family setting is improved in
    various ways:
    • It accepts a list of font families (or a single font family) rather than a
      comma-separated string. As an example, instead of
      fonts.monospace = "Courier, Monaco", use
      fonts.default_family = ["Courier", "Monaco"].
    • Since a list is now accepted as value, no quoting of font names with spaces
      is required anymore. As an example, instead of
      fonts.monospace = '"xos4 Terminus"', use
      fonts.default_family = 'xos4 Terminus'.
    • It is now empty by default rather than having a long list of font names in
      the default config. When the value is empty, the system's default
      monospaced font is used.
  • If monospace is now used in a font value, it's used literally and not
    replaced anymore. Instead, default_family is replaced as explained above.
  • The default content.headers.accept_language value now adds a ;q=0.9
    classifier which should make the value sent more in-line with what other
    browsers do.
  • The qute-pass userscript now has a new --mode gopass switch which uses
    gopass rather than pass.
  • The tox -e mkvenv (or mkvenv-pypi) way of installing qutebrowser is now
    replaced by a mkvenv.py script. See the updated
    link:install{outfilesuffix}#tox[install instructions] for details.
  • macOS and Windows releases now ship with Qt/QtWebEngine 5.14.1
    • Based on Chromium 77.0.3865.129 with security fixes up to Chromium 79.0.3945.117.
    • Sandboxing is now enabled on Windows.
    • Monospace fonts are now used when a website requests them on macOS 10.15.
    • Web notifications are now supported.

Fixed

  • When quitting qutebrowser, components are now cleaned up differently. This
    should fix certain (rare) segmentation faults and exceptions when quitting,
    especially with the new exit scheme introduced in in PyQt5 5.13.1.
  • Added a workaround for per-domain settings (e.g. a JavaScript whitelist) not
    being applied in some scenarios with Qt 5.13 and above.
  • Added additional site-specific quirk for WhatsApp Web.
  • The qute-pass userscript now works correctly when a PASSWORD_STORE_DIR
    ending with a trailing slash is given.
Assets 9

@The-Compiler The-Compiler released this Jan 8, 2020 · 1932 commits to master since this release

Added

  • Initial support for Qt 5.14.
  • New content.site_specific_quirks setting which enables workarounds for
    websites with broken user agent parsing (enabled by default, see the "Fixed"
    section for fixed websites).
  • New qt.force_platformtheme setting to force Qt to use a given platform
    theme.
  • New tabs.tooltips setting which can be used to disable hover tooltips for
    tabs.
  • New settings to configure the appearance of context menus:
    • fonts.contextmenu
    • colors.contextmenu.menu.bg
    • colors.contextmenu.menu.fg
    • colors.contextmenu.selected.bg
    • colors.contextmenu.selected.fg

Changed

  • The macOS binaries now require macOS 10.13 High Sierra or newer. Support for
    macOS 10.12 Sierra has been dropped.
  • The content.headers.user_agent setting now is a format string with the
    default value resembling the behavior of it being set to null before.
    This slightly changes the sent user agent for QtWebKit: Instead of mentioning
    qutebrowser and its version it now mentions the Qt version.
  • The qute-pass userscript now has a new --extra-url-suffixes (-s)
    argument which passes extra URL suffixes to the tldextract library.
  • A stack is now used for :tab-focus last rather than just saving one tab.
    Additionally, :tab-focus now understands stack-prev and stack-next
    arguments to traverse that stack.
  • :hint now has a new right-click target which allows right-clicking
    elements via hints.
  • The Terminus font has been removed from the default monospace fonts since it
    caused trouble with HighDPI setups. To get it back, add either
    "xos4 Terminus" or Terminus (depending on fontconfig version) to the
    beginning of the fonts.monospace setting.
  • As a workaround for a Qt bug causing a segfault, desktop sharing is now
    automatically rejected on Qt versions before 5.13.2. Note that screen sharing
    still won't work on Linux before Qt 5.14.
  • Comment lines in quickmarks/bookmarks files are now ignored. However, note that
    qutebrowser will overwrite those files if bookmark/quickmark commands are used.
  • Reopening PDF.js pages from e.g. a session file will now re-download and
    display those PDFs.
  • Improved behavior when using :open-download in a sandboxed environment (KDE
    Flatpak).
  • qutebrowser now enables the new PyQt exit scheme, which should result in
    things being cleaned up more properly (e.g. cookies being saved even without
    a timeout) on PyQt 5.13.1 and newer.
  • The :spawn command has a new -m / --output-messages argument which
    shows qutebrowser messages based on a command's standard output/error.
  • Improved insert mode detection for some CodeMirror usages (e.g. in
    JupyterLab and Jupyter Notebook).
  • If JavaScript is disabled globally, file://* now doesn't automatically have
    it enabled anymore. Run :set -u file://* content.javascript.enabled true to
    restore the previous behavior.
  • Settings with URL patterns can now be used to affect the behavior of the
    QtWebEngine inspector. Note that the underlying URL is chrome-devtools://*
    from Qt 5.11 to Qt 5.13, but devtools://* with Qt 5.14.
  • Improvements when tabs.tabs_are_windows is set:
    • Using :tab-take and :tab-give now shows an error, as the effect of
      doing so would be equal to :tab-clone.
    • The :buffer completion doesn't show any window sections anymore, only a
      flat list of tabs.
  • Improved parsing in some corner cases for the QtFont type (used for
    fonts.tabs and fonts.debug_console).
  • Performance improvements for the following areas:
    • Adding settings with URL patterns
    • Matching of settings using URL patterns

Fixed

  • Downloads (e.g. via :download) now see the same user agent header as
    webpages, which fixes cases where overly restrictive servers/WAFs closed the
    connection before.
  • dictcli.py now works correctly on Windows again.
  • The logic for :restart has been revisited, which should fix issues with
    relative basedirs.
  • Remaining issues related to Python 3.8 are now fixed (mostly warnings,
    especially on QtWebKit).
  • Workaround for a Qt bug where a page never finishes loading with a
    non-overridable TLS error (e.g. due to HSTS).
  • The qute://configdiff page now doesn't show built-in settings (e.g.
    javascript being enabled for qute:// and chrome:// pages) anymore.
  • The qute-lastpass userscript now stops prompting for passwords when
    cancelling the password input.
  • The tab hover text now shows ampersands (&) correctly.
  • With QtWebEngine and Qt >= 5.11, the inspector now shows its icons correctly
    even if loading of images is disabled via the content.images setting.
  • Entering a very long string (over 50k characters) in the completion used to
    crash, now it shows an error message instead.
  • Various improvements for URL/searchengine detection:
    • Strings with a dot but with characters not allowed in a URL (e.g. an
      underscore) are now not treated as URL anymore.
    • Strings like "5/8" are now not treated as IP anymore.
    • URLs with an explicit scheme and a space (%20) are correctly treated as
      URLs.
    • Mail addresses are now treated as search terms.
    • With url.open_base_url set, searching for a search engine name now works.
    • url.open_base_url = True together with url.auto_search = 'never' is now
      handled correctly.
    • Fixed crash when a search engine URL turns out to be invalid.
  • New "site specific quirks", which work around some broken websites:
    • WhatsApp Web
    • Google Accounts
    • Slack (with older QtWebEngine versions)
    • Dell.com support pages (with Qt 5.7)
    • Google Docs (fixes broken IME/compose key)
Assets 9
You can’t perform that action at this time.