All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning, though minor breaking changes (such as renamed commands) can happen in minor releases.
v1.13.1 (2020-07-17)
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 latest) page when
:backwas 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.ymlwith an invalid structure could lead to crashes, which are now fixed. -
Generating docs with
asciidoc2html.py(e.g. viamkvenv.py) now works correctly without Pygments being installed system-wide. -
Ever since Qt 5.9, when
input.mouse.rocker_gestureswas 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
:helpwas 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-lastpassuserscript now filters out duplicate entries with--merge-candidates.
v1.13.0 (2020-06-26)
Deprecated
-
The
:inspectorcommand is deprecated and has been replaced by a new:devtoolscommand (see below).
Removed
-
The
:debug-log-levelcommand was removed as it’s replaced by the newlogging.level.consolesetting. -
The
qute://plainlogspecial page got replaced byqute://log?plain- the names of those pages is considered an implementation detail, and:messages --plainshould be used instead.
Changed
-
Changes to commands:
-
:config-write-pynow adds a note aboutconfig.pyfiles being targeted at advanced users. -
:reportnow takes two optional arguments for bug/contact information, so that it can be used without the report window popping up. -
:messagenow takes a--logfilter/-fargument, which is a list of logging categories to show. -
:debug-log-filternow understands the full logfilter syntax.
-
-
Changes to settings:
-
fonts.tabshas been split intofonts.tabs.{selected,unselected}(see below). -
statusbar.hidehas been renamed tostatusbar.showwith the possible values beingalways(hide = False),never(hide = True) orin-mode(new, only show statusbar outside of normal mode. -
The
QtFontconfig type formerly used forfonts.tabsandfonts.debug_consoleis now removed and entirely replaced byFont. The former distinction was mainly an implementation detail, and the accepted values shouldn’t have changed. -
input.rocker_gestureshas been renamed toinput.mouse.rocker_gestures. -
content.dns_prefetchis now enabled by default again, since the crashes it caused are now fixed (Qt 5.15) or worked around. -
scrolling.barsupports a newoverlayvalue 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 towhen-searchingornever(QtWebKit). -
url.auto_searchsupports a newschemelessvalue 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 thet[Ss][Hh]bindings for JavaScript but toggle cookie permissions. -
The
tor_identityuserscript now takes the password via a-pflag and has a new-cflag to customize the Tor control port. -
Small performance improvements.
Added
-
New settings:
-
logging.level.ramandlogging.level.consoleto configure the default logging levels via the config. -
fonts.tabs.selectedandfonts.tabs.unselectedto set the font of the selected tab independently from unselected tabs (e.g. to make it bold). -
input.mouse.back_forward_buttonswhich can be set tofalseto disable back/forward mouse buttons.
-
-
New
:devtoolscommand (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) orright(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-devtoolspackage 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_sizeis set to -1. -
Crash when a
pdf.jsfile for PDF.js exists, butviewer.htmldoes not. -
Crash when
:completion-item-yank --selis 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-pynow works with paths starting with~/...again. -
New site-specific quirk for a missing
globalThisin Qt ⇐ 5.12 on Reddit and Spotify. -
When
;is added tohints.chars, using hint labels containing;;now works properly. -
Hint letters outside of ASCII should now work.
-
When
bindings.key_mappingsis 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.
v1.12.0 (2020-06-01)
Removed
-
tox -e mkvenvwhich was deprecated in qutebrowser v1.10.0 is now removed. Use themkvenv.pyscript instead. -
Support for using
config.bind(key, None)inconfig.pyto unbind a key was deprecated in v1.8.2 and is now removed. Useconfig.unbind(key)instead. -
:yank markdownwas deprecated in v1.7.0 and is now removed. Use:yank inline [{title}]({url})instead.
Added
-
New
:debug-keytestercommand, which shows a "key tester" widget. Previously, that was only available as a separate application viapython3 -m scripts.keytester. -
New
:config-diffcommand which opens thequte://configdiffpage. -
New
--debug-flag log-cookiesto 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 toShift-Vin 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.acceptsetting 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-focuscommand now has completion for tabs in the current window. -
The
bindings.key_mappingssetting now maps<Ctrl+I>to the tab key by default. -
:tab-give --privatenow detaches a tab into a new private window.
Fixed
-
Using
:open -snow only rewriteshttp://in URLs tohttps://, not other schemes likequte://. -
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.
-
:inspectornow works correctly when cookies are disabled globally. -
Added workaround for a (Gentoo?) PyQt/packaging issue related to the
QWebEngineFindTextResulthandling 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_restoreso 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.
v1.11.1 (2020-05-07)
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 setcontent.ssl_stricttofalsewhich is not recommended), this could still provide a false sense of security. This is now fixed.
v1.11.0 (2020-04-27)
Added
-
New settings:
-
search.wrapwhich 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_policywhich allows controlling when an external application is opened for external links (never, from user interaction, always). -
content.fullscreen.overlay_timeoutto configure how long the fullscreen overlay should be displayed. If set to0, no overlay is displayed. -
hints.paddingto add additional padding for hints. -
hints.radiusto set a border radius for hints (set to3by default).
-
-
New placeholders for
url.searchenginesvalues:-
{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.wraptofalseto restore the old behavior. -
The
{}placeholder for search engines (theurl.searchenginessetting) 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_fullscreensetting got renamed tocontent.fullscreen.window. -
Mouse-wheel scrolling is now prevented while hints are active.
-
Changes to userscripts:
-
qute-bitwardennow has an optional--totpflag which can be used to copy TOTP codes to clipboard (requires thepyperclipmodule). -
readability-jsnow opens readability tabs next to the original tab (using the:open --relatedflag). -
readability-jsnow displays a favicon for readability tabs. -
password_fillnow triggers achangeJavaScript event after filling the data.
-
-
The
dictcli.pyscript now shows better error messages. -
Various improvements to the
mkvenv.pyscript (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
-
unsafeWindowis now defined for Greasemonkey scripts with QtWebKit. -
The proxied
windowglobal is now shared between different Greasemonkey scripts (but still separate from the page’swindow), to match the original Greasemonkey implementation. -
The
--output-messages(-m) flag added in v1.9.0 now also works correctly when using:spawn --userscript. -
:versionand--versionnow don’t crash if there’s an (invalid)/etc/os-releasefile which has non-comment lines without a=character. -
Scripts in
scripts/now report errors tostderrcorrectly, instead of usingstdout.
v1.10.2 (2020-04-17)
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.pyscript now also works properly on Windows.
v1.10.1 (2020-02-15)
Fixed
-
Crash when saving data fails during shutdown (which was a regression introduced in v1.9.0).
-
Error while reading config.py when
fonts.tabsorfonts.debug_consoleis set to a value includingdefault_size. -
When a
statefile 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-bakin qutebrowser’s data directory. -
Better output on stdout when config errors occur.
-
The
mkvenv.pynow ensures the latest versions ofsetuptoolsandwheelare installed in the virtual environment, which should speed up installation and fix install issues. -
The default for
colors.statusbar.command.private.bghas been changed to a slightly different gray, as a workaround for a Qt issue where the cursor was invisible in that case.
v1.10.0 (2020-02-02)
Added
-
New
colors.webpage.prefers_color_scheme_darksetting which allows forcingprefers-color-scheme: darkcolors for websites (QtWebEngine with Qt 5.14 or newer). -
New
fonts.default_sizesetting which can be used to set a bigger font size for all UI fonts.
Changed
-
The
fonts.monospacesetting has been removed and replaced byfonts.default_family. The newdefault_familysetting 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", usefonts.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"', usefonts.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
monospaceis now used in a font value, it’s used literally and not replaced anymore. Instead,default_familyis replaced as explained above. -
The default
content.headers.accept_languagevalue now adds a;q=0.9classifier which should make the value sent more in-line with what other browsers do. -
The
qute-passuserscript now has a new--mode gopassswitch which uses gopass rather than pass. -
The
tox -e mkvenv(ormkvenv-pypi) way of installing qutebrowser is now replaced by amkvenv.pyscript. See the updated 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-passuserscript now works correctly when aPASSWORD_STORE_DIRending with a trailing slash is given.
v1.9.0 (2020-01-08)
Added
-
Initial support for Qt 5.14.
-
New
content.site_specific_quirkssetting which enables workarounds for websites with broken user agent parsing (enabled by default, see the "Fixed" section for fixed websites). -
New
qt.force_platformthemesetting to force Qt to use a given platform theme. -
New
tabs.tooltipssetting 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_agentsetting 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-passuserscript 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 lastrather than just saving one tab. Additionally,:tab-focusnow understandsstack-prevandstack-nextarguments to traverse that stack. -
:hintnow has a newright-clicktarget 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"orTerminus(depending on fontconfig version) to the beginning of thefonts.monospacesetting. -
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-downloadin 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
:spawncommand has a new-m/--output-messagesargument 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 trueto 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, butdevtools://*with Qt 5.14. -
Improvements when
tabs.tabs_are_windowsis set:-
Using
:tab-takeand:tab-givenow shows an error, as the effect of doing so would be equal to:tab-clone. -
The
:buffercompletion doesn’t show any window sections anymore, only a flat list of tabs.
-
-
Improved parsing in some corner cases for the
QtFonttype (used forfonts.tabsandfonts.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.pynow works correctly on Windows again. -
The logic for
:restarthas 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://configdiffpage now doesn’t show built-in settings (e.g. javascript being enabled forqute://andchrome://pages) anymore. -
The
qute-lastpassuserscript 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.imagessetting. -
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_urlset, searching for a search engine name now works. -
url.open_base_url = Truetogether withurl.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)
-
v1.8.3 (2019-12-05)
Fixed
-
Segmentation fault introduced in v1.8.2 when a tab gets closed immediately after it has finished loading (e.g. with certain login flows).
v1.8.2 (2019-11-22)
Changed
-
Windows/macOS releases now ship with Qt 5.12.6. This includes security fixes up to Chromium 77.0.3865.120 plus a security fix for CVE-2019-13720 from Chromium 78.
Fixed
-
Unbinding keys via
config.bind(key, None)accidentally worked in v1.7.0 but raises an exception in v1.8.0. It now works again, but is deprecated and shows an error. Note that:config-py-writedid write such invalid lines before v1.8.0, so existing config files might need adjustments. -
The
readability-jsuserscript now handles encodings correctly (which it didn’t before for some websites). -
<Shift-Insert> can now be used to paste text starting with a hyphen.
-
Following hints via the number keypad now works properly again.
-
Errors while reading the state file are now displayed instead of causing a crash.
-
Crash when using
:debug-log-levelwithout a console attached. -
Downloads are now hidden properly when the browser is in fullscreen mode.
-
Crash when setting
colors.webpage.bgto an empty value with QtWebKit. -
Crash when the history database file is not a proper sqlite database.
-
Workaround for missing/broken error pages on Debian.
-
A deprecation warning (caused by pywin32) about the imp module on Windows is now hidden.
v1.8.1 (2019-09-27)
Changed
-
No code changes - this release only repackages the Windows/macOS releases due to issues with the v1.8.0 release.
-
Updated dependencies for Windows/macOS releases:
-
macOS and Windows releases now ship with Qt/QtWebEngine 5.12.5. Those are based on Chromium 69.0.3497.128 with security fixes up to Chromium 76.0.3809.87.
-
Qt 5.13 couldn’t be used yet due to various bugs in Qt 5.13.0 and .1.
-
v1.8.0 (2019-09-25)
Added
-
New userscripts:
-
readability-jswhich uses Mozilla’s node.js readability library. -
qute-bitwardenwhich integrates the Bitwarden CLI.
-
Changed
-
The statusbar text for passthrough mode now shows all configured bindings to leave the mode, not only one.
-
When
:config-sourceis used with a relative filename, the file is now searched in the config directory instead of the current working directory. -
HTML5 inputs with date/time types now enter insert mode when selected.
-
dictcli.pynow shows where dictionaries are installed to and complains when running it as root if doing so would result in a wrong installation path. -
The Makefile now can also run
setup.py buildwhen invoked without a target. -
Changes to userscripts:
-
qute-pass: Don’t run
passif only a username is requested. -
qute-pass: Support private domains like
myrouter.local. -
readability: Improved CSS styling.
-
-
Performance improvements in various areas:
-
Loading config files
-
Typing without any completion matches
-
General keyboard handling
-
Scrolling
-
-
:versionnow shows details about the loaded autoconfig.yml/config.py. -
Hosts are now additionally looked up including their ports in netrc files.
-
With Qt 5.10 or newer, qutebrowser now doesn’t force software rendering with Nouveau drivers anymore. However, QtWebEngine/Chromium still do so.
-
The XSS Auditor is now disabled by default (
content.xss_auditing=false). This reflects a similar change in Chromium, see their XSS Auditor Design Document for details.
Fixed
-
:config-write-pynow correctly writesconfig.unbind(...)lines (instead ofconfig.bind(..., None)) when unbinding a default keybinding. -
Prevent repeat keyup events for JavaScript when a key is held down.
-
The Makefile now rebuilds the manpage correctly.
-
~/.config/qutebrowser/blocked-hostscan now also contain /etc/hosts-like lines, not just simple hostnames. -
Restored compatibility with Jinja2 2.8 (e.g. used on Debian Stretch or Ubuntu 16.04 LTS).
-
Fixed implicit type conversion warning with Python 3.8.
-
The desktop file now sets
StartupWMClasscorrectly, so the qutebrowser icon is no longer shown twice in the Gnome dock when pinned. -
Bindings involving keys which need the AltGr key now work properly.
-
Fixed crash (caused by a Qt bug) when typing characters above the Unicode BMP (such as certain emoji or CJK characters).
-
dictcli.pynow works properly again. -
Shift can now be used while typing hint keystrings, which e.g. allows typing number hints on French keyboards.
-
With rapid hinting in number mode, backspace now edits the filter text after following a hint.
-
A certain type of error ("locking protocol") while initializing sqlite now isn’t handled as crash anymore.
-
Crash when showing a permission request in certain scenarios.
Removed
-
At least Python 3.5.2 is now required to run qutebrowser, support for 3.5.0 and 3.5.1 was dropped.
v1.7.0 (2019-07-18)
Added
-
New settings:
-
colors.tabs.pinned.*to control colors of pinned tabs. -
hints.leave_on_loadwhich allows disabling leaving of hint mode when a new page is loaded. -
colors.completion.item.selected.match.fgwhich allows configuring the text color for the matching text in the currently selected completion item. -
tabs.undo_stack_sizeto limit how many undo entries are kept for closed tabs.
-
-
New commands:
-
:reverse-selection(oin caret mode) to swap the stationary/moving ends of a selection.
-
-
New commandline replacements:
-
{url:domain},{url:auth},{url:scheme},{url:username},{url:password},{url:host},{url:port},{url:path},{url:query}for the respective parts of the current URL. -
{title}for the current page title.
-
-
The
{title}field intabs.title.format,tabs.title.format_pinnedandwindow.title_formatgot renamed to{current_title}(mirroring{current_url}) in order to not conflict with the new{title}commandline replacement. -
New
deletetarget for:hintwhich removes the hinted element from the DOM. -
New
--config-pycommandline argument to use a customconfig.pyfile. -
Qt 5.13: Support for notifications (shown via system tray).
Changed
-
Updated dependencies for Windows/macOS releases:
-
PyQt5 5.12.3 / PyQtWebEngine 5.12.1
-
Qt 5.12.4, which includes security fixes up to Chromium 74.0.3729.157
-
Python 3.7.4
-
OpenSSL 1.1.1
-
Note: This release includes Qt 5.12.4 instead of Qt 5.13.0 due to QTBUG-76913 causing frequent segfaults with Qt 5.13. After Qt 5.13.1 is released, qutebrowser v1.8.0 will be released with an updated Qt.
-
Completely revamped Windows installer which allows installing without admin permissions and allows setting qutebrowser as default browser.
-
The desktop file
qutebrowser.desktopis now renamed toorg.qutebrowser.qutebrowser.desktop. -
Pinned tabs now always show a favicon (even if the site doesn’t provide one) when shrinking.
-
Setting
downloads.location.directorynow changes the directory displayed in the download prompt even ifdownloads.location.rememberis set. -
The
yankcommand gained a newinlineargument, which allows to e.g. use:yank inline [{title}]({url}). -
Duplicate consecutive history entries with the same URL are now ignored.
-
More detailed error messages when spawning a process failed.
-
The
content.pdfjssetting now supports domain patterns. -
Improved process status output with
:spawn -o. -
The
colors.tabs.bar.bgsetting is now of typeQssColorand thus supports gradients. -
The
:fullscreencommand now understands a new--enterflag which causes it to always enter fullscreen instead of toggling the current state. -
--debug-flag stackis now needed to show stack traces on renderer process crashes. -
--debug-flag chromiumcan be used to easily turn on verbose Chromium logging. -
For runtime data (such as the IPC socket), a proper runtime path is now used on BSD; only macOS/Windows continue to use the temporary directory.
-
PDF.js is now also searched in
/app/share/pdf.js/(for Flatpak) -
Permission prompts can now be answered with
Y(:prompt-accept --save yes) andN(:prompt-accept --save no) to save the answer as a per-domain setting. -
content.dns_prefetchis now turned off by default, as it causes crashes inside QtWebEngine. -
The (still unofficial) interceptor plugin API now contains
resource_typefor a request and allows redirecting requests. -
:bookmark-removenow shows a message for consistency with:bookmark-add. -
Very early segfaults are now also caught by the crash handler.
-
The appdata XML now contains proper release information and an (empty) OARS content rating.
-
Improved Linux distribution detection.
-
Qt 5.13: Request filtering now happens in the UI rather than IO thread.
-
Qt 5.13: Support for PDFium (Chromium’s PDF viewer) is disabled for now so that PDFs can still be downloaded (or shown with PDF.js) properly.
-
Various performance improvements (e.g. for showing hints or the :open completion).
Deprecated
-
:yank markdowngot deprecated, as:yank inline [{title}]({url})can now be used instead.
Fixed
-
Various QtWebEngine load signals are now handled differently, which should fix issues with insert mode being left while typing on sites like Google Translate.
-
Race condition causing a colored statusbar in normal mode when entering/exiting caret mode quickly.
-
Using
100%for a hue in ahsv(...)config value now corresponds to 359 (rather than 255), matching the fixed behavior in Qt 5.13. -
Chaining commands with
;;used to abort with some failing commands. It now runs the second command no matter whether the first one succeeded or not. -
Handling of profiles and private windows (and resulting crashes with Qt 5.12.2).
-
Fixes for corner-cases when using
:navigate increment/decrement. -
The type for the
colors.hints.match.fgsetting was changed toQtColor. Gradients were never supported for this setting, and with this change, values likergb(0, 0, 0)now work as well. -
Permission prompts now show a properly normalized URL with QtWebKit.
-
Crash on start when PyQt was built without SSL support with Qt >= 5.12.
-
Minor memory leaks.
v1.6.3 (2019-06-18)
Fixed
-
Crash when hinting and changing/closing the tab before hints are displayed.
-
Crash on redirects with Qt 5.13.
-
Hide bogus
AA_ShareOpenGLContextswarning with Qt 5.12.4. -
Workaround for renderer process crashes with Qt 5.12.4. If you’re unable to update, you can remove
~/.cache/qutebrowserfor the same result.
v1.6.2 (2019-05-06)
Changed
-
Windows/macOS releases now ship with Qt 5.12.3, which includes security fixes up to Chromium 73.0.3683.75.
Fixed
-
Crash when SQL errors occur while using the completion.
-
Crash when cancelling a download prompt started in an already closed window.
-
Crash when many prompts are opened at the same time.
-
Running without Qt installed now displays a proper error again.
-
High CPU usage when using the keyhint widget with a low delay.
-
Crash with Qt >= 5.14 on redirects.
v1.6.1 (2019-03-20)
Changed
-
Windows/macOS releases now ship with Qt 5.12.2, which includes security fixes up to Chromium 72.0.3626.121 (including CVE-2019-5786 which is known to be exploited in the wild).
Fixed
-
Crash when using
:config-{dict,list}-{add,remove}with an invalid setting. -
Functionality like hinting on pages with an element with ID
_qutebrowser(such as qutebrowser.org) on Qt 5.12. -
The .desktop file in v1.6.0 was missing the "Actions" key, which is now fixed.
-
The SVG icon now has a size of 256x256px set to comply with freedesktop standards.
-
Setting
colors.statusbar.*.bgto a gradient now has the expected effect of the gradient spanning the entire statusbar.
v1.6.0 (2019-02-25)
Added
-
New settings:
-
tabs.new_position.stackingwhich controls whether new tabs opened from a page should stack on each other or not. -
completion.open_categorieswhich allows to configure which categories are shown in the:opencompletion, and how they are ordered. -
tabs.pinned.frozento allow/deny navigating in pinned tabs. -
hints.selectorswhich allows to configure what CSS selectors are used for hints, and also allows adding custom hint groups. -
input.insert_mode.leave_on_loadto turn off leaving insert mode when a new page is loaded.
-
-
New config manipulation commands:
-
:config-dict-addand:config-list-addto a new element to a dict/list setting. -
:config-dict-removeand:config-list-removeto remove an element from a dict/list setting.
-
-
New
:yank markdownfeature which yanks the current URL and title in markdown format. -
Support for new QtWebEngine features in Qt 5.12:
-
Basic support for client certificates. Selecting the certificate to use when there are multiple matching certificates isn’t implemented yet.
-
Support for DNS prefetching (plus new
content.dns_prefetchsetting).
-
Changed
-
Various changes to the Windows and macOS builds:
-
Bundling Qt 5.12.1, based on Chromium 69.0.3497.128 with security fixes up to 71.0.3578.94.
-
Windows: A 32-bit build is available again.
-
Windows: The builds now bundle the Universal CRT DLLs, causing them to work on earlier versions of Windows 10.
-
macOS: Support for OS X 10.11 El Capitan was dropped, requiring macOS 10.12 Sierra or newer.
-
macOS: The IPC socket path used to communicate with existing instances changed due to changes in Qt 5.12. Please make sure to quit qutebrowser before upgrading.
-
-
:qnow closes the current window instead of quitting qutebrowser completely (:close), while:qaquits (:quit). The behavior of:wqremains unchanged (:quit --save), as closing a window while saving the session doesn’t make sense. -
Completion highlighting is now done differently (using
QSyntaxHighlighter), which should fix some highlighting corner-cases. -
The
QtColorconfig type now also understands colors likergb(...). -
:yanknow has a--quietoption which causes it to not display a message. -
The
:opencompletion now also shows search engines by default. -
The
content.host_blocking.enabledsetting now supports URL patterns, so the adblocker can be disabled on a given page. -
Elements with a
tabindexattribute now also get hints by default. -
Various small performance improvements for hints and the completion.
-
The Wayland check for QtWebEngine is now disabled on Qt >= 5.11.2, as those versions should work without any issues.
-
The JavaScript
consoleobject is now available in PAC files. -
PAC proxies currently don’t work properly on QtWebEngine (and never did), so an error is now shown when trying to configure a PAC proxy.
-
The metainfo file
qutebrowser.appdata.xmlis now renamed toorg.qutebrowser.qutebrowser.appdata.xml. -
The
qute-passuserscript now understands domains in gpg filenames in addition to directory names. -
The autocompletion for
content.headers.user_agentgot updated to only include the default and Chrome, as setting the UA to Firefox has various bad side-effects. -
Combining Qt 5.12 with an older PyQt can lead to issues, so a warning is now shown when starting qutebrowser with that combination.
Fixed
-
Invalid world IDs now get rejected for
:jsevaland GreaseMonkey scripts. -
When websites suggest download filenames with invalid characters, those are now correctly replaced.
-
Invalid hint length calculation in certain rare cases.
-
Dragging tabs in the tab bar (which was broken in v1.5.0)
-
Using Shift-Home in command mode now works properly.
-
Workaround for a Qt bug which prevented
content.cookies.accept = no-3rdpartyfrom working properly on some pages like GMail. However, the default forcontent.cookies.acceptis stillallto be in line with what other browsers do. -
:navigatenot incrementing in anchors or queries. -
Crash when trying to use a proxy requiring authentication with QtWebKit.
-
Slashes in search terms are now percent-escaped.
-
When
scrolling.bar = Truewas set in versions before v1.5.0, this now correctly gets migrated toalwaysinstead ofwhen-searching. -
Completion highlighting now works again on Qt 5.11.3 and 5.12.1.
-
The non-standard header
X-Do-Not-Trackis no longer sent. -
PAC proxies were never correctly supported with QtWebEngine, but are now explicitly disallowed.
-
macOS: Context menus for download items now show in the correct macOS style.
-
Issues with fullscreen handling when exiting a video player.
-
Various fixes for Qt 5.12 issues:
-
A javascript error on page load was fixed.
-
window.print()works with Qt 5.12 now. -
Fixed handling of duplicate download filenames.
-
Fixed broken
qute://historypage. -
Fixed PDF.js not working properly.
-
The download button in PDF.js now works (it’s not possible to make it work with earlier Qt versions).
-
Since Greasemonkey scripts modifying the DOM fail when being run at document-start, some known-broken scripts (Iridium, userstyles.org) are now forced to run at document-end.
-
v1.5.2 (2018-10-26)
Changed
-
The
content.cookies.acceptsetting is now set toallinstead ofno-3rdpartyby default, asno-3rdpartybreaks various pages such as GMail.
v1.5.1 (2018-10-10)
Fixed
-
Flickering when opening/closing tabs (as soon as more than 10 are open) on some pages.
-
PDF.js is now bundled again with the macOS/Windows release.
-
PDF.js is now searched in the correct path (if not installed system-wide) instead of hardcoding
~/.local/share/qutebrowser. -
Improved logging for PDF.js resources which fail to load.
-
Crash when closing a tab after doing a search.
-
Tabs appearing when hidden after e.g. closing tabs.
v1.5.0 (2018-10-03)
Added
-
Rewritten PDF.js support:
-
PDF.js support and the
content.pdfjssetting are now also available with QtWebEngine. -
Opening a PDF file now doesn’t start a second request anymore.
-
Opening PDFs on https:// sites now works properly.
-
New
--pdfjsflag forprompt-open-download, so PDFs can be opened in PDF.js with<Ctrl-P>in the download prompt.
-
-
New settings:
-
content.mouse_lockto handle HTML5 pointer locking. -
completion.web_history.excludewhich hides a list of URL patterns from the completion. -
qt.process_modelwhich can be used to change Chromium’s process model. -
qt.low_end_device_modewhich turns on Chromium’s low-end device mode. This mode uses less RAM, but the expense of performance. -
content.webrtc_ip_handling_policy, which allows more fine-grained/restrictive control about which IPs are exposed via WebRTC. -
tabs.max_widthwhich allows to have a more "normal" look for tabs. -
content.mutewhich allows to mute pages (or all tabs) by default.
-
-
Running qutebrowser with QtWebKit or Qt < 5.9 now shows a warning (only once), as support for those is going to be removed in a future release.
-
New t[iI][hHu] default bindings (similar to
tshetc.) to toggle images. -
The qute-pass userscript now has optional OTP support.
-
When
:spawn --userscriptis called with a count, that count is now passed to userscripts as$QUTE_COUNT.
Changed
-
Windows and macOS releases now bundle Python 3.7, PyQt 5.11.3 and Qt 5.11.2. QtWebEngine includes security fixes up to Chromium 68.0.3440.75 and various other fixes.
-
Various performance improvements when many tabs are opened.
-
The
content.headers.referersetting now works on QtWebEngine. -
The
:repeatcommand now takes a count which is multiplied with the given "times" argument. -
The default keybinding to leave passthrough mode was changed from
<Ctrl-V>to<Shift-Escape>, which makes pasting from the clipboard easier in passthrough mode and is also unlikely to conflict with webpage bindings. -
The
app_idis now set toqutebrowserfor Wayland. -
CommandorCmdcan now be used (instead ofMeta) to map the Command key on macOS. -
Using
:set optionnow shows the value of the setting (like:set option?already did). -
The
completion.web_history_max_itemssetting got renamed tocompletion.web_history.max_items. -
The Makefile shipped with qutebrowser now supports overriding variables
DATADIRandMANDIR. -
Regenerating completion history now shows a progress dialog.
-
The
content.autoplaysetting now supports URL patterns on Qt >= 5.11. -
The
content.host_blocking.whitelistsetting now takes a list of URL patterns instead of globs. -
In passthrough mode, Ctrl + Mousewheel now also gets passed through to the page instead of zooming.
-
Editing text in an external editor now simulates a JS "input" event, which improves compatibility with websites reacting via JS to input.
-
The
qute://settingspage is now properly sorted on Python 3.5. -
:zoom,:zoom-inand:zoom-outnow have a--quietswitch which causes them to not display a message. -
The
scrolling.barsetting now takes three values instead of being a boolean:always,never, andwhen-searching(which only displays it while a search is active). -
@@ now repeats the last run macro.
-
The
content.host_blocking.listssetting now accepts afile://URL to a directory, and reads all files in that directory. -
The
:tab-giveand:tab-takecommand now have a new flag--keepwhich causes them to keep the old tab around. -
:navigatenow clears the URL query.
Fixed
-
qute://pages now work properly on Qt 5.11.2 -
Error when passing a substring with spaces to
:tab-take. -
Greasemonkey scripts which start with an UTF-8 BOM are now handled correctly.
-
When no documentation has been generated, the plaintext documentation now can be shown for more files such as
qute://help/userscripts.html. -
Crash when doing initial run on Wayland without XWayland.
-
Crash when trying to load an empty session file.
-
:hintwith an invalid--mode=value now shows a proper error. -
Rare crash on Qt 5.11.2 when clicking on
<select>elements. -
Rare crash related to the completion.
Removed
-
Support for importing pre-v1.0.0 history files has been removed.
-
The
content.webrtc_public_interfaces_onlysetting has been removed and replaced bycontent.webrtc_ip_handling_policy.
v1.4.2 (2018-09-02)
Changed
-
The
content.xss_auditingsetting is now enabled by default, to mirror Chromium’s rather than Qt’s default behavior. -
Long URLs in the statusbar are now elided at the end rather than in the middle, to make sure the hostname is completely visible whenever possible.
Fixed
-
Crash in Qt 5.7.1 when a website uses
window.print(). -
The workaround for Nouveau graphic drivers now works properly again.
-
Crash when using
:follow-selectedwith a link which is outside of the view. -
Workaround for windows not showing as urgent with some window managers (like i3).
-
Crash when opening URLs with some unicode characters (IDNA 2008). Those URLs still won’t open though, due to missing support in Qt.
-
Crash when a download directory which can’t be created is configured.
-
Crash in the
importer.pyscript when importing Chrome bookmarks from newer Chrome versions. -
The
content.webrtc_public_interfaces_onlyoption didn’t work on Qt 5.11 previously (it now does). Note it still does not work on Qt 5.10 (due to a Qt bug) and Qt < 5.9.2. -
Repeated escaping of entries in
qute://logwhen refreshing page. -
The host blocker doesn’t block 0.0.0.0 anymore.
-
Crash when using :// as URL pattern.
-
The
:buffercompletion now sorts tabs with indices >= 10 correctly again.
v1.4.1 (2018-07-11)
Security
-
CVE-2018-10895: Fix CSRF issue on the qute://settings page, leading to possible arbitrary code execution. See the related GitHub issue for details: https://github.com/qutebrowser/qutebrowser/issues/4060
Fixed
-
Rare crash when an error occurs in downloads.
-
Newlines are now stripped from the :version pastebin URL.
-
There’s a new
mkvenv-pypi-oldenvironment intox.iniwhich installs an older Qt, which is needed on Ubuntu 16.04. -
Worked around a Qt issue which redirects to a
chrome-error://page when trying to use U2F. -
The
link_pyqt.pyscript now works correctly with PyQt 5.11. -
The Windows installer now uninstalls the old version before installing the new one, fixing issues with qutebrowser not starting after installing v1.4.0 over v1.3.3.
v1.4.0 (2018-07-03)
Added
-
Support for the bundled
sipmodule in PyQt 5.11 and other changes in Qt/PyQt 5.11.x. -
New
--debug-flag log-requeststo log requests to the debug log for debugging. -
New
--firstflag for:hint(bound togifor inputs) which automatically selects the first hint. -
New
input.escape_quits_reportersetting which can be used to avoid accidentally quitting the crash reporter when pressing escape. -
New
qute-lastpassuserscript which uses the LastPass CLI to fill passwords. -
The Makefile now installs a
/usr/share/metainfo/qutebrowser.appdata.xmlfile. -
QtWebEngine: Support for printing from webpages via
window.print. -
QtWebEngine: Support for muting tabs:
-
New
{audio}field forwindow.title_formatandtabs.title.formatwhich displays[M]/[A]for muted/recently audible tabs. -
New
:tab-mutecommand (bound to<Alt-m>) to mute/unmute a tab.
-
-
QtWebEngine: Support for
content.cookies.acceptwith third-party cookies blocked by default (requires Qt 5.11). -
QtWebEngine: New settings:
-
Support for requesting persistent storage via
navigator.webkitPersistentStorage.requestQuotawith a newcontent.persistent_storagesetting (requires Qt 5.11). This setting also supports URL patterns. -
Support for registering custom protocol handlers via
navigator.registerProtocolHandlerwith a newcontent.register_protocol_handlersetting (requires Qt 5.11). This setting also supports URL patterns. -
Support for WebRTC screen sharing with a new
content.desktop_capturesetting (requires Qt 5.10). This setting also supports URL patterns. -
New
content.autoplaysetting to enable/disable automatic video playback (requires Qt 5.10). -
New
content.webrtc_public_interfaces_onlysetting to only expose public interfaces over WebRTC (requires Qt 5.9.2 or 5.11). -
New
content.canvas_readingsetting to disable reading from canvas elements.
-
Changed
-
The following settings now support URL patterns:
-
content.headers.do_not_track -
content.headers.custom -
content.headers.accept_language -
content.headers.user_agent -
content.ssl_strict -
content.geolocation -
content.notifications -
content.media_capture
-
-
The Windows/macOS releases now bundle Qt 5.11.1 which is based on Chromium 65.0.3325.151 with security fixes up to Chromium 67.0.3396.87.
-
New short flags for commandline arguments:
-Band-Tfor--basedirand--temp-basedir;-dand-Dfor--debugand--debug-flag. -
Deleting history items via
:history-clearor:completion-item-delnow also removes that URL from QtWebEngine’s visited links. -
There’s now completion for commands taking a variable count of arguments (like
:config-cycle). -
QtWebEngine: On Qt 5.11.1, no reloads are needed anymore when switching between pages with changed settings (e.g.
content.javascript.enabled). -
The
qt.force_software_renderingsetting changed from a boolean to taking different values (software-opengl,qt-quickandchromium) for different kinds of software rendering workarounds. -
On Qt 5.11, using wayland with QtWebEngine is now possible when using software rendering.
-
GreaseMonkey scripts now get their own global scope (based on the page’s one), which allows scripts like OneeChan to work.
-
Rapid hinting is now supported with the
yankandyank-primarytargets, copying newline-separated links. -
QtWebEngine: On Qt 5.11, the developer tools (inspector) can now be used securely and without requiring the
--enable-webengine-inspectoroption. -
The
<Enter>key (:follow-selected) now follows the currently focused element if there’s no selection. -
The
--logfilterargument now can be prepended with an exclamation mark (e.g.--logfilter '!init,destroy') to invert the filter. -
:view-sourcenow has a--pygmentsflag which uses the "old" way of rendering sources even with QtWebEngine. -
Improved error messages when a setting needs a newer Qt version.
-
QtWebEngine: Various improvements to make the cursor more visible in caret browsing.
-
When a prompt is opened in insert/passthrough mode, the mode is restored after closing the prompt.
-
On Qt 5.10 or newer, dictionaries are now read from the qutebrowser data directory (e.g.
~/.local/share/qutebrowser) instead of/usr/share/qt. Existing dictionaries are copied over. -
If an error while parsing
~/.netrcoccurs, the cause of the error is now logged. -
On Qt 5.9 or newer, certificate errors now show Chromium’s detailed error page.
-
Greasemonkey scripts now support a "@qute-js-world" tag to run them in a different JavaScript context.
Fixed
-
Various subtle keyboard focus issues.
-
The security fix in v1.3.3 caused URLs with ampersands (
www.example.com?one=1&two=2) to send the wrong arguments when clicked on thequte://historypage. -
Crash when opening a PDF page with PDF.js enabled (on QtWebKit), but no PDF.js installed.
-
Crash when closing a tab shortly after opening it.
Removed
-
No prebuilt binaries for 32-bit Windows are supplied anymore. This is due to Qt removing QtWebEngine support for those upstream. It might be possible to distribute 32-bit binaries again with Qt 5.12 in December, but that will only happen if it turns out enough people actually need 32-bit support.
-
:tab-detachwhich has been deprecated in v1.1.0 has been removed. -
The
content.developer_extrassetting got removed. On QtWebKit, developer extras are now automatically enabled when opening the inspector.
v1.3.3 (2018-06-21)
Security
-
CVE-2018-1000559: An XSS vulnerability on the
qute://historypage allowed websites to inject HTML into the page via a crafted title tag. This could allow them to steal your browsing history. If you’re currently unable to upgrade, avoid using:history. See the related GitHub issue for details: https://github.com/qutebrowser/qutebrowser/issues/4011.
Fixed
-
Crash in a workaround for a Qt 5.11 bug in rare circumstances.
-
Workaround for a Qt bug which preserves searches between page loads.
-
In v1.3.2 a dependency on the
PyQt5.QtQuickWidgetsmodule was accidentally introduced. Since that module isn’t packaged everywhere, it’s been removed again.
v1.3.2 (2018-06-10)
Fixed
-
QtWebEngine: Improved workaround for a bug in Qt 5.11 where only the top/bottom half of the window is used.
-
QtWebEngine: Work around a bug in Qt 5.11 where an endless loading-loop is triggered when clicking a link with an unknown scheme.
-
QtWebEngine: When switching between pages with changed settings, less unnecessary reloads are done now.
-
QtWebEngine: It’s now possible to open external links such as
magnet://ormailto:via hints.
v1.3.1 (2018-05-29)
Fixed
-
Work around a bug in Qt 5.11 where only the top/bottom half of the window is used. This workaround is incomplete, but fixes the majority of the cases where this happens.
-
Work around keyboard focus issues with Qt 5.11.
-
Work around an issue in Qt 5.11 where e.g. activating JavaScript per-domain needed a manual reload in some cases.
-
Don’t crash when a ² key is pressed (e.g. on AZERTY keyboards).
-
Don’t crash when a tab is opened and quickly closed again.
v1.3.0 (2018-05-03)
Added
-
New
:scroll-to-anchorcommand to scroll to an anchor in the document. -
New
url.open_base_urloption to open the base URL of a searchengine when no search term is given. -
New
tabs.min_widthsetting to configure the minimal width for tabs. -
New userscripts:
-
getbibto download bibtex information for DOIs on a page. -
qute-keepassto get passwords from KeePassX.
-
Changed
-
QtWebEngine: Support for JavaScript Shared Web Workers have been disabled on Qt versions older than 5.11 because of security issues in in Chromium. You can get the same effect in earlier versions via
:set qt.args ['disable-shared-workers']. An equivalent workaround is also contained in Qt 5.9.5 and 5.10.1. -
The file dialog for downloads now has basic tab completion based on the entered text.
-
:versionnow shows OS information for POSIX OS other than Linux/macOS. -
When there’s an error inserting the text from an external editor, a backup file is now saved.
-
The
window.hide_wayland_decorationsetting got renamed towindow.hide_decorationand now also works outside of wayland. -
The
tabs.favicons.showsetting now can take three values:'always'(wasTrue),'never'(wasFalse) and'pinned'(to only show favicons for pinned tabs). -
Hover tooltips on tabs now always show the webpage’s title.
-
The default value for
content.host_blocking.listswas changed to only include Steven Black’s hosts-list which combines various sources. -
Error messages when trying to wrap when
tabs.wrapisFalseare now logged to debug instead of messages.
Fixed
-
Using hints before a page is fully loaded is now possible again.
-
Selecting hints with the number keypad now works again.
-
Tab titles for tabs loaded from sessions should now really be correct instead of showing the URL.
-
Loading URLs with customized settings from a session now avoids an additional reload.
-
The window icon and title now get set correctly again.
-
The
tabs.switching_delaysetting now has a correct maximum value limit set. -
The
taskaddscript now works properly when there’s multi-line output. -
QtWebEngine: Worked around issues with GreaseMonkey/stylesheets not being loaded correctly in some situations.
-
The statusbar now more closely reflects the caret mode state.
-
The icon on Windows should now be displayed in a higher resolution.
-
The QtWebEngine development tools (inspector) now also work when JavaScript is disabled globally.
-
Building
.exefiles now works whenupxis installed on the system. -
The keyhint widget now shows the correct text for chained modifiers.
-
Loading GreaseMonkey scripts now also works with Jinja2 2.8 (e.g. on Debian Stable).
-
Adding styles with GreaseMonkey on fast sites now works properly.
-
Window ID 0 is now excluded properly from
:tab-takecompletion. -
A rare crash when cancelling a download has been fixed.
-
The Makefile (intended for packagers) now supports
PREFIXproperly. -
The workaround for a black window with Nvidia graphics is now enabled on non-Linux systems (like FreeBSD) as well.
-
Initial support for Qt 5.11.
-
Checking for a new version after sending a crash report now works properly again.
-
@matchin Greasemonkey scripts now more closely matches the proper pattern syntax. -
Searching via
/or?now doesn’t handle any characters in a special way. -
Fixed crash when trying to retry some failed downloads on QtWebEngine.
-
An invalid spellcheck dictionary filename now doesn’t crash anymore.
-
When no spellcheck dictionaries are configured, it’s now disabled internally. This works around an issue with entering special characters on Facebook messenger.
-
The macOS release now should work again on macOS 10.11 and newer.
v1.2.1 (2018-03-14)
Fixed
-
qutebrowser now starts properly when the PyQt5 QOpenGLFunctions package wasn’t found.
-
The keybinding cheatsheet on the quickstart page is now loaded from a local
qute://URL again. -
With "tox -e mkvenv-pypi", PyQt 5.10.0 is used again instead of Qt 5.10.1, because of an issue with Qt 5.10.1 which causes qutebrowser to fail to start ("Could not find QtWebEngineProcess").
-
Unbinding keys which were bound in older qutebrowser versions now doesn’t crash anymore.
-
Fixed a crash when reloading a page which wasn’t fully loaded with v1.2.0
-
Keys on the numeric keypad now fall back to the same bindings without
Num+if noNum+binding was found. -
Fixed hinting on some pages with Qt < 5.10.
-
Titles are now displayed correctly again for tabs which are cloned or loaded from sessions.
-
Shortcuts now correctly use
Ctrlinstead ofCommandon macOS again.
v1.2.0 (2018-03-09)
Added
-
Initial implementation of per-domain settings:
-
:setand:config-cyclenow have a-u/--patternargument taking a URL match pattern for supported settings. -
config.setinconfig.pynow takes a third argument which is the pattern. -
New
with config.pattern('...') as p:context manager forconfig.pyto use the shorthand syntax with a pattern. -
New
tshkeybinding to toggle scripts for the current host. With a capitalS, the toggle is saved. With a capitalH, subdomains are included. Withuinstead ofh, the exact current URL is used. -
New
tphkeybinding to toggle plugins, with the same additional binding described above.
-
-
New QtWebEngine features:
-
Caret/visual mode
-
Authentication via ~/.netrc
-
Retrying downloads with Qt 5.10 or newer
-
Hinting and other features inside same-origin frames
-
-
New flags for existing commands:
-
:session-loadhas a new--deleteflag which deletes the session after loading it. -
New
--no-lastflag for:tab-focusto not focus the last tab when focusing the currently focused one. -
New
--editflag for:view-sourceto open the source in an external editor. -
New
--selectflag for:follow-hintwhich acts like the given string was entered but doesn’t necessary follow the hint.
-
-
New special pages:
-
qute://bindings(opened via:bind) which shows all keybindings. -
qute://tabs(opened via:buffer) which lists all tabs.
-
-
New settings:
-
statusbar.widgetsto configure which widgets should be shown in which order in the statusbar. -
tabs.mode_on_changewhich replacestabs.persist_mode_on_change. It can now be set torestorewhich remembers input modes (input/passthrough) per tab. -
input.insert_mode.auto_enterwhich makes it possible to disable entering insert mode automatically when an editable element was clicked. Together withinput.forward_unbound_keys, this should allow for emacs-like "modeless" keybindings.
-
-
New
:prompt-yankcommand (bound toAlt-yby default) to yank URLs referenced in prompts. -
The
hostblock_blamescript which was removed in v1.0 was updated for the new config and re-added. -
New
cycle-inputs.jsscript inscripts/which can be used with:jseval -fto cycle through inputs.
Changed
-
Complete refactoring of key input handling, with various effects:
-
emacs-like keychains such as
<Ctrl-X><Ctrl-C>can now be bound. -
Key chains can now be bound in any mode (this allows binding unused keys in hint mode).
-
Yes/no prompts don’t use keybindings from the
promptsection anymore, they have their ownyesnosection instead. -
Trying to bind invalid keys now shows an error.
-
The
bindings.defaultsetting can now only be set in aconfig.py, and existing values inautoconfig.ymlare ignored.
-
-
Improvements for GreaseMonkey support:
-
@includeand@excludenow support regex matches. With QtWebEngine and Qt 5.8 and newer, Qt handles the matching, but similar functionality will be added in Qt 5.11. -
Support for
@requires -
Support for the GreaseMonkey 4.0 API
-
-
The sqlite history now uses write-ahead logging which should be a performance and stability improvement.
-
When an editor is spawned with
:open-editorand:config-edit, the changes are now applied as soon as the file is saved in the editor. -
The
hist_importer.pyscript now only imports URL schemes qutebrowser can handle. -
Deleting a prefix (
:,/or?) via backspace now leaves command mode. -
Angular 1 elements and
<summary>/<details>now get hints assigned. -
:tab-onlywith pinned tabs now still closes unpinned tabs. -
The
url.incdec_segmentsoption now also can takeportas possible segment. -
QtWebEngine:
:view-sourcenow uses Chromium’sview-source:scheme. -
Tabs now show their full title as tooltip.
-
When there are multiple unknown keys in a autoconfig.yml, they now all get reported in one error.
-
More performance improvements when opening/closing many tabs.
-
The
:versionpage now has a button to pastebin the information. -
Replacements like
{url}can now be escaped as{{url}}.
Fixed
-
QtWebEngine bugfixes:
-
Improved fullscreen handling with Qt 5.10.
-
Hinting and scrolling now works properly on special
view-source:pages. -
Scroll positions are now restored correctly from sessions.
-
:follow-selectedshould now work in more cases with Qt > 5.10. -
Incremental search now flickers less and doesn’t move to the second result when pressing Enter.
-
Keys like
Ctrl-VorShift-Insertare now correctly handled/filtered with Qt 5.10. -
Fixed hangs/segfaults on exit with Qt 5.10.1.
-
Fixed favicons sometimes getting cleared with Qt 5.10.
-
Qt download objects are now cleaned up properly when a download is removed.
-
JavaScript messages are now not double-HTML escaped anymore on Qt < 5.11
-
-
QtWebKit bugfixes:
-
Fixed GreaseMonkey-related crashes.
-
:view-sourcenow displays a valid URL.
-
-
URLs containing ampersands and other special chars are now shown correctly when filtering them in the completion.
-
:bookmark-add "" foocan now be used to save the current URL with a custom title. -
:spawn -onow waits until the process has finished before trying to show the output. Previously, it incorrectly showed the previous output immediately. -
Suspended pages now should always load the correct page when being un-suspended.
-
Exception types are now shown properly with
:config-sourceand:config-edit. -
When using
:bookmark-add --toggle, bookmarks are now saved properly. -
Crash when opening an invalid URL from an application on macOS.
-
Crash with an empty
completion.timestamp_format. -
Crash when
completion.min_charsis set in some cases. -
HTML/JS resource files are now read into RAM on start to avoid crashes when changing qutebrowser versions while it’s open.
-
Setting
bindings.key_mappingsto an empty value is now allowed. -
Bindings to an empty commands are now ignored rather than crashing.
Removed
-
QUTE_SELECTED_HTMLis now not set for userscripts anymore except when called via hints. -
The
qutebrowser_viewsourceuserscript has been removed as:view-source --editcan now be used. -
The
tabs.persist_mode_on_changesetting has been removed and replaced bytabs.mode_on_change.
v1.1.2 (2018-03-01)
Changed
-
Windows/macOS releases now bundle Qt 5.10.1 which includes security fixes from Chromium up to version 64.0.3282.140.
Fixed
-
QtWebEngine: Crash with Qt 5.10.1 when using :undo on some tabs.
-
Compatibility with Python 3.7
v1.1.1 (2018-01-20)
Fixed
-
The Makefile now actually works.
-
Fixed crashes with Qt 5.10 when closing a tab before it finished loading.
v1.1.0 (2018-01-15)
Added
-
Initial support for Greasemonkey scripts. There are still some rough edges, but many scripts should already work.
-
There’s now a
misc/Makefilefile in releases, which should help distributions which package qutebrowser, as they can run something likemake -f misc/Makefile DESTDIR="$pkgdir" installnow. -
New fields for
window.title_formatandtabs.title.format:-
{current_url} -
{protocol}
-
-
New settings:
-
colors.statusbar.passthrough.fg/.bg -
completion.delayandcompletion.min_charsto update the completion less often. -
completion.use_best_matchto automatically use the best-matching command in the completion. -
keyhint.radiusto configure the edge rounding for the key hint widget. -
qt.highdpito turn on Qt’s High-DPI scaling. -
tabs.pinned.shrink(trueby default) to make it possible for pinned tabs and normal tabs to have the same size. -
content.windowed_fullscreento show e.g. a fullscreened video in the window without fullscreening that window. -
tabs.persist_mode_on_changeto keep the current mode when switching tabs. -
session.lazy_restorewhich allows to not load pages immediately when restoring a session.
-
-
New commands:
-
:tab-giveand:tab-take, to give tabs to another window, or take them from another window. -
:completion-item-yank(bound to<Ctrl-C>) to yank the current completion item text. -
:edit-commandto edit the commandline in an editor. -
search.incrementalfor incremental text search.
-
-
New flags for existing commands:
-
-oflag for:spawnto show stdout/stderr in a new tab. -
--rapidflag for:command-accept(bound toCtrl-Enterby default), which allows executing a command in the completion without closing it. -
--privateand--relatedflags for:edit-url, which have the same effect they have with:open. -
--historyfor:completion-item-focuswhich causes it to go through the command history when no text was entered. The default bindings for cursor keys in the completion changed to use that, so that they can be used again to navigate through completion items when a text was entered. -
--filefor:debug-pyevalwhich makes it take a filename instead of a line of code.
-
-
New
config.source(...)method forconfig.pyto source another file. -
New
{line}and{column}replacements foreditor.commandto position the cursor correctly. -
New
qute-passuserscript as alternative topassword_fillwhich allows selecting accounts via rofi or any other dmenu-compatile application. -
New
hist_importer.pyscript to import history from Firefox/Chromium.
Changed
-
Some settings got renamed:
-
tabs.width.bar→tabs.width -
tabs.width.indicator→tabs.indicator.width -
tabs.indicator_padding→tabs.indicator.padding -
session_default_name→session.default_name -
ignore_case→search.ignore_case
-
-
Much improved user stylesheet handling for QtWebEngine which reduces flickering and updates immediately after setting a stylesheet.
-
High-DPI favicons are now used when available.
-
The
asciidoc2html.pyscript now uses Pygments (which is already a dependency of qutebrowser) instead ofsource-highlightfor syntax highlighting. -
The
:buffercommand now doesn’t require quoting anymore, similar to:open. -
The ‘importer.py` script was largely rewritten and now also supports importing from Firefox’
places.sqlitefile and Chrome/Chromium profiles. -
Various internal refactorings to use Python 3.5 and ECMAscript 6 features.
-
If the
window.hide_wayland_decorationsetting is False, butQT_WAYLAND_DISABLE_WINDOWDECORATIONis set in the environment, the decorations are still hidden. -
The
install_dict.pyscript for QtWebEngine was renamed todictcli.pyand can now also upgrade dictionaries correctly. -
:undonow can re-open multiple tabs after:tab-onlywas used. -
:config-write-pywith a relative path now puts the file into the config directory. -
The
qute://versionpage now also shows the uptime of qutebrowser. -
qutebrowser now prompts to create a non-existing directory when starting a download.
-
:jseval --filenow searches relative paths in ajs/subdir in qutebrowser’s data dir, e.g.~/.local/share/qutebrowser/js. -
The current/default bindings are now shown in the ``:bind` completion.
-
Empty categories are now hidden in the
:opencompletion. -
Search terms for URLs and titles can now be mixed when filtering the completion.
-
The default font size for the UI got bumped up from 8pt to 10pt.
-
Improved matching in the completion: The words entered are now matched in any order, and mixed matches on URL/tite are possible.
-
The system’s default encoding (rather than UTF-8) is now used to decode subprocess output.
-
qutebrowser now ensures it’s focused again after an external editor is closed.
-
The
colors.completion.fgsetting can now be a list, allowing to specify different colors for the three completion columns.
Fixed
-
More consistent sizing for favicons with vertical tabs.
-
Using
:homeon pinned tabs is now prevented. -
Fix crash with unknown file types loaded via
qute://help. -
Scrolling performance improvements.
-
Sites like
qute://helpnow redirect toqute://help/to make sure links work properly. -
Fixes for the size calculation of pinned tabs in the tab bar.
-
Worked around a crash with PyQt 5.9.1 compiled against Qt < 5.9.1 when using
:yankorqute://URLs. -
Fixed crash when opening
qute://help/img. -
Fixed
gU(:navigate up) onqute://helpand webservers not handling..in a URL. -
Using e.g.
-s backend webkitto set the backend now works correctly. -
Fixed crash when closing the tab an external editor was opened in.
-
When using
:search-nextbefore a search is finished, no warning about no results being found is shown anymore. -
Fix
:click-elementwith an ID containing non-alphanumeric characters. -
Fix crash when a subprocess outputs data which is not decodable as UTF-8.
-
Fix crash when closing a tab immediately after hinting.
-
Worked around issues in Qt 5.10 with loading progress never being finished.
-
Fixed a crash when writing a flag before a command (e.g. `:-w open `).
-
Fixed a crash when clicking certain form elements with QtWebEngine.
Deprecated
-
:tab-detachhas been deprecated, as:tab-givewithout argument can be used instead.
Removed
-
The long-deprecated
:prompt-yes,:prompt-no,:paste-primaryand:pastecommands have been removed. -
The invocation
:download <url> <dest>which was deprecated in v0.5.0 was removed, use:download --dest <dest> <url>instead. -
The
messages.unfocusedoption which wasn’t used anymore was removed. -
The
x[xtb]default bindings got removed again as many users accidentally triggered them.
v1.0.4 (2017-11-28)
Fixed
-
The
qute://gplpage now works correctly again. -
Trying to bind an empty command now doesn’t crash anymore.
-
Fixed crash when
:config-write-pyfails to write to the given path. -
Fixed crash for some users when selecting a file with Qt 5.9.3
-
Improved handling for various SQL errors
-
Fix crash when setting content.cache.size to a big value (> 2 GB)
v1.0.3 (2017-11-04)
Changed
-
macOS and Windows builds are now built with PyQt 5.9.1 and Qt 5.9.2, including various bugfixes, as well as security fixes from Chromium up to version 61.0.3163.79.
-
Performance improvements for tab rendering.
-
The :open-editor command is now not hidden anymore as it’s also usable in normal mode.
Fixed
-
Handle accessing a locked sqlite database gracefully
-
Abort pinned tab dialogs properly when a tab is closed e.g. by closing a window
-
Unbinding a default keybinding twice now doesn’t bind it again
-
Completions are now sorted correctly again when filtered
v1.0.2 (2017-10-17)
Fixed
-
Fix workaround for black screens or crashes with Nvidia cards
-
Handle a filesystem going read-only gracefully
-
Fix crash when setting
fonts.monospace -
Fix list options not being modifyable via
.append()inconfig.py -
Mark the content.notifications setting as QtWebKit only correctly
-
Fix wrong rendering of keys like
<back>in the completion
Changed
-
Nicer error messages and other minor improvements
v1.0.1 (2017-10-13)
Fixed
-
Fixed starting after customizing
fonts.tabsorfonts.debug_console. -
Fixed starting with old PyQt versions compiled against newer Qt versions.
-
Fixed check for PyQt version to correctly enforce 5.7 (not 5.2).
v1.0.0 (2017-10-12)
Major changes
-
Dependency changes:
-
Support for legacy QtWebKit (before 5.212 which is distributed independently from Qt) is dropped.
-
Support for Python 3.4 is dropped.
-
Support for Qt before 5.7.1 and PyQt before 5.7 is dropped.
-
New dependency on the QtSql module and Qt sqlite support.
-
New dependency on the attrs project (packaged as
python-attrin some distributions). -
The depedency on PyOpenGL (when using QtWebEngine) got removed. Note that PyQt5.QtOpenGL is still a dependency.
-
PyQt5.QtOpenGL is now always required, even with QtWebKit.
-
-
The QtWebEngine backend is now used by default. Note this means that QtWebEngine now should be a required dependency, and QtWebKit (if new enough) should be changed to an optional dependency.
-
Completely rewritten configuration system which ignores the old config file. See qute://help/configuring.html for details.
-
Various documentation files got moved to the doc/ subfolder;
qutebrowser.desktopgot moved to misc/. -
:setnow doesn’t support toggling/cycling values anymore, that functionality got moved to:config-cycle. -
New completion engine based on sqlite, which allows to complete the entire browsing history. The default for
completion.web_history_max_itemsgot changed to-1(unlimited). If the completion is too slow on your machine, try setting it to a few 1000 items. -
Up/Down now navigates through the command history instead of selecting completion items. Either use Tab to cycle through the completion, or restore the old behavior.
Added
-
QtWebEngine: Spell checking support, see the
spellcheck.languagessetting. -
New
qt.argssetting to pass additional arguments to Qt/Chromium. -
New
backendsetting to select the backend to use. Together with the previous setting, this should make most wrapper scripts unnecessary. -
qutebrowser can now be set as the default browser on macOS.
-
New config commands:
-
:config-cycleto cycle an option between multiple values. -
:config-unsetto remove a configured option. -
:config-clearto remove all configured options. -
:config-sourceto (re-)read aconfig.pyfile. -
:config-editto open theconfig.pyfile in an editor. -
:config-write-pyto write aconfig.pytemplate file.
-
-
New
:versioncommand which opensqute://version. -
New back/forward indicator in the statusbar.
-
New
bindings.key_mappingssetting to map keys to other keys. -
QtWebEngine: Support for proxy authentication.
Changed
-
Using
:downloadnow uses the page’s title as filename. -
Using
:backor:forwardwith a count now skips intermediate pages. -
When there are multiple messages shown, the timeout is increased.
-
:searchnow only clears the search if one was displayed before, so pressing<Escape>doesn’t un-focus inputs anymore. -
Pinned tabs now adjust to their text’s width, so the
tabs.width.pinnedsetting got removed. -
:set-cmd-textnow has a--run-on-countargument to run the underlying command directly if a count was given. -
:scroll-percgot renamed to:scroll-to-perc.
Removed
-
Migrating QtWebEngine data written by versions before 2016-11-15 (before v0.9.0) is now not supported anymore.
-
Upgrading qutebrowser with a version older than v0.4.0 still running now won’t work properly anymore.
-
The
--harfbuzzand--relaxed-configcommandline arguments got dropped.
Fixes
-
Exiting fullscreen via
:fullscreenor buttons on a page now restores the correct previous window state (maximized/fullscreen). -
When
input.insert_mode.auto_loadis set, background tabs now don’t enter insert mode anymore. -
The keybinding help widget now works correctly when using keybindings with a count.
-
The
window.hide_wayland_decorationsetting now works correctly again.
v0.11.1 (2017-10-09)
Fixes
-
Fixed empty space being shown after tabs in the tabbar in some cases.
-
Fixed
:restartin 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.
v0.11.0 (2017-07-04)
New dependencies
-
New dependency on
PyQt5.QtOpenGLif 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
PyOpenGLif QtWebEngine is used.
Added
-
Private browsing is now implemented for QtWebEngine, and changed its behavior: The
general -> private-browsingsetting now only applies to newly opened windows, and you can use the-pflag to:opento open a private window. -
New "pinned tabs" feature, with a new
:tab-pincommand (bound to<Ctrl-p>by default). -
(QtWebEngine) Implemented
:follow-selected. -
New
:clear-messagescommand to clear shown messages. -
New
ui -> keyhint-delaysetting to configure the delay until the keyhint overlay pops up. -
New
-soption for:opento force a HTTPS scheme. -
:debug-log-filternow acceptsnoneas an argument to clear any log filters. -
New
--debug-flagargument which replaces--debug-exitand--pdb-postmortem. -
New
tabs -> favicon-scaleoption to scale up/down favicons. -
colors -> statusbar.bg/fg.privateand.command.privateto customize statusbar colors for private windows. -
New
{private}field displaying[Private Mode]forui -> window-title-formatandtabs -> title-format. -
(QtWebEngine) Proxy support with Qt 5.7.1 (already was supported for 5.8 and newer)
Changed
-
To prevent elaborate phishing attacks, the Punycode version (
xn--*) is now shown in addition to the decoded version for international domain names (IDN). -
Starting with legacy QtWebKit now shows a warning message. With the next release, support for it will be removed.
-
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://historypage (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-timeoutis 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-cloneand:navigate --tabnow 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://versioninstead ofqute:version), but the old versions are automatically redirected. -
Texts in prompts are now selectable.
-
The default level for
:messagesis nowinfo, noterror -
Trying to focus the currently focused tab with
:tab-focusnow focuses the last viewed tab. -
(QtWebEngine) With Qt 5.9,
content -> cookies-storecan 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.
Fixed
-
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
:downloadon 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-filterwhen--filterwasn’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
qt5ctnow 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.userAgentis 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-pagewith--bottom-navigatenow 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.
v0.10.1 (2017-03-08)
Changed
-
--qt-argand--qt-flagcan now also be used to pass arguments to Chromium when using QtWebEngine.
Fixed
-
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
v0.10.0 (2017-02-25)
Added
-
Userscripts now have a new
$QUTE_COMMANDLINE_TEXTenvironment variable, containing the current commandline contents -
New
ripbanguserscript 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-backgroundsoption with Qt >= 5.8 -
The
content -> cookies-storeoption -
The
storage -> cache-sizeoption -
The
colors -> webpage.bgoption -
The HTML5 fullscreen API (e.g. youtube videos) with QtWebEngine
-
:download --mhtml
-
-
New
qute:historyURL and:historycommand to show the browsing history -
Open tabs are now auto-saved on each successful load and restored in case of a crash
-
:jsevalnow has a--fileflag so you can pass a javascript file -
:session-savenow has a--only-active-windowflag to only save the active window -
macOS builds are back, and built with QtWebEngine
Changed
-
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-dividercan now be 0 to disable zooming by mouse wheel -
network -> proxycan also be set topac+file://...now to use a local proxy autoconfig file (on QtWebKit)
Removed
-
(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)
-
Fixed
-
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-modenow 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 --mhtmlnow 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/nextnow detectsrelattributes on<a>elements, and handles multiplerelattributes correctly -
Fixed a crash when hinting with target
userscriptand spawning a non-existing script -
Lines in Jupyter notebook now trigger insert mode
v0.9.1 (2017-01-13)
Fixed
-
Prevent websites from downloading files to a location outside of the download folder with QtWebEngine.
v0.9.0 (2016-12-28)
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-wordcommand which does what:rl-unix-word-ruboutdid before v0.8.0. -
New
:rl-unix-filename-ruboutcommand which is similar to readline’sunix-filename-rubout. -
New
fonts -> completion.categorysetting to customize the font used for completion category headers. -
New
:debug-log-capacitycommand to adjust how many lines are logged into RAM (to report bugs which are difficult to reproduce). -
New
hide-unmatched-rapid-hintsoption to not hide hint unmatched hint labels in rapid mode. -
New
{clipboard}and{primary}replacements for the commandline which replace the:pastecommand. -
New
:insert-textcommand to insert a given text into a field on the page, which replaces:paste-primarytogether with the{primary}replacement. -
New
:window-onlycommand to close all other windows. -
New
prev-categoryandnext-categoryarguments to:completion-item-focusto focus the previous/next category in the completion (bound to<Ctrl-Tab>and<Ctrl-Shift-Tab>by default). -
New
:click-elementcommand to fake a click on a element. -
New
:debug-log-filtercommand to change console log filtering on-the-fly. -
New
:debug-log-levelcommand to change the console loglevel on-the-fly. -
New
general -> yank-ignored-url-parametersoption to configure which URL parameters (likeutm_sourceetc.) to strip off when yanking a URL. -
Support for the HTML5 page visibility API
-
New
readabilityuserscript which shows a readable version of a page (using thereadability-lxmlpython package) -
New
castuserscript to show a video on a Google Chromecast -
New
:run-with-countcommand which replaces the (undocumented):count:commandsyntax. -
New
:record-macro(q) and:run-macro(@) commands for keyboard macros. -
New
ui -> hide-scrollbarsetting to hide the scrollbar independently of theuser-stylesheetsetting. -
New
general -> default-open-dispatchersetting to configure what to open downloads with (instead of e.g.xdg-openon 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 -> opacitysetting does not exist anymore, but you can usergba(r, g, b, alpha)colors instead forcolors -> hints.bg. -
The
hints -> fontsetting is not affected byfonts -> web-family-fixedanymore. Thus, a transformer got added to changeMonospaceto${_monospace}. -
Gradients in hint colors can now be configured by using
qlineargradientand 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
qutehintelements inuser-stylesheetwas never officially supported and does not work anymore. -
Hints are now not affected by the page’s stylesheet or zoom anymore.
-
-
:bookmark-addnow has a--toggleflag which deletes the bookmark if it already exists. -
:bookmark-loadnow has a--deleteflag which deletes the bookmark after loading it. -
:opennow also accepts quickmark names instead of URLs -
:tab-movenow optionally takes an index for absolute moving. -
Commands taking either an argument or a count (like
:zoomor:tab-focus) now prefer the count instead of showing an error message. -
:opennow has an--implicitargument 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-openand:prompt-open-downloadnow have an optionalcmdlineargument to pass a commandline to open the download with. -
:yanknow 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,:repeatand:bind) now don’t immediately evaluate variables. -
Tab titles in the
:buffercompletion now update correctly when a page’s title is changed via javascript. -
:hintnow has a--mode <mode>flag to override the hint mode configured using thehints -> modesetting. -
With
new-instance-open-targetset 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.windowsetting. It can also be set tolast-visibleto show the pages in the most recently visible window, orfirst-openedto use the first (oldest) available window. -
Word hints now are more clever about getting the element text from some elements.
-
Completions for
:helpand:bindnow also show hidden commands -
The
:buffercompletion now also filters using the first column (id). -
:undohas been improved to reopen tabs at the position they were closed. -
:navigatenow takes a count forup/increment/decrement. -
The
hints -> auto-followsetting now can be set toalways/full-match/unique-match/neverto 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-formatnow treats an empty string as valid. -
Bindings for
:,/and?are now configured explicitly and not hardcoded anymore. -
The
completion -> showsetting can now be set toalways,autoornever. -
:open-editorcan 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-windowsgot renamed tojavascript-can-open-windows-automatically. -
:prompt-acceptnow optionally accepts a value which overrides the one entered in the input box.yesandnocan be used as values for yes/no questions. -
The new
--qt-argand--qt-flagarguments 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:settingspage now also shows option descriptions. -
qute:versionandqutebrowser --versionnow 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/previousarguments now takeprev/next/last-usedto remove ambiguity. -
The
ui -> user-stylesheetsetting now only takes filenames, not CSS snippets -
ui -> window-title-formatnow has a new `xhtml11 ` replacement -
:hinthas a new--add-historyargument to add the URL to the history for yank/spawn targets. -
:setnow cycles through values if more than one argument is given. -
:opennow opensdefault-pagewithout a URL even without-t/-b/-wgiven.
Deprecated
-
The
:pastecommand got deprecated as:openwith{clipboard}and{primary}can be used instead. -
The
:paste-primarycommand got deprecated as:insert-text {primary}can be used instead. -
The
:prompt-yesand:prompt-nocommands got deprecated as:prompt-accept yesand:prompt-accept nocan be used instead.
Removed
-
The
:yank-selectedcommand got merged into:yankas:yank selectionand thus removed. -
The
:completion-item-prevand:completion-item-nextcommands got merged into a new:completion-focus {prev,next}command and thus removed. -
The
ui -> hide-mouse-cursorsetting since it was completely broken and nobody seemed to care. -
The
hints -> opacitysetting - see the "Changed" section for details. -
The
completion -> auto-opensetting got merged intocompletion -> showand thus removed. -
All
--qt-*arguments got replaced by--qt-argand--qt-flagand thus removed. -
The
-c/--confdir,--datadirand--cachedirarguments got removed, as--basedirshould be sufficient.
Fixed
-
:undonow doesn’t undo tabs "closed" by:tab-detachanymore. -
Fixed an issue with hint chars not being cleared correctly when leaving hint mode.
-
:tab-detachnow fails correctly when there’s only one tab open. -
Various small issues with the command completion
-
Fixed hang when using multiple spaces in a row with the URL completion
-
qutebrowser now still starts with an incorrectly configured
$XDG_RUNTIME_DIR. -
Fixed crash when a userscript writes invalid unicode data to the FIFO
-
Fixed crash when a included HTML was not found
v0.8.3 (2016-11-05)
Fixed
-
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-intervalto 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
-
:bindcan now be used to bind to an alias (binding by editingkeys.confalready worked before) -
The command completion now updates correctly when changing aliases
-
The tabbar now displays correctly with the Adwaita Qt theme
-
The default
skkeybinding now sets the commandline to:bindcorrectly -
Fixed crash when closing a window without focusing it
-
Userscripts now can access QUTE_FIFO correctly on Windows
v0.8.2 (2016-08-02)
Fixed
-
Fixed
general -> private-browsingnot 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
;oand;Obindings -
Fixed local storage not working (and possible other bugs) when using a relative path with
--basedir. -
Fixed crash when deleting a quickmark with Ctrl-D
-
Fixed HTML5 video playback on Windows
-
Fixed crash when using ‘:prompt-open-download` with a file with chars not encodable with the OS’ filesystem encoding (e.g. with
LC_ALL=C) -
Fixed
:prompt-open-downloadwith 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
:restartdeleting the basedir when it was given with--basedir.
v0.8.1 (2016-07-27)
Fixed
-
Fix crash when pressing enter without a command
-
Adjust error message to point out QtWebEngine is unsupported with the OS X .app currently.
-
Hide Harfbuzz warning with the macOS .app
v0.8.0 (2016-07-26)
Added
-
New
:repeat-commandcommand (mapped to.) to repeat the last command. Note that two former default bundings conflict with that binding, unbinding them via:unbind .iand:unbind .ois recommended. -
New
qute:bookmarkspage 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
;tfor:hint input. -
New variables
$QUTE_CONFIG_DIR,$QUTE_DATA_DIRand$QUTE_DOWNLOAD_DIRavailable for userscripts. -
New option
ui→status-positionto configure the position of the status bar (top/bottom). -
New
--pdf <filename>argument for:printWHICH can be used to generate a PDF without a dialog.
Changed
-
:scroll-percnow prefers a count over the argument given to it, which meansggcan be used with a count. -
Aliases can now use
;;to have an alias which executed multiple commands. -
:edit-urlnow does nothing if the URL isn’t changed in the spawned editor. -
:bookmark-addcan now be passed a URL and title to add that as a bookmark rather than the current page. -
New
taskadduserscript to add a taskwarrior task annotated with the current URL. -
:bookmark-deland:quickmark-delnow delete the current page’s URL if none is given.
Fixed
-
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.
Removed
-
The ability to display status messages from webpages, as well as the related
ui -> display-statusbar-messagessetting. -
The
general -> wrap-searchsetting 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-urlnow doesn’t accept a count anymore as its behavior was confusing and it doesn’t make much sense to add a count.
v0.7.0 (2016-06-10)
Added
-
New
:edit-urlcommand to edit the URL in an external editor. -
New
network -> custom-headerssetting 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-markcommand to jump to a mark, bound to' -
New
:set-markcommand 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-colorargument to force colored logging even if stdout is not a terminal -
New
:messagescommand 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-timeoutsetting to ignore keypresses after following a hint when filtering in number mode. -
New
:history-clearcommand to clear the entire history -
New
hints -> find-implementationto select which implementation (JS/Python) should be used to find hints on a page. Thejavascriptimplementation is better, but slower. -
New
inputsgroup for:hintto hint text input fields.
Changed
-
qutebrowser got a new (slightly updated) logo
-
:tab-focuscan now take a negative index to focus the nth tab counted from the right. -
:yankcan now yank the pretty/decoded URL by adding--pretty -
:navigatenow clears the URL fragment -
:completion-item-del(Ctrl-D) can now be used in:buffercompletion 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-windowsset. -
:bind <key>without a command now shows the existing binding -
The optional
colorlogdependency 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
normalhint target, which can be useful with javascript click handlers or checkboxes which don’t actually open a new page. -
:zoom-inor: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 -> scatteris 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
-rsuffix to the timestamp field.
Fixed
-
Fixed using
:hint links spawnwith flags - you can now use things like the-vargument for:spawnor 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-consolewith PyQt 5.6 -
Fixed qutebrowser not starting when
sys.stderrisNone -
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
FileNotFoundErrorwhen starting in some cases on old Qt versions -
Fixed sharing of cookies between tabs when
private-browsingis enabled -
Toggling values with
:setnow 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
v0.6.2 (2016-04-30)
Fixed
-
Fixed crash when using
:tab-{prev,next,focus}right after closing the last tab withlast-closeset toclose. -
Fixed crash when doing
:undoin a new instance withtabs -> last-closeset 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
v0.6.1 (2016-04-10)
Fixed
-
Fixed broken cheatsheet image which was missing from package
-
Fixed occasional crash when switching/disconnecting monitors
-
Fixed crash when downloading non-ascii files with a broken locale (
LC_ALL=C) -
Added workaround for a Qt/PyQt bug which is too weird to describe here
v0.6.0 (2016-04-04)
Added
-
New
:buffercommand to easily switch tabs by name. This is not bound to a key by default for existing users due to a conflict with thegt/gTbindings (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
--quietargument for the:debug-pyevalcommand to not open a tab with the results. Note:debug-pyevalis still only intended for debugging. -
The completion now matches each entered word separately.
-
A new command
:paste-primarygot added to paste the primary selection, and<Shift-Insert>got added as a binding so it pastes primary rather than clipboard. -
New mode
wordforhints -> modewhich uses a dictionary and link-texts for hints instead of single characters. -
New
--allargument for:download-cancelto cancel all running downloads. -
New
password_filluserscript to fill passwords using thepassexecutable. -
New
currenthinting mode which forces opening hints in the current tab (even withtarget="_blank")
Changed
-
Pasting multiple lines via
:pastenow opens each line in a new tab. -
:navigate increment/decrementnow preserves leading zeroes in URLs. -
general -> editorcan now also handle{}inside another argument (e.g. to openvimviatermite) -
Improved performance when scrolling with many tabs open.
-
Shift-Insert now also pastes primary selection for prompts.
-
:download-remove --allgot 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-hostsfile in the config dir (e.g.~/.config/qutebrowser/blocked-hosts).
Fixed
-
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-downloadssetting. -
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.
Removed
-
The
gt/gTbindings (luakit-like alternatives toJ/K) were removed (except for existing configs) to make room for thegtbinding to show buffers.
v0.5.1 (2016-01-18)
Fixed
-
Fixed completion for various config values when using
:set. -
Fixed config validation for various config values.
-
Prevented an error being logged when a website with HTTP authentication was opened on Windows.
v0.5.0 (2016-01-05)
Added
-
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-enabledsetting. -
New setting
ui -> hide-wayland-decorationto hide the window decoration when using wayland. -
New userscripts in
misc/userscripts: -
open_downloadto easily open a file in your downloads folder. -
view_in_mpvto open a video in mpv and remove it from the page. -
qutedmenuanddmenu_qutebrowserto select URLs via dmenu -
New setting
content -> host-blocking-whitelistto whitelist certain domains from the adblocker. -
{scroll_pos}can now be used inui -> window-title-formatandtabs -> title-format. -
New setting
general -> url-incdec-segmentsto configure which segments of the URL should be affected by:navigate increment/decrement. -
New
--targetargument to specify how URLs should be opened in an existing instance. -
New setting
statusbar.url.fg.success.httpsto 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
nonefor 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-retryto retry a failed download. -
New command
:download-clearwhich replaces:download-remove --all. -
:set-cmd-texthas a new--appendargument to append to the current statusbar text. -
qutebrowser now uses
~/.netrcif available to authenticate via HTTP. -
New
:fake-keycommand to send a fake keypress to a website or to qutebrowser. -
New
--mhtmlargument for:downloadto download a page including all resources as MHTML file. -
New option
tabs -> title-alignmentto change the alignment of tab titles.
Changed
-
The
colors -> tabs.bg/fg.selectedoption got split intotabs.bg/fg.selected.odd/even. -
:spawn --userscriptand:hintwith theuserscripttarget now look up relative paths in~/.local/share/qutebrowser/userscriptsor$XDG_DATA_HOME. Using a binary in$PATHwon’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-downloadsoption 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-hintcommand now optionally takes the keystring of a hint to follow. -
:scroll-pxnow doesn’t take floats anymore, which made little sense. -
Updated the user agent list for the
:set network user-agentcompletion. -
Starting with
--debugdoesn’t logVDEBUGmessages anymore (add--loglevel VDEBUGto get them). -
:debug-consolenow hides the console if it’s already shown. -
:yank-selectednow doesn’t log the selected text anymore. -
general -> log-javascript-consolegot changed from a boolean to an option taking a loglevel (none,info,debug). -
:tab-move +/-now wraps around iftabs -> wrapistrue. -
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.
Deprecated
-
:download-remove --allis now deprecated and:download-clearshould be used instead. -
:download <url> <destination>is now deprecated and:download --dest <destination> <url>should be used instead.
Removed
-
:scrollwith two pixel-arguments (deprecated in v0.3.0) -
The
:run-userscriptcommand (deprecated in v0.2.0) -
The
rapidandrapid-wintargets for:hint(deprecated in v0.2.0) -
The
:cancel-downloadcommand (deprecated in v0.2.0) -
The
:download-pagecommand (deprecated in v0.2.0)
Fixed
-
Fixed retrying of downloads which were started in a now closed tab.
-
Fixed displaying of web history if
web-history-max-itemsis 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-directorywas unset. -
Fixed crash when using
:follow-hintoutside 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-keysset toauto. -
Fixed restarting after a crash is reported.
-
Removed
.pycfiles accidentally contained in source releases.
v0.4.1 (2015-09-30)
Fixed
-
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-itemssetting 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
PendingDeprecationWarningsshown with Python 3.5.
v0.4.0 (2015-09-11)
Added
-
New bookmark functionality (similar to quickmarks without a name).
-
New command
:bookmark-addto bookmark the current page (bound toM). -
New command
:bookmark-loadto 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 -> paddingandtabs -> indicator-tabbingto control the size/padding of the tabbar. -
New setting
ui -> statusbar-paddingto control the size/padding of the status bar. -
New setting
network -> referer-headerto configure when the referer should be sent (by default it’s only sent while on the same domain). -
New setting
tabs -> showwhich supersedes the oldtabs -> hide-*options and has an additionalswitchingoption which shows tab while switching them. There’s also a newshow-switchingoption to configure the timeout. -
New setting
storage -> remember-download-directoryto remember the last used download directory. -
New setting
storage -> prompt-download-directoryto download all downloads without asking. -
Rapid hinting is now also possible for downloads.
-
Directory browsing via
file://is now supported.
Changed
-
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-selectedcommand now works in all modes instead of just caret mode and is not hidden anymore. -
minimal_webkit_testbrowser.pynow has a--webengineswitch 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 -> positionandui -> downloads-positiongot changed fromnorth/south/west/`easttotop/bottom/left/right. Existing configs should be adjusted automatically. -
:tab-focus/gtnow behaves like:tab-nextif 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
-
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.pynow 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
:setwith-pand!(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.
Removed
-
The
tabs -> indicator-spacesetting got removed as the new padding settings should be used instead. -
The
tabs -> hide-alwaysandtabs -> hide-autosettings got merged into the newtabs -> showsetting.
v0.3.0 (2015-06-28)
Added
-
New commands
:message-info,:message-errorand:message-warningto show messages in the statusbar, e.g. from a userscript. -
New command
:scroll-pxwhich replaces:scrollfor pixel-exact scrolling. -
New command
:jsevalto run a javascript snippet on the current page. -
New (hidden) command
:follow-selected(bound toEnter/Ctrl-Enterby default) to follow the link which is currently selected (e.g. after searching via/). -
New (hidden) command
:clear-keychainto clear a partially entered keychain (bound to<Escape>by default, in addition to clearing search). -
New setting
ui -> smooth-scrolling. -
New setting
content -> webglto enable/disable WebGL. -
New setting
content -> css-regionsto enable/disable support for CSS Regions. -
New setting
content -> hyperlink-auditingto enable/disable support for hyperlink auditing. -
New setting
tabs -> mousewheel-tab-switchingto control mousewheel behavior on the tab bar. -
New arguments
--datadirand--cachedirto set the data/cache location. -
New arguments
--basedirand--temp-basedir(intended for debugging) to set a different base directory for all data, which allows multiple invocations. -
New argument
--no-err-windowsto suppress all error windows. -
New arguments
--top-navigateand--bottom-navigate(-t/-b) for:scroll-pageto specify a navigation action (e.g. automatically go to the next page when arriving at the bottom). -
New flag
-d/--detachfor:spawnto detach the spawned process so it’s not closed when qutebrowser is. -
New flag
-v/--verbosefor:spawnto print information when the process started/exited successfully. -
Many new color settings (foreground setting for every background setting).
-
New setting
ui -> modal-js-dialogto use the standard modal dialogs for javascript questions instead of using the statusbar. -
New setting
colors -> webpage.bgto set the background color to use for websites which don’t set one. -
New setting
completion -> auto-opento 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
Changed
-
Breaking change for userscripts:
QUTE_HTMLandQUTE_TEXTfor userscripts now don’t store the contents directly, and instead contain a filename. -
The
content -> geolocationandnotificationssettings now support atruevalue 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 tabandFnow respect thebackground-tabssetting. To enforce a foreground tab (whatFdid before), use:hint tab-fgor;f. -
:scrollnow 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-stylesheetsetting now also takes file paths relative to the config directory. -
The
content -> cookies-acceptsetting now has newno-3rdparty(default) andno-unknown-3rdpartyvalues to block third-party cookies. Thedefaultvalue got renamed toall. -
Improved startup time by reading the webpage history while qutebrowser is open.
-
The way
:spawnsplits its commandline has been changed slightly to allow commands with flags. -
The default for the
new-instance-open-targetsetting has been changed totab. -
Sessions now store zoom/scroll-position separately for each entry.
Deprecated
-
:scrollwith two pixel-arguments is now deprecated -:scroll-pxshould be used instead.
Removed
-
The
--no-crash-dialogargument which was intended for debugging only was removed as it’s replaced by--no-err-windowswhich suppresses all error windows. -
Support for Qt installations without SSL support was dropped.
Fixed
-
Scrolling should now work more reliably on some pages where arrow keys worked but
hjkldidn’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 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
:setas argument. -
Fixed horrible completion performance when the
shrinkoption was set. -
Sessions now store zoom/scroll-position correctly.
v0.2.1 (2015-04-19)
Fixed
-
Added missing manpage (doc/qutebrowser.1.asciidoc) to archive.
v0.2.0 (2015-04-19)
Added
-
Session support
-
new command
:session-loadto load a session. -
new command
:session-saveto save a session. -
new command
:session-deleteto delete a session. -
new setting
general -> save-sessionto always save the session on quit. -
new setting
general -> session-default-nameto configure the session name to use if none is given. -
new argument
-r/--restoreto specify a session to load. -
new argument
-R/--override-restoreto not load a session even if one was saved.
-
-
New commands to manage downloads:
-
:downloadto download a URL or the current page. -
:download-cancelto cancel a download. -
:download-deleteto delete a download from disk. -
:download-opento open a finished download. -
:download-removeto remove a download from the list.:download-remove --allor the new cd keybinding can be used to clear all finished downloads.
-
-
History completion
-
New option
completion -> timestamp-formatto set the format used to display the history timestamps. -
New option
completion -> web-history-max-itemsto configure how many history items to show in the completion. -
The option
completion -> history-lengthfor 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-intervaloption).
-
-
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
-foption for:reloadto 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
--userscriptoption to:spawn(which deprecates:run-userscript). -
Ability to toggle a value to
:setby appending a!to the value. -
New options to hide the tab-/statusbar:
-
tabs -> hide-alwaysfor the tabbar -
ui -> hide-statusbarfor the statusbar
-
-
New options to configure how the tab/window titles should look:
-
tabs -> title-formatfor the tabbar -
ui -> window-title-formatfor the window title
-
-
HTML5 Geolocation/Notification support:
-
New option
content -> geolocationto permanently turn the geolocation off. -
New option
content -> notificationsto permanently turn notifications off.
-
-
New options to disable javascript prompts/alerts:
-
content -> ignore-javascript-promptto turn off prompts. -
content -> ignore-javascript-alertsto turn off alerts.
-
-
Two new options to customize the behavior of hints:
-
hints -> min-charsto set minimum number of chars in hints. -
hints -> scatterwhich 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-pageto set the page to be opened when doing that.
-
-
New
input -> partial-timeoutoption to clear partial keystrings. -
New option
completion -> download-path-suggestionto 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-unfocusedto disable this behavior.
-
-
New
--relaxed-configargument which ignores unknown options. -
New
:tab-detachcommand to open the current tab in a new window. -
Zooming via Ctrl-Mousewheel.
-
New option
input -> mouse-zoom-dividerto 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-silentfornew-instance-open-targetto open a background tab. -
New
ui -> downloads-positionsetting to move the downloads to the bottom. -
New
ui -> hide-mouse-cursoroption to hide the mouse cursor inside qutebrowser. -
New argument
-sfor qutebrowser to set a temporary config option. -
New argument
-pfor the:setcommand to print the new value. -
New
--rapidoption to:hint. Therapid/rapid-wintargets are now deprecated, and--rapidcan be used as well with the targets run/hover/userscript/spawn as well. -
New
-fargument to:bindto overwrite the old binding. -
New
--qt-nameargument to qutebrowser which is passed to Qt to setWM_CLASS. -
Alternating row colors in completion. This adds a new
colors -> completion.alternate-bgoption.
Changed
-
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
:searchwithout arguments is given. (:search ""will now search for the literal text"") -
Add
-s/--spaceargument 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
:searchcommand in addition to/fooso 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/gTkeybindings 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-pagevalues 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.pyandrun_checks.pyhave been replaced by tox. Install tox and runtox -e mkvenvinstead. -
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 argumentto drop into the pdb debugger on exceptions. -
Use hunter for line tracing instead of a selfmade solution.
-
Deprecated
-
The
:run-userscriptcommand - use:spawn --userscriptinstead. -
The
rapidandrapid-wintargets for:hint- use the--rapidargument to:hintinstead. -
The
:cancel-downloadcommand - use:download-cancelinstead. -
The
:download-pagecommand - use:downloadinstead.
Removed
-
init_venv.pyandrun_checks.pyhave been replaced by tox. Install tox and runtox -e mkvenvinstead..
Fixed
-
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-textwith an empty argument. -
Add a timeout to pastebin HTTP replies.
-
Various other fixes for small/rare bugs.
v0.1.4 (2015-03-19)
Changed
-
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-familysettings. -
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
faulthandlerlogs.
Removed
-
Remove default search engines.
-
Remove debug console completing completely.
Fixed
-
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_ioon exceptions. -
Allow font names with integers in them.
-
Fix
QIODevicewarnings when closing tabs. -
Set the
QSettingspath 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.
Security
-
Stop the icon database from being created when private-browsing is set to true.
-
Disable insecure SSL ciphers.
v0.1.3 (2015-02-12)
Changed
-
Various small logging improvements.
-
Don’t open relative files in
fuzzy_urlwith:open -
Various crashdialog improvements.
-
Hide adblocked iframes.
Fixed
-
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
NetworkManagerafter 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
IPCErrorsproperly. -
Handle another
webelem.IsNullErrorwith hints. -
Handle
UnicodeDecodeErrorwhen reading configs.
Security
-
Fix for HTTP passwords accidentally being written to debug log.
v0.1.2 (2015-01-09)
Changed
-
Uncheck sending of debug log by default when private browsing is on.
-
Add SSL info to version info.
Removed
-
Remove hosts-file.net from blocker default lists.
Fixed
-
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
!importantto hint CSS so websites don’t override the hint look -
Make
init_venv.pywork with multiple sip.sofiles. -
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
ShellCommandconfig values. -
Replace unencodable chars
-
Fix user-stylesheet setting with an empty value.
v0.1.1 (2014-12-28)
Added
-
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-requestsoption. -
Add "Remove finished" to the download context menu
-
Open and remove clicked downloads.
Changes
-
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.
Removed
-
Clean up and temporarily disable alias completion.
Fixed
-
Fix setting of
QWebSettings(e.g. web fonts) with empty strings. -
Re-focus web view when leaving prompt/yesno mode.
-
Handle
:restartcorrectly with Python eggs. -
Handle an invalid cwd properly.
-
Fix popping of a dead question in prompter.
-
Fix
AttributeErroron config changes on Ubuntu. -
Don’t treat things like "31c3" as IP address.
-
Handle category being
Nonein Qt message handler. -
Force-include pygments in
freeze.py. -
Fix scroll percentage not updating on some pages like twitter.
-
Encode
Content-Dispositionheader name properly. -
Fix item sorting in
NeighborList. -
Handle data being
Nonein 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
NetworkManagerwhen 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.
v0.1 (2014-12-14)
Initial release.