All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
-
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 is dropped.
-
New dependency on the QtSql module and Qt sqlite support.
-
New dependency on ruamel.yaml; dropped PyYAML dependency.
-
The QtWebEngine backend is now used by default if available.
-
New config system which ignores the old config file.
-
The depedency on PyOpenGL (when using QtWebEngine) got removed. Note that PyQt5.QtOpenGL is still a dependency.
-
New completion engine based on sqlite, which allows to complete the entire browsing history.
-
Completely rewritten configuration system.
-
Upgrading qutebrowser with a version older than v0.4.0 still running now won’t work properly anymore.
-
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.
-
Fixed empty space being shown after tabs in the tabbar in some cases.
-
Fixed
:restart
in private browsing mode. -
Fixed printing on macOS.
-
Closing a pinned tab via mouse now also prompts for confirmation.
-
The "try again" button on error pages works correctly again.
-
:spawn -u -d is now disallowed.
-
:spawn -d shows error messages correctly now.
-
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.
-
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 acceptsnone
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]
forui -> window-title-format
andtabs -> title-format
. -
(QtWebEngine) Proxy support with Qt 5.7.1 (already was supported for 5.8 and newer)
-
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.
-
The Windows releases are redone from scratch, which means:
-
They now use the new QtWebEngine backend
-
The bundled Qt is updated from 5.5 to 5.9
-
The bundled Python is updated from 3.4 to 3.6
-
They are now generated with PyInstaller instead of cx_Freeze
-
The installer is now generated using NSIS instead of being a MSI
-
Improved
qute://history
page (with lazy loading) -
Crash reports are not public anymore.
-
Paths like
C:
are now treated as absolute paths on Windows for downloads, and invalid paths are handled properly. -
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 usequte://*
instead (e.g.qute://version
instead ofqute:version
), but the old versions are automatically redirected. -
Texts in prompts are now selectable.
-
The default level for
:messages
is nowinfo
, noterror
-
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-storage` got renamed to
...-cache
-
(QtWebKit) PAC now supports SOCKS5 as type.
-
The macOS .dmg is now built against Qt 5.9 which fixes various important issues (such as not being able to type dead keys).
-
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.
-
--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
-
Crash when updating adblock lists with invalid UTF8-chars in them
-
Fixed 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
-
Crash when trying to print a tab which was closed in the meantime
-
Crash when trying to open a file twice on Windows
-
Userscripts now have a new
$QUTE_COMMANDLINE_TEXT
environment variable, containing the current commandline contents -
New
ripbang
userscript to create a searchengine from a duckduckgo bang -
QtWebKit Reloaded (also called QtWebKit-NG) 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) with QtWebEngine
-
:download --mhtml
-
-
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 -
macOS builds are back, and built with QtWebEngine
-
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 unavailable
-
: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 topac+file://...
now to use a local proxy autoconfig file (on QtWebKit)
-
(QtWebKit) Various rarely customized settings were removed:
-
ui -> css-media-type
(defaults to desktop) -
general -> site-specific-quirks
(now always turned on) -
storage -> offline-storage-default-quota
(defaults to 5MB) -
storage -> offline-web-application-cache-quota
(defaults to no quota) -
storage -> object-cache-capacities
(default depends on disk space) -
content -> css-regions
(now always turned off) -
storage -> offline-storage-database
(merged intostorage -> local-storage
)
-
Various bugs with Qt 5.8 and QtWebEngine:
-
Segfault when closing a window
-
Segfault when closing a tab with a search active
-
Fixed 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
-
Fixed 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 -
Fixed PAC (proxy autoconfig) not working with QtWebKit
-
:download --mhtml
now uses the new file dialog -
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
-
Fixed starting on newer PyQt/sip versions with LibreSSL
-
When downloading files with QtWebKit, a User-Agent header is set when possible
-
Fixed showing of keybindings in the :help completion
-
:navigate prev/next
now detectsrel
attributes on<a>
elements, and handles multiplerel
attributes correctly -
Fixed a crash when hinting with target
userscript
and spawning a non-existing script -
Lines in Jupyter notebook now trigger insert mode
-
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’sunix-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
andnext-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 (likeutm_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 thereadability-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 theuser-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 usergba(r, g, b, alpha)
colors instead forcolors -> hints.bg
. -
The
hints -> font
setting is not affected byfonts -> web-family-fixed
anymore. Thus, a transformer got added to changeMonospace
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 inuser-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 optionalcmdline
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 thehints -> 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 newnew-instance-open-target.window
setting. It can also be set tolast-visible
to show the pages in the most recently visible window, orfirst-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 forup
/increment
/decrement
. -
The
hints -> auto-follow
setting now can be set toalways
/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 toalways
,auto
ornever
. -
: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 tojavascript-can-open-windows-automatically
. -
:prompt-accept
now optionally accepts a value which overrides the one entered in the input box.yes
andno
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 fromstatusbar.fg.error
) -
colors -> messages.bg.error
(renamed fromstatusbar.bg.error
) -
colors -> messages.border.error
-
colors -> messages.fg.warning
(renamed fromstatusbar.fg.warning
) -
colors -> messages.bg.warning
(renamed fromstatusbar.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
andqutebrowser --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 takeprev
/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 `html5 ` 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 opensdefault-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 intocompletion -> 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
-
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 editingkeys.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
-
Userscripts now can access QUTE_FIFO correctly on Windows
-
Fixed
general -> private-browsing
not being set correctly until a restart (which caused e.g. local storage to be enabled). -
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. withLC_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
:restart
deleting the basedir when it was given with--basedir
.
-
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. -
New
qute:bookmarks
page which displays all bookmarks and quickmarks. -
New
:prompt-open-download
(bound toCtrl-X
) which can be used to open a download directly when getting the filename prompt. -
New
{host}
replacement for tab- and window titles which evaluates to the current host. -
New default binding
;t
for:hint input
. -
New variables
$QUTE_CONFIG_DIR
,$QUTE_DATA_DIR
and$QUTE_DOWNLOAD_DIR
available for userscripts. -
New option
ui
→status-position
to configure the position of the status bar (top/bottom). -
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 meansgg
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.
-
Compatibility with PyQt 5.7
-
Fixed some configuration values being lost when a config option gets removed from qutebrowser’s code.
-
Fix crash when downloading with a full disk
-
Using
:jump-mark
(e.g.''
) when the current URL is invalid doesn’t crash anymore.
-
The ability to display status messages from webpages, as well as the related
ui -> display-statusbar-messages
setting. -
The
general -> wrap-search
setting as searches now always wrap. According to a quick straw poll and prior crash logs, almost nobody is usingwrap-search = false
, and turning off wrapping is not possible with QtWebEngine. -
:edit-url
now doesn’t accept a count anymore as its behavior was confusing and it doesn’t make much sense to add a count.
-
New
:edit-url
command to edit the URL in an external editor. -
New
network -> custom-headers
setting to send custom headers with every request. -
New
{url:pretty}
commandline replacement which gets replaced by the decoded URL. -
New marks to remember a scroll position:
-
New
:jump-mark
command to jump to a mark, bound to'
-
New
:set-mark
command to set a mark, bound to ```(backtick) -
The
'
mark gets set when moving away (hinting link with anchor, searching, etc.) so you can move back with''
-
New
--force-color
argument to force colored logging even if stdout is not a terminal -
New
:messages
command to show error messages -
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 *
. -
New
hints -> auto-follow-timeout
setting to ignore keypresses after following a hint when filtering in number mode. -
New
:history-clear
command to clear the entire history -
New
hints -> find-implementation
to select which implementation (JS/Python) should be used to find hints on a page. Thejavascript
implementation is better, but slower. -
New
inputs
group for:hint
to hint text input fields.
-
qutebrowser got a new (slightly updated) 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 -
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 colored logs without it. -
URLs are now shown decoded when hovering.
-
Keybindings are now shown in the command completion
-
Improved behavior 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 don’t 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 they’re 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 a
-r
suffix to the timestamp field.
-
Fixed 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 didn’t work or the hint was drawn at the wrong position.
-
Fixed crash when downloading from a URL with SSL errors
-
Close file handles correctly when a download failed
-
Fixed crash when using
;Y
(:hint links yank-primary
) on a system without primary selection -
Don’t display quit confirmation with finished downloads
-
Fixed updating the tab index in the statusbar when opening a background tab
-
Fixed a crash when entering `:-- ` in the commandline
-
Fixed
:debug-console
with PyQt 5.6 -
Fixed qutebrowser not starting when
sys.stderr
isNone
-
Fixed crash when cancelling a download which belongs to an MHTML download
-
Fixed rebinding of keybindings being case-sensitive
-
Fix for tab indicators getting lost when moving tabs
-
Fixed handling of backspace in number hinting mode
-
Fixed
FileNotFoundError
when starting in some cases on old Qt versions -
Fixed 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
-
Fixed crash when using
:tab-{prev,next,focus}
right after closing the last tab withlast-close
set toclose
. -
Fixed crash when doing
:undo
in a new instance withtabs -> last-close
set todefault-page
. -
Fixed crash when starting with --cachedir=""
-
Fixed crash in some circumstances when using dictionary hints
-
Fixed various crashes related to PyQt 5.6
-
New
:buffer
command to easily switch tabs by name. This is not bound to a key by default for existing users due to a conflict with thegt
/gT
bindings (which are now removed from the default bindings). You can bind it by hand by running:bind -f gt set-cmd-text -s :buffer
. -
New
--quiet
argument for the:debug-pyeval
command to not open a tab with the results. Note:debug-pyeval
is still only intended for debugging. -
The completion now matches each entered word separately.
-
A new command
:paste-primary
got added to paste the primary selection, and<Shift-Insert>
got added as a binding so it pastes primary rather than clipboard. -
New mode
word
forhints -> mode
which uses a dictionary and link-texts for hints instead of single characters. -
New
--all
argument for:download-cancel
to cancel all running downloads. -
New
password_fill
userscript to fill passwords using thepass
executable. -
New
current
hinting mode which forces opening hints in the current tab (even withtarget="_blank"
)
-
Pasting multiple lines via
:paste
now opens each line in a new tab. -
:navigate increment/decrement
now preserves leading zeroes in URLs. -
general -> editor
can now also handle{}
inside another argument (e.g. to openvim
viatermite
) -
Improved performance when scrolling with many tabs open.
-
Shift-Insert now also pastes primary selection for prompts.
-
:download-remove --all
got un-deprecated to provide symmetry with:download-cancel --all
. It does the same as:download-clear
. -
Improved detection of URLs/search terms when pasting multiple lines.
-
Don’t remove
qutebrowser-editor-*
temporary file if editor subprocess crashed -
Userscripts are also searched in
/usr/share/qutebrowser/userscripts
. -
Blocked hosts are now also read from a
blocked-hosts
file in the config dir (e.g.~/.config/qutebrowser/blocked-hosts
).
-
Fixed starting with -c "".
-
Fixed crash when a tab is closed twice via javascript (e.g. Dropbox authentication dialogs)
-
Fixed crash when a notification/geolocation prompt is answered after closing the tab it belongs to.
-
Fixed crash when downloading a file without any path information (e.g a magnet link).
-
Fixed crashes when opening an empty URL (e.g. via pasting).
-
Fixed validation of duplicate values in
hints -> chars
. -
Fixed crash when PDF.js was partially installed.
-
Fixed crash when XDG_DOWNLOAD_DIR was not an absolute path.
-
Fixed very long filenames when downloading
data://
-URLs. -
Fixed ugly UI fonts on Windows when Liberation Mono is installed
-
Fixed crash when unbinding key from a section which doesn’t exist in the config
-
Fixed report window after a segfault
-
Fixed some directory browser issues on Windows
-
Fixed crash when closing a window with a finished download and delayed
remove-finished-downloads
setting. -
Fixed crash when hitting
<Tab>
then<Ctrl-C>
on pages without keyboard focus. -
Fixed "Frame load interrupted by policy change" error showing up when downloading files with Qt 5.6.
-
Ability to preview PDFs using pdf.js in the browser if it’s installed. This is disabled by default and can be enabled using the
content -> pdfjs-enabled
setting. -
New setting
ui -> hide-wayland-decoration
to hide the window decoration when using wayland. -
New userscripts in
misc/userscripts
: -
open_download
to easily open a file in your downloads folder. -
view_in_mpv
to open a video in mpv and remove it from the page. -
qutedmenu
anddmenu_qutebrowser
to select URLs via dmenu -
New setting
content -> host-blocking-whitelist
to whitelist certain domains from the adblocker. -
{scroll_pos}
can now be used inui -> window-title-format
andtabs -> title-format
. -
New setting
general -> url-incdec-segments
to configure which segments of the URL should be affected by:navigate increment/decrement
. -
New
--target
argument to specify how URLs should be opened in an existing instance. -
New setting
statusbar.url.fg.success.https
to set the foreground color for the URL when a page was loaded via HTTPS. -
The scrollbar in the completion is now styled, and the following new options got added:
-
completion -> scrollbar-width
-
completion -> scrollbar-padding
-
colors -> completion.scrollbar.fg
-
colors -> completion.scrollbar.bg
-
-
New value
none
for options taking a color system so they don’t display a gradient:-
colors -> tabs.indicator.system
-
colors -> downloads.fg.system
-
colors -> downloads.bg.system
-
-
New command
:download-retry
to retry a failed download. -
New command
:download-clear
which replaces:download-remove --all
. -
:set-cmd-text
has a new--append
argument to append to the current statusbar text. -
qutebrowser now uses
~/.netrc
if available to authenticate via HTTP. -
New
:fake-key
command to send a fake keypress to a website or to qutebrowser. -
New
--mhtml
argument for:download
to download a page including all ressources as MHTML file. -
New option
tabs -> title-alignment
to change the alignment of tab titles.
-
The
colors -> tabs.bg/fg.selected
option got split intotabs.bg/fg.selected.odd/even
. -
:spawn --userscript
and:hint
with theuserscript
target now look up relative paths in~/.local/share/qutebrowser/userscripts
or$XDG_DATA_DIR
. Using a binary in$PATH
won’t work anymore with--userscript
. -
New design for error pages
-
Link filtering for hints now checks if the text is contained anywhere in the link, and matches case-insensitively.
-
The
ui -> remove-finished-downloads
option got changed to an integer and now takes a time (in milliseconds) to keep the download around after it’s finished. When set to-1
, downloads are never removed. -
The
:follow-hint
command now optionally takes the keystring of a hint to follow. -
:scroll-px
now doesn’t take floats anymore, which made little sense. -
Updated the user agent list for the
:set network user-agent
completion. -
Starting with
--debug
doesn’t logVDEBUG
messages anymore (add--loglevel VDEBUG
to get them). -
:debug-console
now hides the console if it’s already shown. -
:yank-selected
now doesn’t log the selected text anymore. -
general -> log-javascript-console
got changed from a boolean to an option taking a loglevel (none
,info
,debug
). -
:tab-move +/-
now wraps around iftabs -> wrap
istrue
. -
When a subprocess (like launched by
:spawn
) fails, its stdout/stderr is now logged to the console. -
A search engine name can now contain any non-space character, like dashes.
-
:download-remove --all
is now deprecated and:download-clear
should be used instead. -
:download <url> <destination>
is now deprecated and:download --dest <destination> <url>
should be used instead.
-
:scroll
with two pixel-arguments (deprecated in v0.3.0) -
The
:run-userscript
command (deprecated in v0.2.0) -
The
rapid
andrapid-win
targets for:hint
(deprecated in v0.2.0) -
The
:cancel-download
command (deprecated in v0.2.0) -
The
:download-page
command (deprecated in v0.2.0)
-
Fixed retrying of downloads which were started in a now closed tab.
-
Fixed displaying of web history if
web-history-max-items
is set to -1. -
Cloned tabs now don’t display favicons anymore if show-favicons is False.
-
Fixed a crash when clicking a bookmark name and pressing
Ctrl-D
. -
Fixed a crash when a website presents a very small favicon.
-
Fixed prompting for download directory when
storage -> prompt-download-directory
was unset. -
Fixed crash when using
:follow-hint
outside of hint mode. -
Fixed crash when using
:set foo bar?
with invalid section/option. -
Fixed scrolling to the very left/right with
:scroll-perc
. -
Using an external editor should now work correctly with some funny chars (U+2028/U+2029/BOM).
-
Movements in caret mode now should work correctly on macOS and Windows.
-
Fixed upgrade from earlier config versions.
-
Fixed crash when killing a running userscript.
-
Fixed characters being passed through when shifted with
forward-unbound-keys
set toauto
. -
Fixed restarting after a crash is reported.
-
Removed
.pyc
files accidentally contained in source releases.
-
Adjusted AppArmor config for the IPC changes in v0.4.0.
-
Fixed atime update frequency for IPC file.
-
Worked around a Qt issue where middle-clicking caused scrolling with a touchpad to restart at the beginning of the page.
-
The
completion -> web-history-max-items
setting is now also respected for items added after starting qutebrowser. -
Search terms are now shared between different tabs again
-
Tests (a reduced subset of them) now run correctly again when DISPLAY is not set.
-
Fixed an issue causing qutebrowser to crash with Python 3.5 as soon as an ad was blocked.
-
Fixed an issue causing qutebrowser to not start with more recent Python 3.4 versions (e.g. on Debian experimental).
-
Fixed various
PendingDeprecationWarnings
shown with Python 3.5.
-
New bookmark functionality (similar to quickmarks without a name).
-
New command
:bookmark-add
to bookmark the current page (bound toM
). -
New command
:bookmark-load
to load a bookmark (bound togb
/gB
/wB
).
-
-
New (hidden) command
:completion-item-del
(bound to<Ctrl-D>
) to delete the current item in the completion (for quickmarks/bookmarks). -
New settings
tabs -> padding
andtabs -> indicator-tabbing
to control the size/padding of the tabbar. -
New setting
ui -> statusbar-padding
to control the size/padding of the status bar. -
New setting
network -> referer-header
to configure when the referer should be sent (by default it’s only sent while on the same domain). -
New setting
tabs -> show
which supersedes the oldtabs -> hide-*
options and has an additionalswitching
option which shows tab while switching them. There’s also a newshow-switching
option to configure the timeout. -
New setting
storage -> remember-download-directory
to remember the last used download directory. -
New setting
storage -> prompt-download-directory
to download all downloads without asking. -
Rapid hinting is now also possible for downloads.
-
Directory browsing via
file://
is now supported.
-
Some developer scripts got moved to
scripts/dev/
-
When downloading to a FIFO or special file, a confirmation is displayed as this might cause qutebrowser to hang.
-
The
:yank-selected
command now works in all modes instead of just caret mode and is not hidden anymore. -
minimal_webkit_testbrowser.py
now has a--webengine
switch to test QtWebEngine if it’s installed. -
The column width percentages for the completion view now depend on the completion model.
-
The values for
tabs -> position
andui -> downloads-position
got changed fromnorth
/south
/west/`east
totop
/bottom
/left
/right
. Existing configs should be adjusted automatically. -
:tab-focus
/gt
now behaves like:tab-next
if no count/index is given. -
The completion widget doesn’t show a border anymore.
-
The tabbar doesn’t display ugly arrows anymore if there isn’t enough space for all tabs.
-
Some insignificant Qt warnings which were printed on macOS are now hidden.
-
Better support for Qt 5.5 and Python 3.5.
-
Fixed a bug where cookies were saved despite qutebrowser being started in private browsing mode.
-
The local socket used for inter-process communication (opening new instances) is now ensured to only be accessible by the user on all operating systems.
-
Various corner cases for inter-process communication issues got fixed.
-
link_pyqt.py
now should work better on untested distributions. -
Fixed various corner-cases with crashes when reading invalid config values and the history file.
-
Fixed various corner-cases when setting text via an external editor.
-
Fixed potential crash when hinting a text field.
-
Fixed entering of insert mode when certain disabled text fields were clicked.
-
Fixed a crash when using
:set
with-p
and!
(invert value) -
Downloads with unknown size are now handled correctly.
-
:navigate increment/decrement
(<Ctrl-A>
/<Ctrl-X>
) now handles some corner-cases better. -
Fixed a bug where the completion got affected by another window’s completion if it was open in both windows.
-
Fixed a performance issue with large histories when opening previously unvisited websites.
-
The progress bar now doesn’t cause the statusbar to change it’s height anymore.
-
~
is now always expanded when spawning a script. -
Fixed various corner cases when opening links in an existing instance.
-
Fixed a race-condition causing an exception when starting qutebrowser.
-
New commands
:message-info
,:message-error
and:message-warning
to show messages in the statusbar, e.g. from a userscript. -
New command
:scroll-px
which replaces:scroll
for pixel-exact scrolling. -
New command
:jseval
to run a javascript snippet on the current page. -
New (hidden) command
:follow-selected
(bound toEnter
/Ctrl-Enter
by default) to follow the link which is currently selected (e.g. after searching via/
). -
New (hidden) command
:clear-keychain
to clear a partially entered keychain (bound to<Escape>
by default, in addition to clearing search). -
New setting
ui -> smooth-scrolling
. -
New setting
content -> webgl
to enable/disable WebGL. -
New setting
content -> css-regions
to enable/disable support for CSS Regions. -
New setting
content -> hyperlink-auditing
to enable/disable support for hyperlink auditing. -
New setting
tabs -> mousewheel-tab-switching
to control mousewheel behavior on the tab bar. -
New arguments
--datadir
and--cachedir
to set the data/cache location. -
New arguments
--basedir
and--temp-basedir
(intended for debugging) to set a different base directory for all data, which allows multiple invocations. -
New argument
--no-err-windows
to suppress all error windows. -
New arguments
--top-navigate
and--bottom-navigate
(-t
/-b
) for:scroll-page
to specify a navigation action (e.g. automatically go to the next page when arriving at the bottom). -
New flag
-d
/--detach
for:spawn
to detach the spawned process so it’s not closed when qutebrowser is. -
New flag
-v
/--verbose
for:spawn
to print informations when the process started/exited successfully. -
Many new color settings (foreground setting for every background setting).
-
New setting
ui -> modal-js-dialog
to use the standard modal dialogs for javascript questions instead of using the statusbar. -
New setting
colors -> webpage.bg
to set the background color to use for websites which don’t set one. -
New setting
completion -> auto-open
to only open the completion when tab is pressed (if set to false). -
New visual/caret mode (bound to
v
) to select text by keyboard. -
There are now some example userscripts in
misc/userscripts
. -
Support for Qt 5.5 and tox 2.0
-
Breaking change for userscripts:
QUTE_HTML
andQUTE_TEXT
for userscripts now don’t store the contents directly, and instead contain a filename. -
The
content -> geolocation
andnotifications
settings now support atrue
value to always allow those. However, this is not recommended. -
New bindings
<Ctrl-R>
(rapid),<Ctrl-F>
(foreground) and<Ctrl-B>
(background) to switch hint modes while hinting. -
<Ctrl-M>
and numpad-enter are now bound by default for bindings where<Return>
was bound. -
:hint tab
andF
now respect thebackground-tabs
setting. To enforce a foreground tab (whatF
did before), use:hint tab-fg
or;f
. -
:scroll
now takes a direction argument (up
/down
/left
/right
/top
/bottom
/page-up
/page-down
) instead of two pixel arguments (dx
/dy
). The old form still works but is deprecated. -
The
ui -> user-stylesheet
setting now also takes file paths relative to the config directory. -
The
content -> cookies-accept
setting now has newno-3rdparty
(default) andno-unknown-3rdparty
values to block third-party cookies. Thedefault
value got renamed toall
. -
Improved startup time by reading the webpage history while qutebrowser is open.
-
The way
:spawn
splits its commandline has been changed slightly to allow commands with flags. -
The default for the
new-instance-open-target
setting has been changed totab
. -
Sessions now store zoom/scroll-position separately for each entry.
-
The
--no-crash-dialog
argument which was intended for debugging only was removed as it’s replaced by--no-err-windows
which suppresses all error windows. -
Support for Qt installations without SSL support was dropped.
-
Scrolling should now work more reliably on some pages where arrow keys worked but
hjkl
didn’t. -
Small improvements when checking if an input is a URL or not.
-
Fixed wrong cursor position when completing the first item in the completion.
-
Fixed exception when using search engines with {foo} in their name.
-
Fixed a bug where the same title was shown for all tabs on some systems.
-
Don’t install the scripts package when installing qutebrowser.
-
Fixed searching for terms starting with a hyphen (e.g.
/-foo
) -
Proxy authentication credentials are now remembered between different tabs.
-
Fixed updating of the tab title on pages without title.
-
Fixed AssertionError when closing many windows quickly.
-
Various fixes for deprecated key bindings and auto-migrations.
-
Workaround for qutebrowser not starting when there are NUL-bytes in the history (because of a currently unknown bug).
-
Fixed handling of keybindings containing Ctrl/Meta on macOS.
-
Fixed crash when downloading a URL without filename (e.g. magnet links) via "Save as…".
-
Fixed exception when starting qutebrowser with
:set
as argument. -
Fixed horrible completion performance when the
shrink
option was set. -
Sessions now store zoom/scroll-position correctly.
-
Session support
-
new command
:session-load
to load a session. -
new command
:session-save
to save a session. -
new command
:session-delete
to delete a session. -
new setting
general -> save-session
to always save the session on quit. -
new setting
general -> session-default-name
to configure the session name to use if none is given. -
new argument
-r
/--restore
to specify a session to load. -
new argument
-R
/--override-restore
to not load a session even if one was saved.
-
-
New commands to manage downloads:
-
:download
to download a URL or the current page. -
:download-cancel
to cancel a download. -
:download-delete
to delete a download from disk. -
:download-open
to open a finished download. -
:download-remove
to remove a download from the list.:download-remove --all
or the new cd keybinding can be used to clear all finished downloads.
-
-
History completion
-
New option
completion -> timestamp-format
to set the format used to display the history timestamps. -
New option
completion -> web-history-max-items
to configure how many history items to show in the completion. -
The option
completion -> history-length
for the command history got renamed tocmd-history-max-items
.
-
-
Better save logic for the config/state:
-
Only save files if modified (e.g. don’t overwrite the config if it was edited outside of qutebrowser and nothing was changed in qutebrowser).
-
Save things (cookies, config, quickmarks, …) periodically all 15 seconds (time can be changed with the
general -> auto-save-interval
option).
-
-
Opera-like mouse rocker gestures
-
New option
input -> rocker-gestures
. When turned on, the history can be navigated back/forward by holding a mouse button and pressing the other one.
-
-
New
-f
option for:reload
to reload and bypass the cache. -
Pass more information (
QUTE_MODE
,QUTE_SELECTED_TEXT
,QUTE_SELECTED_HTML
,QUTE_USER_AGENT
,QUTE_HTML
,QUTE_TEXT
) to userscripts. -
New
--userscript
option to:spawn
(which deprecates:run-userscript
). -
Ability to toggle a value to
:set
by appending a!
to the value. -
New options to hide the tab-/statusbar:
-
tabs -> hide-always
for the tabbar -
ui -> hide-statusbar
for the statusbar
-
-
New options to configure how the tab/window titles should look:
-
tabs -> title-format
for the tabbar -
ui -> window-title-format
for the window title
-
-
HTML5 Geolocation/Notification support:
-
New option
content -> geolocation
to permanently turn the geolocation off. -
New option
content -> notifications
to permanently turn notifications off.
-
-
New options to disable javascript prompts/alerts:
-
content -> ignore-javascript-prompt
to turn off prompts. -
content -> ignore-javascript-alerts
to turn off alerts.
-
-
Two new options to customize the behavior of hints:
-
hints -> min-chars
to set minimum number of chars in hints. -
hints -> scatter
which when turned off distributes the hints sequentially (like dwb) instead of scattering their positions (like Vimium).
-
-
Make it possible to use
:open -[twb]
without url.-
New option
general -> default-page
to set the page to be opened when doing that.
-
-
New
input -> partial-timeout
option to clear partial keystrings. -
New option
completion -> download-path-suggestion
to configure what to show in the completion for downloads. -
Queue messages shown in unfocused windows and show them when the window is focused.
-
New option
ui -> message-unfocused
to disable this behavior.
-
-
New
--relaxed-config
argument which ignores unknown options. -
New
:tab-detach
command to open the current tab in a new window. -
Zooming via Ctrl-Mousewheel.
-
New option
input -> mouse-zoom-divider
to control how much the page is zoomed when rotating the wheel.
-
-
New option (
content -> host-blocking-enabled
) to enable/disable host blocking. -
New values
tab-bg
/tab-bg-silent
fornew-instance-open-target
to open a background tab. -
New
ui -> downloads-position
setting to move the downloads to the bottom. -
New
ui -> hide-mouse-cursor
option to hide the mouse cursor inside qutebrowser. -
New argument
-s
for qutebrowser to set a temporary config option. -
New argument
-p
for the:set
command to print the new value. -
New
--rapid
option to:hint
. Therapid
/rapid-win
targets are now deprecated, and--rapid
can be used as well with the targets run/hover/userscript/spawn as well. -
New
-f
argument to:bind
to overwrite the old binding. -
New
--qt-name
argument to qutebrowser which is passed to Qt to setWM_CLASS
. -
Alternating row colors in completion. This adds a new
colors -> completion.alternate-bg
option.
-
Ignore quotes with maxsplit-commands (
:open
,:quickmark-load
, etc.) and don’t quote arguments for those commands in the completions. This also means some commands needed adjustments:-
Clear search when
:search
without arguments is given. (:search ""
will now search for the literal text""
) -
Add
-s
/--space
argument to:set-cmd-text
(as:set-cmd-text "foo "
will now set the literal text"foo "
)
-
-
Ignore
;;
for splitting with some commands like:bind
. -
Add unbound (new) default keybindings to config. This also adds a new
<unbound>
special command.-
To unbind a command keybinding without binding it to a new key, you now have to bind it to
<unbound>
or it’ll be readded automatically.
-
-
If an SSL error is raised multiple times with the same error/certificate/host/scheme/port, the user is only asked once.
-
Jump to last instead of first item when pressing Shift-Tab the first time in the completion.
-
Add a fullscreen keybinding.
-
Add a
:search
command in addition to/foo
so it’s more visible and can be used from scripts. -
Various improvements to documentation, logging, and the crash reporter.
-
Expand
~
to the users home directory with:run-userscript
. -
Improve the userscript runner on Linux/macOS by using
QSocketNotifier
. -
Add luakit-like
gt
/gT
keybindings to cycle through tabs. -
Show default value for config values in the completion.
-
Clone tab icon, tab text and zoom level when cloning tabs.
-
Don’t open relative file paths with
:open
, only with commandline arguments. -
Expand environment variables in config settings which take a file path.
-
Add a list of common user agents to the user agent setting completion.
-
Move cursor to end of textboxes when hinting.
-
Don’t start searches on invalid URLs for quickmarks/startpage.
-
Various performance improvements for the completion.
-
Always open URLs given as argument in the foreground.
-
Improve various error messages.
-
Add
startpage
/default-page
values totabs -> last-close
. -
Various improvements to
:restart
- it should be more robust now and uses sessions so all state (focused tab, scroll position, etc.) gets remembered. -
Add tab index display to the statusbar.
-
Keep progress bar height fixed when the statusbar is multiline.
-
Many improvements to tests and related infrastructure:
-
init_venv.py
andrun_checks.py
have been replaced by tox. Install tox and runtox -e mkvenv
instead. -
The tests now use pytest
-
Many new tests added
-
Mac Mini buildbot to run the tests on macOS.
-
Coverage recording via coverage.py.
-
New
--pdb-postmortem argument
to drop into the pdb debugger on exceptions. -
Use hunter for line tracing instead of a selfmade solution.
-
-
The
:run-userscript
command - use:spawn --userscript
instead. -
The
rapid
andrapid-win
targets for:hint
- use the--rapid
argument to:hint
instead. -
The
:cancel-download
command - use:download-cancel
instead. -
The
:download-page
command - use:download
instead.
-
init_venv.py
andrun_checks.py
have been replaced by tox. Install tox and runtox -e mkvenv
instead..
-
Fix for cache never being used.
-
Fixed handling of key release events (e.g. for javascript) when holding a key and pressing a second one.
-
Fix handling of commands using
;;
at various places (key config, command parser,:bind
) -
Fix splitting of flags with arguments (
:bind -m
/--mode
). -
Fix bindings of special keys with lower-case modifiers (e.g.
<ctrl-x>
) -
Fix for weird search highlights when changing tabs while search is active.
-
Fix starting with
-c ""
. -
Fix removing of partial downloads when a download is cancelled via context menu.
-
Fix retrying of downloads which were started in a now closed tab.
-
Highlight text case-insensitively in completion.
-
Scroll completion to top when showing it.
-
Handle unencodable file paths in config types correctly.
-
Fix for crash when executing a delayed command (because of a shadowed keybinding) and then unfocusing the window.
-
Fix for crash when hinting on a page which doesn’t have a URL yet.
-
Fix exception when using
:set-cmd-text
with an empty argument. -
Add a timeout to pastebin HTTP replies.
-
Various other fixes for small/rare bugs.
-
The Windows builds come with Qt 5.4.1 which has some related bugfixes.
-
Improvements to CPU usage when idle.
-
Ensure there’s no size for
font-family
settings. -
Handle URLs with double-colon as search strings.
-
Adjust prompt size hint based on content.
-
Refactor websettings and save/restore defaults.
-
Various small improvements to logging.
-
Various improvements for hinting.
-
Improve parsing of
faulthandler
logs.
-
Ignore RuntimeError in
mouserelease_insertmode
. -
Hide Qt warning when aborting download reply.
-
Hide "Error while shutting down tabs" message.
-
Clear open target in
acceptNavigationRequest
. -
Fix handling of signals with deleted tabs.
-
Restore
sys.std*
inutils.fake_io
on exceptions. -
Allow font names with integers in them.
-
Fix
QIODevice
warnings when closing tabs. -
Set the
QSettings
path to a config-subdirectory. -
Add workaround for adblock-message without window.
-
Fix searching for terms starting with a slash.
-
Ignore tab key presses if they’d switch focus.
-
Various small logging improvements.
-
Don’t open relative files in
fuzzy_url
with:open
-
Various crashdialog improvements.
-
Hide adblocked iframes.
-
Handle shutdown of page with prompt correctly.
-
fuzzy_url: handle invalid URLs with autosearch off
-
Handle explicit searches with
auto-search=false
. -
Abort download override question on error/cancel.
-
Set a higher z-index for hint labels.
-
Close contextmenu when closing tab to avoid crash.
-
Fix statusbar quickly popping up as window.
-
Clean up
NetworkManager
after downloads finished. -
Fix restoring of cmd widget after an error.
-
Fix retrying of downloads after the tab is closed.
-
Fix
check_libraries()
output for Arch Linux. -
Handle all
IPCErrors
properly. -
Handle another
webelem.IsNullError
with hints. -
Handle
UnicodeDecodeError
when reading configs.
-
Uncheck sending of debug log by default when private browsing is on.
-
Add SSL info to version info.
-
Fix rare exception when a key is pressed shortly after opening a window
-
Fix exception with certain invalid URLs like
http:foo:0
-
Work around Qt bug which renders checkboxes on macOS unusable
-
Fix exception when a local files can’t be read in
:adblock-update
-
Hide 2 more Qt warnings.
-
Add
!important
to hint CSS so websites don’t override the hint look -
Make
init_venv.py
work with multiple sip.so
files. -
Fix splitting with certain commands with an empty argument
-
Fix uppercase hints.
-
Fix segfaults if another page is loaded while a prompt is open
-
Fix exception with invalid
ShellCommand
config values. -
Replace unencodable chars
-
Fix user-stylesheet setting with an empty value.
-
Set window icon and add a qutebrowser.ico file for Windows.
-
Ask the user when downloading to an already existing file.
-
Add a
network -> proxy-dns-requests
option. -
Add "Remove finished" to the download context menu
-
Open and remove clicked downloads.
-
Windows releases are now built with Qt 5.4 which brings many improvements and bugfixes.
-
Add a troubleshooting section to the FAQ.
-
Display IPC errors to the user.
-
Rewrite keymode handling to use only one mode which also fixes various bugs.
-
Save version to state config.
-
Set zoom to default instead of 100% with
:zoom
/=
. -
Adjust page zoom if default zoom changed.
-
Force tabs to be focused on
:undo
. -
Replace manual installation instructions on macOS with homebrew/macports.
-
Allow min-/maximizing of print preview on Windows.
-
Various documentation improvements.
-
Various other small improvements and cleanups.
-
Fix setting of
QWebSettings
(e.g. web fonts) with empty strings. -
Re-focus web view when leaving prompt/yesno mode.
-
Handle
:restart
correctly with Python eggs. -
Handle an invalid cwd properly.
-
Fix popping of a dead question in prompter.
-
Fix
AttributeError
on config changes on Ubuntu. -
Don’t treat things like "31c3" as IP address.
-
Handle category being
None
in Qt message handler. -
Force-include pygments in
freeze.py
. -
Fix scroll percentage not updating on some pages like twitter.
-
Encode
Content-Disposition
header name properly. -
Fix item sorting in
NeighborList
. -
Handle data being
None
in download read timer. -
Stop download read timer when reply has finished.
-
Fix handling of small/big
fuzzyval
's inNeighborList
. -
Fix crashes when entering invalid values in
qute:settings
. -
Abort questions in
NetworkManager
when destroyed. -
Fix height calculation of download view.
-
Always auto-remove adblock downloads when done.
-
Ensure the docs get included in
freeze.py
. -
Fix crash with
:zoom
.
Initial release.