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]. // 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. v0.11.1 ------- Fixes ~~~~~ - Fixed empty space being shown after tabs in the tabbar in some cases. - Fixed `:restart` in private browsing mode. - Fixed printing on macOS. - Closing a pinned tab via mouse now also prompts for confirmation. - The "try again" button on error pages works correctly again. - :spawn -u -d is now disallowed. - :spawn -d shows error messages correctly now. v0.11.0 ------- New dependencies ~~~~~~~~~~~~~~~~ - New dependency on `PyQt5.QtOpenGL` if QtWebEngine is used. QtWebEngine depends on QtOpenGL already, but on distributions packaging split PyQt5 wrappers, the wrappers for QtOpenGL are now required. - New dependency on `PyOpenGL` if QtWebEngine is used. Added ~~~~~ - Private browsing is now implemented for QtWebEngine, *and changed its behavior*: The `general -> private-browsing` setting now only applies to newly opened windows, and you can use the `-p` flag to `:open` to open a private window. - New "pinned tabs" feature, with a new `:tab-pin` command (bound to `` by default). - (QtWebEngine) Implemented `:follow-selected`. - New `:clear-messages` command to clear shown messages. - New `ui -> keyhint-delay` setting to configure the delay until the keyhint overlay pops up. - New `-s` option for `:open` to force a HTTPS scheme. - `:debug-log-filter` now accepts `none` as an argument to clear any log filters. - New `--debug-flag` argument which replaces `--debug-exit` and `--pdb-postmortem`. - New `tabs -> favicon-scale` option to scale up/down favicons. - `colors -> statusbar.bg/fg.private` and `.command.private` to customize statusbar colors for private windows. - New `{private}` field displaying `[Private Mode]` for `ui -> window-title-format` and `tabs -> 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://history` page (with lazy loading) - Crash reports are not public anymore. - Paths like `C:` are now treated as absolute paths on Windows for downloads, and invalid paths are handled properly. - Comments in the config file are now placed before the individual options instead of being before sections. - Messages are now hidden when clicked. - stdin is now closed immediately for processes spawned from qutebrowser. - When `ui -> message-timeout` is set to 0, messages are now never cleared. - Middle/right-clicking the blank parts of the tab bar (when vertical) now closes the current tab. - The adblocker now also blocks non-GET requests (e.g. POST). - `javascript:` links can now be hinted. - `:view-source`, `:tab-clone` and `:navigate --tab` now don't open the tab as "explicit" anymore, i.e. (with the default settings) open it next to the active tab. - `qute:*` pages now use `qute://*` instead (e.g. `qute://version` instead of `qute:version`), but the old versions are automatically redirected. - Texts in prompts are now selectable. - The default level for `:messages` is now `info`, not `error` - Trying to focus the currently focused tab with `:tab-focus` now focuses the last viewed tab. - (QtWebEngine) With Qt 5.9, `content -> cookies-store` can now be set without a restart. - (QtWebEngine) With Qt 5.9, better error messages are now shown for failed downloads. - (QtWebEngine) The underlying Chromium version is now shown in the version info. - (QtWebKit) Renderer process crashes now show an error page on Qt 5.9 or newer. - (QtWebKit) storage -> offline-web-application-storage` got renamed to `...-cache` - (QtWebKit) PAC now supports SOCKS5 as type. 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 `:download` on PyQt 5.9. - Cloning a page without history doesn't crash anymore. - When a download results in a HTTP error, it now shows the error correctly instead of crashing. - Pressing ctrl-c while a config error is shown works as intended now. - When the key config isn't writable, we now show an error instead of crashing. - Fixed crash when unbinding an unbound key in the key config. - Fixed crash when using `:debug-log-filter` when `--filter` wasn't given on startup. - Fixed crash with some invalid setting values. - Continuing a search after clearing it now works correctly. - The tabbar and completion should now be more consistently and correctly styled with various system styles. - Applying styiles in `qt5ct` now shouldn't crash anymore. - The validation for colors in stylesheets is now less strict, allowing for all valid Qt values. - `data:` URLs now aren't added to the history anymore. - Accidentally starting with Python 2 now shows a proper error message again. - For some people, running some userscripts crashed - this should now be fixed. - Various other rare crashes should now be fixed. - The settings documentation was truncated with v0.10.1 which should now be fixed. - Scrolling to an anchor in a background tab now works correctly, and javascript gets the correct window size for background tabs. - (QtWebEngine) Added a workaround for a black screen with some setups - (QtWebEngine) Starting with Nouveau graphics now shows an error message instead of crashing in Qt. - (QtWebEngine) Retrying downloads now shows an error instead of crashing. - (QtWebEngine) Cloning a view-source tab now doesn't crash anymore. - (QtWebEngine) `window.navigator.userAgent` is now set correctly when customizing the user agent. - (QtWebEngine) HTML fullscreen is now tracked for each tab separately, which means it's not possible anymore to accidentally get stuck in fullscreen state by closing a tab with a fullscreen video. - (QtWebEngine) `:scroll-page` with `--bottom-navigate` now works correctly. - (QtWebKit) The HTTP cache is disabled on Qt 5.7.1 and 5.8 now as it leads to frequent crashes due to a Qt bug. - (QtWebKit) Fixed Crash when a PAC file returns an invalid value. v0.10.1 ------- Changed ~~~~~~~ - `--qt-arg` and `--qt-flag` can 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 ------- Added ~~~~~ - Userscripts now have a new `$QUTE_COMMANDLINE_TEXT` environment variable, containing the current commandline contents - New `ripbang` userscript to create a searchengine from a duckduckgo bang - link:https://github.com/annulen/webkit/wiki[QtWebKit Reloaded] (also called QtWebKit-NG) is now fully supported - Various new functionality with the QtWebEngine backend: * Printing support with Qt >= 5.8 * Proxy support with Qt >= 5.8 * The `general -> print-element-backgrounds` option with Qt >= 5.8 * The `content -> cookies-store` option * The `storage -> cache-size` option * The `colors -> webpage.bg` option * The HTML5 fullscreen API (e.g. youtube videos) with QtWebEngine * `:download --mhtml` - New `qute:history` URL and `:history` command to show the browsing history - Open tabs are now auto-saved on each successful load and restored in case of a crash - `:jseval` now has a `--file` flag so you can pass a javascript file - `:session-save` now has a `--only-active-window` flag to only save the active window - macOS builds are back, and built with QtWebEngine 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-divider` can now be 0 to disable zooming by mouse wheel - `network -> proxy` can also be set to `pac+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 into `storage -> 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-mode` now refuses to enter modes which can't be entered manually (which caused crashes) - `:record-macro` (`q`) now doesn't try to record macros for special keys without a text - Fixed PAC (proxy autoconfig) not working with QtWebKit - `:download --mhtml` now uses the new file dialog - Word hints are now upper-cased correctly when hints -> uppercase is true - Font validation is now more permissive in the config, allowing e.g. "Terminus (TTF)" as font name - Fixed starting on newer PyQt/sip versions with LibreSSL - When downloading files with QtWebKit, a User-Agent header is set when possible - Fixed showing of keybindings in the :help completion - `:navigate prev/next` now detects `rel` attributes on `` elements, and handles multiple `rel` attributes correctly - Fixed a crash when hinting with target `userscript` and spawning a non-existing script - Lines in Jupyter notebook now trigger insert mode v0.9.1 ------ Fixed ~~~~~ - Prevent websites from downloading files to a location outside of the download folder with QtWebEngine. v0.9.0 ------ Added ~~~~~ - *New dependency:* qutebrowser now depends on the Qt QML module, which is packaged separately in some distributions (as Qt Declarative/QML/Quick). - New `:rl-backward-kill-word` command which does what `:rl-unix-word-rubout` did before v0.8.0. - New `:rl-unix-filename-rubout` command which is similar to readline's `unix-filename-rubout`. - New `fonts -> completion.category` setting to customize the font used for completion category headers. - New `:debug-log-capacity` command to adjust how many lines are logged into RAM (to report bugs which are difficult to reproduce). - New `hide-unmatched-rapid-hints` option to not hide hint unmatched hint labels in rapid mode. - New `{clipboard}` and `{primary}` replacements for the commandline which replace the `:paste` command. - New `:insert-text` command to insert a given text into a field on the page, which replaces `:paste-primary` together with the `{primary}` replacement. - New `:window-only` command to close all other windows. - New `prev-category` and `next-category` arguments to `:completion-item-focus` to focus the previous/next category in the completion (bound to `` and `` by default). - New `:click-element` command to fake a click on a element. - New `:debug-log-filter` command to change console log filtering on-the-fly. - New `:debug-log-level` command to change the console loglevel on-the-fly. - New `general -> yank-ignored-url-parameters` option to configure which URL parameters (like `utm_source` etc.) to strip off when yanking an URL. - Support for the https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API[HTML5 page visibility API] - New `readability` userscript which shows a readable version of a page (using the `readability-lxml` python package) - New `cast` userscript to show a video on a Google Chromecast - New `:run-with-count` command which replaces the (undocumented) `:count:command` syntax. - New `:record-macro` (`q`) and `:run-macro` (`@`) commands for keyboard macros. - New `ui -> hide-scrollbar` setting to hide the scrollbar independently of the `user-stylesheet` setting. - New `general -> default-open-dispatcher` setting to configure what to open downloads with (instead of e.g. `xdg-open` on Linux). - Support for PAC (proxy autoconfig) with QtWebKit Changed ~~~~~~~ - Hints are now drawn natively in Qt instead of using web elements. This has a few implications for users: * The `hints -> opacity` setting does not exist anymore, but you can use `rgba(r, g, b, alpha)` colors instead for `colors -> hints.bg`. * The `hints -> font` setting is not affected by `fonts -> web-family-fixed` anymore. Thus, a transformer got added to change `Monospace` to `${_monospace}`. * Gradients in hint colors can now be configured by using `qlineargradient` and friends instead of `-webkit-gradient`. The most common cases get migrated automatically, but if you drastically changed the defaults, you'll need to manually adjust your config. * Styling hints by styling `qutehint` elements in `user-stylesheet` was never officially supported and does not work anymore. * Hints are now not affected by the page's stylesheet or zoom anymore. - `:bookmark-add` now has a `--toggle` flag which deletes the bookmark if it already exists. - `:bookmark-load` now has a `--delete` flag which deletes the bookmark after loading it. - `:open` now also accepts quickmark names instead of URLs - `:tab-move` now optionally takes an index for absolute moving. - Commands taking either an argument or a count (like `:zoom` or `:tab-focus`) now prefer the count instead of showing an error message. - `:open` now has an `--implicit` argument to treat the opened tab as implicit (i.e. to open it at the position it would be opened if it was a clicked link) - `:download-open` and `:prompt-open-download` now have an optional `cmdline` argument to pass a commandline to open the download with. - `:yank` now has a position argument to select what to yank instead of using flags. - Replacements like `{url}` can now also be used in the middle of an argument. Consequently, commands taking another command (`:later`, `:repeat` and `:bind`) now don't immediately evaluate variables. - Tab titles in the `:buffer` completion now update correctly when a page's title is changed via javascript. - `:hint` now has a `--mode ` flag to override the hint mode configured using the `hints -> mode` setting. - With `new-instance-open-target` set to a tab option, the tab is now opened in the most recently focused (instead of the last opened) window. This can be configured with the new `new-instance-open-target.window` setting. It can also be set to `last-visible` to show the pages in the most recently visible window, or `first-opened` to use the first (oldest) available window. - Word hints now are more clever about getting the element text from some elements. - Completions for `:help` and `:bind` now also show hidden commands - The `:buffer` completion now also filters using the first column (id). - `:undo` has been improved to reopen tabs at the position they were closed. - `:navigate` now takes a count for `up`/`increment`/`decrement`. - The `hints -> auto-follow` setting now can be set to `always`/`full-match`/`unique-match`/`never` to more precisely control when hints should be followed automatically. - Counts can now be used with special keybindings (e.g. with modifiers). This was already implemented for v0.7.0 originally, but got reverted because it caused some issues and then never re-applied. - Sending a command to an existing instance (via "qutebrowser :reload") now doesn't mark it as urgent anymore. - `tabs -> title-format` now treats an empty string as valid. - Bindings for `:`, `/` and `?` are now configured explicitly and not hardcoded anymore. - The `completion -> show` setting can now be set to `always`, `auto` or `never`. - `:open-editor` can now be used in any mode. - Lots of improvements to and bugfixes for the QtWebEngine backend, such as working hints. However, using qutebrowser directly from git is still advised when using `--backend webengine`. - `content -> javascript-can-open-windows` got renamed to `javascript-can-open-windows-automatically`. - `:prompt-accept` now optionally accepts a value which overrides the one entered in the input box. `yes` and `no` can be used as values for yes/no questions. - The new `--qt-arg` and `--qt-flag` arguments can be used to pass arguments/flags to Qt's commandline. - Error/warning/info messages are now shown stacked above the statusbar. This also added various new settings: * `colors -> messages.fg.error` (renamed from `statusbar.fg.error`) * `colors -> messages.bg.error` (renamed from `statusbar.bg.error`) * `colors -> messages.border.error` * `colors -> messages.fg.warning` (renamed from `statusbar.fg.warning`) * `colors -> messages.bg.warning` (renamed from `statusbar.bg.warning`) * `colors -> messages.border.warning` * `colors -> messages.fg.info` * `colors -> messages.bg.info` * `colors -> messages.border.info` * `fonts -> messages.error` * `fonts -> messages.warning` * `fonts -> messages.info` - The `qute:settings` page now also shows option descriptions. - `qute:version` and `qutebrowser --version` now show various important paths - `:spawn`/userscripts now show a nicer error when a script wasn't found - Various functionality now works when javascript is disabled with QtWebKit - Various commands/settings taking `left`/`right`/`previous` arguments now take `prev`/`next`/`last-used` to remove ambiguity. - The `ui -> user-stylesheet` setting now only takes filenames, not CSS snippets - `ui -> window-title-format` now has a new `{backend} ` replacement - `:hint` has a new `--add-history` argument to add the URL to the history for yank/spawn targets. - `:set` now cycles through values if more than one argument is given. - `:open` now opens `default-page` without an URL even without `-t`/`-b`/`-w` given. Deprecated ~~~~~~~~~~ - The `:paste` command got deprecated as `:open` with `{clipboard}` and `{primary}` can be used instead. - The `:paste-primary` command got deprecated as `:insert-text {primary}` can be used instead. - The `:prompt-yes` and `:prompt-no` commands got deprecated as `:prompt-accept yes` and `:prompt-accept no` can be used instead. Removed ~~~~~~~ - The `:yank-selected` command got merged into `:yank` as `:yank selection` and thus removed. - The `:completion-item-prev` and `:completion-item-next` commands got merged into a new `:completion-focus {prev,next}` command and thus removed. - The `ui -> hide-mouse-cursor` setting since it was completely broken and nobody seemed to care. - The `hints -> opacity` setting - see the "Changed" section for details. - The `completion -> auto-open` setting got merged into `completion -> show` and thus removed. - All `--qt-*` arguments got replaced by `--qt-arg` and `--qt-flag` and thus removed. - The `-c`/`--confdir`, `--datadir` and `--cachedir` arguments got removed, as `--basedir` should be sufficient. Fixed ~~~~~ - `:undo` now doesn't undo tabs "closed" by `:tab-detach` anymore. - Fixed an issue with hint chars not being cleared correctly when leaving hint mode. - `:tab-detach` now fails correctly when there's only one tab open. - Various small issues with the command completion - Fixed hang when using multiple spaces in a row with the URL completion - qutebrowser now still starts with an incorrectly configured `$XDG_RUNTIME_DIR`. - Fixed crash when a userscript writes invalid unicode data to the FIFO - Fixed crash when a included HTML was not found v0.8.3 ------ Fixed ~~~~~ - Fixed crash when doing `:`, another corner-case introduced in v0.8.0 - Fixed `:open-editor` (``) on Windows - Fixed crash when setting `general -> auto-save-interval` to a too big value. - Fixed crash when using hints on Void Linux. - Fixed compatibility with Python 3.5.2+ on Debian unstable - Compatibility with pdfjs v1.6.210 - `:bind` can now be used to bind to an alias (binding by editing `keys.conf` already worked before) - The command completion now updates correctly when changing aliases - The tabbar now displays correctly with the Adwaita Qt theme - The default `sk` keybinding now sets the commandline to `:bind` correctly - Fixed crash when closing a window without focusing it - Userscripts now can access QUTE_FIFO correctly on Windows v0.8.2 ------ Fixed ~~~~~ - Fixed `general -> private-browsing` not being set correctly until a restart (which caused e.g. local storage to be enabled). - When hinting input fields (`:t`), also consider input elements without a type. - Fixed crash when opening an invalid URL with a percent-encoded and a real @ in it - Fixed default `;o` and `;O` bindings - Fixed local storage not working (and possible other bugs) when using a relative path with `--basedir`. - Fixed crash when deleting a quickmark with Ctrl-D - Fixed HTML5 video playback on Windows - Fixed crash when using `:prompt-open-download` with a file with chars not encodable with the OS' filesystem encoding (e.g. with `LC_ALL=C`) - Fixed `:prompt-open-download` with a too long filename (> 255 bytes) - Fixed crash when cancelling a download after doing `:prompt-open-download` - Fixed crash when writing a download to disk fails with `:prompt-open-download`. - Fixed `:restart` deleting the basedir when it was given with `--basedir`. v0.8.1 ------ 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 ------ Added ~~~~~ - New `:repeat-command` command (mapped to `.`) to repeat the last command. Note that two former default bundings conflict with that binding, unbinding them via `:unbind .i` and `:unbind .o` is recommended. - New `qute:bookmarks` page which displays all bookmarks and quickmarks. - New `:prompt-open-download` (bound to `Ctrl-X`) which can be used to open a download directly when getting the filename prompt. - New `{host}` replacement for tab- and window titles which evaluates to the current host. - New default binding `;t` for `:hint input`. - New variables `$QUTE_CONFIG_DIR`, `$QUTE_DATA_DIR` and `$QUTE_DOWNLOAD_DIR` available for userscripts. - New option `ui` -> `status-position` to configure the position of the status bar (top/bottom). - New `--pdf ` argument for `:print` WHICH can be used to generate a PDF without a dialog. Changed ~~~~~~~ - `:scroll-perc` now prefers a count over the argument given to it, which means `gg` can be used with a count. - Aliases can now use `;;` to have an alias which executed multiple commands. - `:edit-url` now does nothing if the URL isn't changed in the spawned editor. - `:bookmark-add` can now be passed a URL and title to add that as a bookmark rather than the current page. - New `taskadd` userscript to add a taskwarrior task annotated with the current URL. - `:bookmark-del` and `:quickmark-del` now delete the current page's URL if none is given. 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-messages` setting. - The `general -> wrap-search` setting as searches now always wrap. According to a quick straw poll and prior crash logs, almost nobody is using `wrap-search = false`, and turning off wrapping is not possible with QtWebEngine. - `:edit-url` now doesn't accept a count anymore as its behavior was confusing and it doesn't make much sense to add a count. v0.7.0 ------ Added ~~~~~ - New `:edit-url` command to edit the URL in an external editor. - New `network -> custom-headers` setting to send custom headers with every request. - New `{url:pretty}` commandline replacement which gets replaced by the decoded URL. - New marks to remember a scroll position: - New `:jump-mark` command to jump to a mark, bound to `'` - New `:set-mark` command to set a mark, bound to ```(backtick) - The `'` mark gets set when moving away (hinting link with anchor, searching, etc.) so you can move back with `''` - New `--force-color` argument to force colored logging even if stdout is not a terminal - New `:messages` command to show error messages - New pop-up showing possible keybinding when the first key of a keychain is pressed. This can be turned off using `:set ui keyhint-blacklist *`. - New `hints -> auto-follow-timeout` setting to ignore keypresses after following a hint when filtering in number mode. - New `:history-clear` command to clear the entire history - New `hints -> find-implementation` to select which implementation (JS/Python) should be used to find hints on a page. The `javascript` implementation is better, but slower. - New `inputs` group for `:hint` to hint text input fields. Changed ~~~~~~~ - qutebrowser got a new (slightly updated) logo - `:tab-focus` can now take a negative index to focus the nth tab counted from the right. - `:yank` can now yank the pretty/decoded URL by adding `--pretty` - `:navigate` now clears the URL fragment - `:completion-item-del` (`Ctrl-D`) can now be used in `:buffer` completion to close a tab - Various SSL ciphers are now disabled by default. With recent Qt/OpenSSL versions those already all are disabled, but with older versions they might not be. - Show favicons as window icon with `tabs-are-windows` set. - `:bind ` without a command now shows the existing binding - The optional `colorlog` dependency got removed, as qutebrowser now displays colored logs without it. - URLs are now shown decoded when hovering. - Keybindings are now shown in the command completion - Improved behavior when pasting multiple lines - Rapid hints can now also be used for the `normal` hint target, which can be useful with javascript click handlers or checkboxes which don't actually open a new page. - `:zoom-in` or `:zoom-out` (`+`/`-`) with a too large count now zooms to the smallest/largest zoom instead of doing nothing. - The commandline now accepts partially typed commands if they're unique. - Number hints are now kept filtered after following a hint in rapid mode. - Number hints are now renumbered after filtering - Number hints can now be filtered with multiple space-separated search terms - `hints -> scatter` is now ignored for number hints - Better history implementation which also stores titles. As a consequence, URLs which redirect to another URL are now added to the history too, marked with a `-r` suffix to the timestamp field. Fixed ----- - Fixed using `:hint links spawn` with flags - you can now use things like the `-v` argument for `:spawn` or pass flags to the spawned commands. - Various fixes for hinting corner-cases where following a link didn't work or the hint was drawn at the wrong position. - Fixed crash when downloading from a URL with SSL errors - Close file handles correctly when a download failed - Fixed crash when using `;Y` (`:hint links yank-primary`) on a system without primary selection - Don't display quit confirmation with finished downloads - Fixed updating the tab index in the statusbar when opening a background tab - Fixed a crash when entering `:-- ` in the commandline - Fixed `:debug-console` with PyQt 5.6 - Fixed qutebrowser not starting when `sys.stderr` is `None` - Fixed crash when cancelling a download which belongs to an MHTML download - Fixed rebinding of keybindings being case-sensitive - Fix for tab indicators getting lost when moving tabs - Fixed handling of backspace in number hinting mode - Fixed `FileNotFoundError` when starting in some cases on old Qt versions - Fixed sharing of cookies between tabs when `private-browsing` is enabled - Toggling values with `:set` now uses lower-case values - Hints now work with (non-standard) links with spaces around the URL - Strip off trailing spaces for history entries with no title v0.6.2 ------ Fixed ~~~~~ - Fixed crash when using `:tab-{prev,next,focus}` right after closing the last tab with `last-close` set to `close`. - Fixed crash when doing `:undo` in a new instance with `tabs -> last-close` set to `default-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 ----- 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 ------ Added ~~~~~ - New `:buffer` command to easily switch tabs by name. This is not bound to a key by default for existing users due to a conflict with the `gt`/`gT` bindings (which are now removed from the default bindings). You can bind it by hand by running `:bind -f gt set-cmd-text -s :buffer`. - New `--quiet` argument for the `:debug-pyeval` command to not open a tab with the results. Note `:debug-pyeval` is still only intended for debugging. - The completion now matches each entered word separately. - A new command `:paste-primary` got added to paste the primary selection, and `` got added as a binding so it pastes primary rather than clipboard. - New mode `word` for `hints -> mode` which uses a dictionary and link-texts for hints instead of single characters. - New `--all` argument for `:download-cancel` to cancel all running downloads. - New `password_fill` userscript to fill passwords using the `pass` executable. - New `current` hinting mode which forces opening hints in the current tab (even with `target="_blank"`) Changed ~~~~~~~ - Pasting multiple lines via `:paste` now opens each line in a new tab. - `:navigate increment/decrement` now preserves leading zeroes in URLs. - `general -> editor` can now also handle `{}` inside another argument (e.g. to open `vim` via `termite`) - Improved performance when scrolling with many tabs open. - Shift-Insert now also pastes primary selection for prompts. - `:download-remove --all` got un-deprecated to provide symmetry with `:download-cancel --all`. It does the same as `:download-clear`. - Improved detection of URLs/search terms when pasting multiple lines. - Don't remove `qutebrowser-editor-*` temporary file if editor subprocess crashed - Userscripts are also searched in `/usr/share/qutebrowser/userscripts`. - Blocked hosts are now also read from a `blocked-hosts` file in the config dir (e.g. `~/.config/qutebrowser/blocked-hosts`). Fixed ~~~~~ - Fixed starting with -c "". - Fixed crash when a tab is closed twice via javascript (e.g. Dropbox authentication dialogs) - Fixed crash when a notification/geolocation prompt is answered after closing the tab it belongs to. - Fixed crash when downloading a file without any path information (e.g a magnet link). - Fixed crashes when opening an empty URL (e.g. via pasting). - Fixed validation of duplicate values in `hints -> chars`. - Fixed crash when PDF.js was partially installed. - Fixed crash when XDG_DOWNLOAD_DIR was not an absolute path. - Fixed very long filenames when downloading `data://`-URLs. - Fixed ugly UI fonts on Windows when Liberation Mono is installed - Fixed crash when unbinding key from a section which doesn't exist in the config - Fixed report window after a segfault - Fixed some directory browser issues on Windows - Fixed crash when closing a window with a finished download and delayed `remove-finished-downloads` setting. - Fixed crash when hitting `` then `` 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`/`gT` bindings (luakit-like alternatives to `J`/`K`) were removed (except for existing configs) to make room for the `gt` binding to show buffers. v0.5.1 ------ 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 ------ 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-enabled` setting. - New setting `ui -> hide-wayland-decoration` to hide the window decoration when using wayland. - New userscripts in `misc/userscripts`: - `open_download` to easily open a file in your downloads folder. - `view_in_mpv` to open a video in mpv and remove it from the page. - `qutedmenu` and `dmenu_qutebrowser` to select URLs via dmenu - New setting `content -> host-blocking-whitelist` to whitelist certain domains from the adblocker. - `{scroll_pos}` can now be used in `ui -> window-title-format` and `tabs -> title-format`. - New setting `general -> url-incdec-segments` to configure which segments of the URL should be affected by `:navigate increment/decrement`. - New `--target` argument to specify how URLs should be opened in an existing instance. - New setting `statusbar.url.fg.success.https` to set the foreground color for the URL when a page was loaded via HTTPS. - The scrollbar in the completion is now styled, and the following new options got added: * `completion -> scrollbar-width` * `completion -> scrollbar-padding` * `colors -> completion.scrollbar.fg` * `colors -> completion.scrollbar.bg` - New value `none` for options taking a color system so they don't display a gradient: * `colors -> tabs.indicator.system` * `colors -> downloads.fg.system` * `colors -> downloads.bg.system` - New command `:download-retry` to retry a failed download. - New command `:download-clear` which replaces `:download-remove --all`. - `:set-cmd-text` has a new `--append` argument to append to the current statusbar text. - qutebrowser now uses `~/.netrc` if available to authenticate via HTTP. - New `:fake-key` command to send a fake keypress to a website or to qutebrowser. - New `--mhtml` argument for `:download` to download a page including all ressources as MHTML file. - New option `tabs -> title-alignment` to change the alignment of tab titles. Changed ~~~~~~~ - The `colors -> tabs.bg/fg.selected` option got split into `tabs.bg/fg.selected.odd/even`. - `:spawn --userscript` and `:hint` with the `userscript` target now look up relative paths in `~/.local/share/qutebrowser/userscripts` or `$XDG_DATA_DIR`. Using a binary in `$PATH` won't work anymore with `--userscript`. - New design for error pages - Link filtering for hints now checks if the text is contained anywhere in the link, and matches case-insensitively. - The `ui -> remove-finished-downloads` option got changed to an integer and now takes a time (in milliseconds) to keep the download around after it's finished. When set to `-1`, downloads are never removed. - The `:follow-hint` command now optionally takes the keystring of a hint to follow. - `:scroll-px` now doesn't take floats anymore, which made little sense. - Updated the user agent list for the `:set network user-agent` completion. - Starting with `--debug` doesn't log `VDEBUG` messages anymore (add `--loglevel VDEBUG` to get them). - `:debug-console` now hides the console if it's already shown. - `:yank-selected` now doesn't log the selected text anymore. - `general -> log-javascript-console` got changed from a boolean to an option taking a loglevel (`none`, `info`, `debug`). - `:tab-move +/-` now wraps around if `tabs -> wrap` is `true`. - 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 --all` is now deprecated and `:download-clear` should be used instead. - `:download ` is now deprecated and `:download --dest ` should be used instead. Removed ~~~~~~~ - `:scroll` with two pixel-arguments (deprecated in v0.3.0) - The `:run-userscript` command (deprecated in v0.2.0) - The `rapid` and `rapid-win` targets for `:hint` (deprecated in v0.2.0) - The `:cancel-download` command (deprecated in v0.2.0) - The `:download-page` command (deprecated in v0.2.0) Fixed ~~~~~ - Fixed retrying of downloads which were started in a now closed tab. - Fixed displaying of web history if `web-history-max-items` is set to -1. - Cloned tabs now don't display favicons anymore if show-favicons is False. - Fixed a crash when clicking a bookmark name and pressing `Ctrl-D`. - Fixed a crash when a website presents a very small favicon. - Fixed prompting for download directory when `storage -> prompt-download-directory` was unset. - Fixed crash when using `:follow-hint` outside of hint mode. - Fixed crash when using `:set foo bar?` with invalid section/option. - Fixed scrolling to the very left/right with `:scroll-perc`. - Using an external editor should now work correctly with some funny chars (U+2028/U+2029/BOM). - Movements in caret mode now should work correctly on macOS and Windows. - Fixed upgrade from earlier config versions. - Fixed crash when killing a running userscript. - Fixed characters being passed through when shifted with `forward-unbound-keys` set to `auto`. - Fixed restarting after a crash is reported. - Removed `.pyc` files accidentally contained in source releases. v0.4.1 ------ 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-items` setting is now also respected for items added after starting qutebrowser. - Search terms are now shared between different tabs again - Tests (a reduced subset of them) now run correctly again when DISPLAY is not set. - Fixed an issue causing qutebrowser to crash with Python 3.5 as soon as an ad was blocked. - Fixed an issue causing qutebrowser to not start with more recent Python 3.4 versions (e.g. on Debian experimental). - Fixed various `PendingDeprecationWarnings` shown with Python 3.5. v0.4.0 ------ Added ~~~~~ - New bookmark functionality (similar to quickmarks without a name). * New command `:bookmark-add` to bookmark the current page (bound to `M`). * New command `:bookmark-load` to load a bookmark (bound to `gb`/`gB`/`wB`). - New (hidden) command `:completion-item-del` (bound to ``) to delete the current item in the completion (for quickmarks/bookmarks). - New settings `tabs -> padding` and `tabs -> indicator-tabbing` to control the size/padding of the tabbar. - New setting `ui -> statusbar-padding` to control the size/padding of the status bar. - New setting `network -> referer-header` to configure when the referer should be sent (by default it's only sent while on the same domain). - New setting `tabs -> show` which supersedes the old `tabs -> hide-*` options and has an additional `switching` option which shows tab while switching them. There's also a new `show-switching` option to configure the timeout. - New setting `storage -> remember-download-directory` to remember the last used download directory. - New setting `storage -> prompt-download-directory` to download all downloads without asking. - Rapid hinting is now also possible for downloads. - Directory browsing via `file://` is now supported. 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-selected` command now works in all modes instead of just caret mode and is not hidden anymore. - `minimal_webkit_testbrowser.py` now has a `--webengine` switch to test QtWebEngine if it's installed. - The column width percentages for the completion view now depend on the completion model. - The values for `tabs -> position` and `ui -> downloads-position` got changed from `north`/`south`/`west/`east` to `top`/`bottom`/`left`/`right`. Existing configs should be adjusted automatically. - `:tab-focus`/`gt` now behaves like `:tab-next` if no count/index is given. - The completion widget doesn't show a border anymore. - The tabbar doesn't display ugly arrows anymore if there isn't enough space for all tabs. - Some insignificant Qt warnings which were printed on macOS are now hidden. - Better support for Qt 5.5 and Python 3.5. Fixed ~~~~~ - Fixed a bug where cookies were saved despite qutebrowser being started in private browsing mode. - The local socket used for inter-process communication (opening new instances) is now ensured to only be accessible by the user on all operating systems. - Various corner cases for inter-process communication issues got fixed. - `link_pyqt.py` now should work better on untested distributions. - Fixed various corner-cases with crashes when reading invalid config values and the history file. - Fixed various corner-cases when setting text via an external editor. - Fixed potential crash when hinting a text field. - Fixed entering of insert mode when certain disabled text fields were clicked. - Fixed a crash when using `:set` with `-p` and `!` (invert value) - Downloads with unknown size are now handled correctly. - `:navigate increment/decrement` (``/``) 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-space` setting got removed as the new padding settings should be used instead. - The `tabs -> hide-always` and `tabs -> hide-auto` settings got merged into the new `tabs -> show` setting. v0.3.0 ------ Added ~~~~~ - New commands `:message-info`, `:message-error` and `:message-warning` to show messages in the statusbar, e.g. from a userscript. - New command `:scroll-px` which replaces `:scroll` for pixel-exact scrolling. - New command `:jseval` to run a javascript snippet on the current page. - New (hidden) command `:follow-selected` (bound to `Enter`/`Ctrl-Enter` by default) to follow the link which is currently selected (e.g. after searching via `/`). - New (hidden) command `:clear-keychain` to clear a partially entered keychain (bound to `` by default, in addition to clearing search). - New setting `ui -> smooth-scrolling`. - New setting `content -> webgl` to enable/disable https://www.khronos.org/webgl/[WebGL]. - New setting `content -> css-regions` to enable/disable support for http://dev.w3.org/csswg/css-regions/[CSS Regions]. - New setting `content -> hyperlink-auditing` to enable/disable support for https://html.spec.whatwg.org/multipage/semantics.html#hyperlink-auditing[hyperlink auditing]. - New setting `tabs -> mousewheel-tab-switching` to control mousewheel behavior on the tab bar. - New arguments `--datadir` and `--cachedir` to set the data/cache location. - New arguments `--basedir` and `--temp-basedir` (intended for debugging) to set a different base directory for all data, which allows multiple invocations. - New argument `--no-err-windows` to suppress all error windows. - New arguments `--top-navigate` and `--bottom-navigate` (`-t`/`-b`) for `:scroll-page` to specify a navigation action (e.g. automatically go to the next page when arriving at the bottom). - New flag `-d`/`--detach` for `:spawn` to detach the spawned process so it's not closed when qutebrowser is. - New flag `-v`/`--verbose` for `:spawn` to print informations when the process started/exited successfully. - Many new color settings (foreground setting for every background setting). - New setting `ui -> modal-js-dialog` to use the standard modal dialogs for javascript questions instead of using the statusbar. - New setting `colors -> webpage.bg` to set the background color to use for websites which don't set one. - New setting `completion -> auto-open` to only open the completion when tab is pressed (if set to false). - New visual/caret mode (bound to `v`) to select text by keyboard. - There are now some example userscripts in `misc/userscripts`. - Support for Qt 5.5 and tox 2.0 Changed ~~~~~~~ - *Breaking change for userscripts:* `QUTE_HTML` and `QUTE_TEXT` for userscripts now don't store the contents directly, and instead contain a filename. - The `content -> geolocation` and `notifications` settings now support a `true` value to always allow those. However, this is *not recommended*. - New bindings `` (rapid), `` (foreground) and `` (background) to switch hint modes while hinting. - `` and numpad-enter are now bound by default for bindings where `` was bound. - `:hint tab` and `F` now respect the `background-tabs` setting. To enforce a foreground tab (what `F` did before), use `:hint tab-fg` or `;f`. - `:scroll` now takes a direction argument (`up`/`down`/`left`/`right`/`top`/`bottom`/`page-up`/`page-down`) instead of two pixel arguments (`dx`/`dy`). The old form still works but is deprecated. - The `ui -> user-stylesheet` setting now also takes file paths relative to the config directory. - The `content -> cookies-accept` setting now has new `no-3rdparty` (default) and `no-unknown-3rdparty` values to block third-party cookies. The `default` value got renamed to `all`. - Improved startup time by reading the webpage history while qutebrowser is open. - The way `:spawn` splits its commandline has been changed slightly to allow commands with flags. - The default for the `new-instance-open-target` setting has been changed to `tab`. - Sessions now store zoom/scroll-position separately for each entry. Deprecated ~~~~~~~~~~ - `:scroll` with two pixel-arguments is now deprecated - `:scroll-px` should be used instead. Removed ~~~~~~~ - The `--no-crash-dialog` argument which was intended for debugging only was removed as it's replaced by `--no-err-windows` which suppresses all error windows. - Support for Qt installations without SSL support was dropped. Fixed ~~~~~ - Scrolling should now work more reliably on some pages where arrow keys worked but `hjkl` didn't. - Small improvements when checking if an input is a URL or not. - Fixed wrong cursor position when completing the first item in the completion. - Fixed exception when using search engines with {foo} in their name. - Fixed a bug where the same title was shown for all tabs on some systems. - Don't install the scripts package when installing qutebrowser. - Fixed searching for terms starting with a hyphen (e.g. `/-foo`) - Proxy authentication credentials are now remembered between different tabs. - Fixed updating of the tab title on pages without title. - Fixed AssertionError when closing many windows quickly. - Various fixes for deprecated key bindings and auto-migrations. - Workaround for qutebrowser not starting when there are NUL-bytes in the history (because of a currently unknown bug). - Fixed handling of keybindings containing Ctrl/Meta on macOS. - Fixed crash when downloading a URL without filename (e.g. magnet links) via "Save as...". - Fixed exception when starting qutebrowser with `:set` as argument. - Fixed horrible completion performance when the `shrink` option was set. - Sessions now store zoom/scroll-position correctly. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.2.1[v0.2.1] ----------------------------------------------------------------------- Fixed ~~~~~ - Added missing manpage (doc/qutebrowser.1.asciidoc) to archive. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.2.0[v0.2.0] ----------------------------------------------------------------------- Added ~~~~~ - Session support * new command `:session-load` to load a session. * new command `:session-save` to save a session. * new command `:session-delete` to delete a session. * new setting `general -> save-session` to always save the session on quit. * new setting `general -> session-default-name` to configure the session name to use if none is given. * new argument `-r`/`--restore` to specify a session to load. * new argument `-R`/`--override-restore` to not load a session even if one was saved. - New commands to manage downloads: * `:download` to download a URL or the current page. * `:download-cancel` to cancel a download. * `:download-delete` to delete a download from disk. * `:download-open` to open a finished download. * `:download-remove` to remove a download from the list. `:download-remove --all` or the new 'cd' keybinding can be used to clear all finished downloads. - History completion * New option `completion -> timestamp-format` to set the format used to display the history timestamps. * New option `completion -> web-history-max-items` to configure how many history items to show in the completion. * The option `completion -> history-length` for the command history got renamed to `cmd-history-max-items`. - Better save logic for the config/state: * Only save files if modified (e.g. don't overwrite the config if it was edited outside of qutebrowser and nothing was changed in qutebrowser). * Save things (cookies, config, quickmarks, ...) periodically all 15 seconds (time can be changed with the `general -> auto-save-interval` option). - Opera-like mouse rocker gestures * New option `input -> rocker-gestures`. When turned on, the history can be navigated back/forward by holding a mouse button and pressing the other one. - New `-f` option for `:reload` to reload and bypass the cache. - Pass more information (`QUTE_MODE`, `QUTE_SELECTED_TEXT`, `QUTE_SELECTED_HTML`, `QUTE_USER_AGENT`, `QUTE_HTML`, `QUTE_TEXT`) to userscripts. - New `--userscript` option to `:spawn` (which deprecates `:run-userscript`). - Ability to toggle a value to `:set` by appending a `!` to the value. - New options to hide the tab-/statusbar: * `tabs -> hide-always` for the tabbar * `ui -> hide-statusbar` for the statusbar - New options to configure how the tab/window titles should look: * `tabs -> title-format` for the tabbar * `ui -> window-title-format` for the window title - HTML5 Geolocation/Notification support: * New option `content -> geolocation` to permanently turn the geolocation off. * New option `content -> notifications` to permanently turn notifications off. - New options to disable javascript prompts/alerts: * `content -> ignore-javascript-prompt` to turn off prompts. * `content -> ignore-javascript-alerts` to turn off alerts. - Two new options to customize the behavior of hints: * `hints -> min-chars` to set minimum number of chars in hints. * `hints -> scatter` which when turned off distributes the hints sequentially (like dwb) instead of scattering their positions (like Vimium). - Make it possible to use `:open -[twb]` without url. * New option `general -> default-page` to set the page to be opened when doing that. - New `input -> partial-timeout` option to clear partial keystrings. - New option `completion -> download-path-suggestion` to configure what to show in the completion for downloads. - Queue messages shown in unfocused windows and show them when the window is focused. * New option `ui -> message-unfocused` to disable this behavior. - New `--relaxed-config` argument which ignores unknown options. - New `:tab-detach` command to open the current tab in a new window. - Zooming via Ctrl-Mousewheel. * New option `input -> mouse-zoom-divider` to control how much the page is zoomed when rotating the wheel. - New option (`content -> host-blocking-enabled`) to enable/disable host blocking. - New values `tab-bg`/`tab-bg-silent` for `new-instance-open-target` to open a background tab. - New `ui -> downloads-position` setting to move the downloads to the bottom. - New `ui -> hide-mouse-cursor` option to hide the mouse cursor inside qutebrowser. - New argument `-s` for qutebrowser to set a temporary config option. - New argument `-p` for the `:set` command to print the new value. - New `--rapid` option to `:hint`. The `rapid`/`rapid-win` targets are now deprecated, and `--rapid` can be used as well with the targets run/hover/userscript/spawn as well. - New `-f` argument to `:bind` to overwrite the old binding. - New `--qt-name` argument to qutebrowser which is passed to Qt to set `WM_CLASS`. - Alternating row colors in completion. This adds a new `colors -> completion.alternate-bg` option. 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 `:search` without arguments is given. (`:search ""` will now search for the literal text `""`) * Add `-s`/`--space` argument to `:set-cmd-text` (as `:set-cmd-text "foo "` will now set the literal text `"foo "`) - Ignore `;;` for splitting with some commands like `:bind`. - Add unbound (new) default keybindings to config. This also adds a new `` special command. * To unbind a command keybinding without binding it to a new key, you now have to bind it to `` or it'll be readded automatically. - If an SSL error is raised multiple times with the same error/certificate/host/scheme/port, the user is only asked once. - Jump to last instead of first item when pressing Shift-Tab the first time in the completion. - Add a fullscreen keybinding. - Add a `:search` command in addition to `/foo` so it's more visible and can be used from scripts. - Various improvements to documentation, logging, and the crash reporter. - Expand `~` to the users home directory with `:run-userscript`. - Improve the userscript runner on Linux/macOS by using `QSocketNotifier`. - Add luakit-like `gt`/`gT` keybindings to cycle through tabs. - Show default value for config values in the completion. - Clone tab icon, tab text and zoom level when cloning tabs. - Don't open relative file paths with `:open`, only with commandline arguments. - Expand environment variables in config settings which take a file path. - Add a list of common user agents to the user agent setting completion. - Move cursor to end of textboxes when hinting. - Don't start searches on invalid URLs for quickmarks/startpage. - Various performance improvements for the completion. - Always open URLs given as argument in the foreground. - Improve various error messages. - Add `startpage`/`default-page` values to `tabs -> last-close`. - Various improvements to `:restart` - it should be more robust now and uses sessions so all state (focused tab, scroll position, etc.) gets remembered. - Add tab index display to the statusbar. - Keep progress bar height fixed when the statusbar is multiline. - Many improvements to tests and related infrastructure: * `init_venv.py` and `run_checks.py` have been replaced by http://tox.readthedocs.org/[tox]. Install tox and run `tox -e mkvenv` instead. * The tests now use http://pytest.org/[pytest] * Many new tests added * Mac Mini buildbot to run the tests on macOS. * Coverage recording via http://nedbatchelder.com/code/coverage/[coverage.py]. * New `--pdb-postmortem argument` to drop into the pdb debugger on exceptions. * Use https://github.com/ionelmc/python-hunter[hunter] for line tracing instead of a selfmade solution. Deprecated ~~~~~~~~~~ - The `:run-userscript` command - use `:spawn --userscript` instead. - The `rapid` and `rapid-win` targets for `:hint` - use the `--rapid` argument to `:hint` instead. - The `:cancel-download` command - use `:download-cancel` instead. - The `:download-page` command - use `:download` instead. Removed ~~~~~~~ - `init_venv.py` and `run_checks.py` have been replaced by http://tox.readthedocs.org/[tox]. Install tox and run `tox -e mkvenv` instead.. 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. ``) - Fix for weird search highlights when changing tabs while search is active. - Fix starting with `-c ""`. - Fix removing of partial downloads when a download is cancelled via context menu. - Fix retrying of downloads which were started in a now closed tab. - Highlight text case-insensitively in completion. - Scroll completion to top when showing it. - Handle unencodable file paths in config types correctly. - Fix for crash when executing a delayed command (because of a shadowed keybinding) and then unfocusing the window. - Fix for crash when hinting on a page which doesn't have a URL yet. - Fix exception when using `:set-cmd-text` with an empty argument. - Add a timeout to pastebin HTTP replies. - Various other fixes for small/rare bugs. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.1.4[v0.1.4] ----------------------------------------------------------------------- Changed ~~~~~~~ * The Windows builds come with Qt 5.4.1 which has some https://lists.schokokeks.org/pipermail/qutebrowser/2015-March/000054.html[related bugfixes]. * Improvements to CPU usage when idle. * Ensure there's no size for `font-family` settings. * Handle URLs with double-colon as search strings. * Adjust prompt size hint based on content. * Refactor websettings and save/restore defaults. * Various small improvements to logging. * Various improvements for hinting. * Improve parsing of `faulthandler` logs. 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*` in `utils.fake_io` on exceptions. * Allow font names with integers in them. * Fix `QIODevice` warnings when closing tabs. * Set the `QSettings` path to a config-subdirectory. * Add workaround for adblock-message without window. * Fix searching for terms starting with a slash. * Ignore tab key presses if they'd switch focus. Security ~~~~~~~~ * Stop the icon database from being created when private-browsing is set to true. * Disable insecure SSL ciphers. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.1.3[v0.1.3] ----------------------------------------------------------------------- Changed ~~~~~~~ * Various small logging improvements. * Don't open relative files in `fuzzy_url` with `: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 `NetworkManager` after downloads finished. * Fix restoring of cmd widget after an error. * Fix retrying of downloads after the tab is closed. * Fix `check_libraries()` output for Arch Linux. * Handle all `IPCErrors` properly. * Handle another `webelem.IsNullError` with hints. * Handle `UnicodeDecodeError` when reading configs. Security ~~~~~~~~ * Fix for HTTP passwords accidentally being written to debug log. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.1.2[v0.1.2] ----------------------------------------------------------------------- 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 `!important` to hint CSS so websites don't override the hint look * Make `init_venv.py` work with multiple sip `.so` files. * Fix splitting with certain commands with an empty argument * Fix uppercase hints. * Fix segfaults if another page is loaded while a prompt is open * Fix exception with invalid `ShellCommand` config values. * Replace unencodable chars * Fix user-stylesheet setting with an empty value. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.1.1[v0.1.1] ----------------------------------------------------------------------- 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-requests` option. * 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 `:restart` correctly with Python eggs. * Handle an invalid cwd properly. * Fix popping of a dead question in prompter. * Fix `AttributeError` on config changes on Ubuntu. * Don't treat things like "31c3" as IP address. * Handle category being `None` in Qt message handler. * Force-include pygments in `freeze.py`. * Fix scroll percentage not updating on some pages like twitter. * Encode `Content-Disposition` header name properly. * Fix item sorting in `NeighborList`. * Handle data being `None` in download read timer. * Stop download read timer when reply has finished. * Fix handling of small/big `fuzzyval`'s in `NeighborList`. * Fix crashes when entering invalid values in `qute:settings`. * Abort questions in `NetworkManager` when destroyed. * Fix height calculation of download view. * Always auto-remove adblock downloads when done. * Ensure the docs get included in `freeze.py`. * Fix crash with `:zoom`. https://github.com/qutebrowser/qutebrowser/releases/tag/v0.1[v0.1] ------------------------------------------------------------------- Initial release.