Skip to content

v0.9.0

Compare
Choose a tag to compare
@The-Compiler The-Compiler released this 28 Dec 22:57
· 14030 commits to main since this release

Added

  • 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

Changed

  • 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.

Deprecated

  • 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.

Removed

  • 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.

Fixed

  • :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