Change Log =========== // http://keepachangelog.com/ All notable changes to this project will be documented in this file. This project adheres to http://semver.org/[Semantic Versioning], though minor breaking changes (such as renamed commands) can happen in minor releases. // tags: // `Added` for new features. // `Changed` for changes in existing functionality. // `Deprecated` for once-stable features removed in upcoming releases. // `Removed` for deprecated features removed in this release. // `Fixed` for any bug fixes. // `Security` to invite users to upgrade in case of vulnerabilities. v1.6.0 (unreleased) ------------------- Added ~~~~~ - New `tabs.new_position.stacking` setting which controls whether new tabs opened from a page should stack on each other or not. - New `completion.open_categories` setting which allows to configure which categories are shown in the `:open` completion, and how they are ordered. - New config manipulation commands: * `:config-dict-add` and `:config-list-add` to a new element to a dict/list setting. * `:config-dict-remove` and `:config-list-remove` to remove an element from a dict/list setting. - New `hints.selectors` setting which allows to configure what CSS selectors are used for hints, and also allows adding custom hint groups. - New `:yank markdown` feature which yanks the current URL and title in markdown format. Changed ~~~~~~~ - `:q` now closes current window instead of quitting qutebrowser completely (`:close`), while `:qa` quits (`:quit`). The behavior of `:wq` remains 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 `QtColor` config type now also understands colors like `rgb(...)`. - `:yank` now has a `--quiet` option which causes it to not display a message. - The `:open` completion now also shows search engines by default. - The `content.host_blocking.enabled` setting now supports URL patterns, so the adblocker can be disabled on a given page. - Elements with a `tabindex` attribute 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. Fixed ~~~~~ - Invalid world IDs now get rejected for `:jseval` and 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-3rdparty` from working properly on some pages like GMail. However, the default for `content.cookies.accept` is still `all` to be in line with what other browsers do. - `:navigate` not incrementing in anchors or queries or anchors. - Crash when trying to use a proxy requiring authentication with QtWebKit. - Slashes in search terms are now percent-escaped. v1.5.2 ------ Changed ~~~~~~~ - The `content.cookies.accept` setting is now set to `all` instead of `no-3rdparty` by default, as `no-3rdparty` breaks various pages such as GMail. v1.5.1 ------ 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 ------ Added ~~~~~ - Rewritten PDF.js support: * PDF.js support and the `content.pdfjs` setting 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 `--pdfjs` flag for `prompt-open-download`, so PDFs can be opened in PDF.js with `` in the download prompt. - New settings: * `content.mouse_lock` to handle HTML5 pointer locking. * `completion.web_history.exclude` which hides a list of URL patterns from the completion. * `qt.process_model` which can be used to change Chromium's process model. * `qt.low_end_device_mode` which 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_width` which allows to have a more "normal" look for tabs. * `content.mute` which 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 `tsh` etc.) to toggle images. - The qute-pass userscript now has optional OTP support. - When `:spawn --userscript` is 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 http://code.qt.io/cgit/qt/qtwebengine.git/tree/dist/changes-5.11.2/?h=v5.11.2[various other fixes]. - Various performance improvements when many tabs are opened. - The `content.headers.referer` setting now works on QtWebEngine. - The `:repeat` command now takes a count which is multiplied with the given "times" argument. - The default keybinding to leave passthrough mode was changed from `` to ``, which makes pasting from the clipboard easier in passthrough mode and is also unlikely to conflict with webpage bindings. - The `app_id` is now set to `qutebrowser` for Wayland. - `Command` or `Cmd` can now be used (instead of `Meta`) to map the Command key on macOS. - Using `:set option` now shows the value of the setting (like `:set option?` already did). - The `completion.web_history_max_items` setting got renamed to `completion.web_history.max_items`. - The Makefile shipped with qutebrowser now supports overriding variables `DATADIR` and `MANDIR`. - Regenerating completion history now shows a progress dialog. - The `content.autoplay` setting now supports URL patterns on Qt >= 5.11. - The `content.host_blocking.whitelist` setting 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://settings` page is now properly sorted on Python 3.5. - `:zoom`, `:zoom-in` and `:zoom-out` now have a `--quiet` switch which causes them to not display a message. - The `scrolling.bar` setting now takes three values instead of being a boolean: `always`, `never`, and `when-searching` (which only displays it while a search is active). - '@@' now repeats the last run macro. - The `content.host_blocking.lists` setting now accepts a `file://` URL to a directory, and reads all files in that directory. - The `:tab-give` and `:tab-take` command now have a new flag `--keep` which causes them to keep the old tab around. - `:navigate` now 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. - `:hint` with an invalid `--mode=` value now shows a proper error. - Rare crash on Qt 5.11.2 when clicking on `