* Wed Jul 11 2018 9+suse@cirno.systems
- Update to version 1.4.1:
Security:
* CVE-2018-10895: Fix CSRF issue on the qute://settings page,
leading to possible arbitrary code execution (boo#1100968).
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.
* Worked around a Qt issue which redirects to a
chrome-error:// page when trying to use U2F.
* The link_pyqt.py script now works correctly with PyQt 5.11.
* Tue Jul 03 2018 9+suse@cirno.systems
- Update %description
- Update to version 1.4.0:
Added:
* Support for the bundled sip module in PyQt 5.11 and other
changes in Qt/PyQt 5.11.x.
* New --debug-flag log-requests to log requests to the debug
log for debugging.
* New --first flag for :hint (bound to gi for inputs) which
automatically selects the first hint.
* New input.escape_quits_reporter setting which can be used to
avoid accidentally quitting the crash reporter when pressing
escape.
* New qute-lastpass userscript which uses the LastPass CLI to
fill passwords.
* The Makefile now installs a
/usr/share/metainfo/qutebrowser.appdata.xml file.
* QtWebEngine: Support for printing from webpages via
window.print.
* QtWebEngine: Support for muting tabs:
+ New {audio} field for window.title_format and
tabs.title.format which displays [M]/[A] for
muted/recently audible tabs.
+ New :tab-mute command (bound to <Alt-m>) to mute/unmute a
tab.
* QtWebEngine: Support for content.cookies.accept with
third-party cookies blocked by default (requires Qt 5.11).
* QtWebEngine: New settings:
+ Support for requesting persistent storage via
navigator.webkitPersistentStorage.requestQuota with a new
content.persistent_storage setting (requires Qt 5.11).
This setting also supports URL patterns.
+ Support for registering custom protocol handlers via
navigator.registerProtocolHandler with a new
content.register_protocol_handler setting (requires
Qt 5.11). This setting also supports URL patterns.
+ Support for WebRTC screen sharing with a new
content.desktop_capture setting (requires Qt 5.10).
This setting also supports URL patterns.
+ New content.autoplay setting to enable/disable automatic
video playback (requires Qt 5.10).
+ New content.webrtc_public_interfaces_only setting to only
expose public interfaces over WebRTC (requires Qt 5.9.2
or 5.11).
+ New content.canvas_reading setting 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
* New short flags for commandline arguments: -B and -T for
- -basedir and --temp-basedir; -d and -D for --debug and
- -debug-flag.
* Deleting history items via :history-clear or
:completion-item-del now 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_rendering setting changed from a
boolean to taking different values (software-opengl,
qt-quick and chromium) 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 yank and yank-primary
targets, copying newline-separated links.
* QtWebEngine: On Qt 5.11, the developer tools (inspector) can
now be used securely and without requiring the
- -enable-webengine-inspector option.
* The <Enter> key (:follow-selected) now follows the currently
focused element if there's no selection.
* The --logfilter argument now can be prepended with an
exclamation mark (e.g. --logfilter '!init,destroy') to
invert the filter.
* :view-source now has a --pygments flag 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 ~/.netrc occurs, 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 the qute://history page (boo#1100968,
CVE-2018-1000559).
* 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:
* :tab-detach which has been deprecated in v1.1.0 has been
removed.
* The content.developer_extras setting got removed.
On QtWebKit, developer extras are now automatically enabled
when opening the inspector.
* Fri Jun 22 2018 9+suse@cirno.systems
- Update to version 1.3.3:
Security:
* An XSS vulnerability on the qute://history page 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.
This issue has been assigned CVE-2018-1000559.
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.
* Wed Jun 13 2018 9+suse@cirno.systems
- Update to version 1.3.2:
* 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:// or mailto: via hints.
* Tue May 29 2018 9+suse@cirno.systems
- Update to version 1.3.1:
* 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.
* Fri May 04 2018 9+suse@cirno.systems
- Use upstream Makefile to install
* Package scripts and manpage
- Package AppStream metadata
- Update to version 1.3.0:
Added:
* New :scroll-to-anchor command to scroll to an anchor in the
document.
* New url.open_base_url option to open the base URL of a
searchengine when no search term is given.
* New tabs.min_width setting to configure the minimal width
for tabs.
* New userscripts:
+ getbib to download bibtex information for DOIs on a page.
+ qute-keepass to 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.
* :version now 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_decoration setting got renamed to
window.hide_decoration and now also works outside of wayland.
* The tabs.favicons.show setting now can take three values:
'always' (was True), 'never' (was False) 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.lists was
changed to only include https://github.com/StevenBlack/hosts
which combines various sources.
* Error messages when trying to wrap when tabs.wrap is False
are 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_delay setting now has a correct maximum
value limit set.
* The taskadd script 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 .exe files now works when upx is 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-take"
completion.
* A rare crash when cancelling a download has been fixed.
* The Makefile (intended for packagers) now supports PREFIX
properly.
* 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.
* "@match" in 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.
* Wed Mar 14 2018 9+suse@cirno.systems
- Update to version 1.2.1:
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.
* 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 no Num+ 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.
* Sat Mar 10 2018 9+suse@cirno.systems
- Update keyring
- Update to version 1.2.0:
Added:
* Initial implementation of per-domain settings:
+ :set and :config-cycle now have a -u/--pattern argument
taking a URL match pattern for supported settings.
+ config.set in config.py now takes a third argument which is
the pattern.
+ New with config.pattern('...') as p: context manager for
config.py to use the shorthand syntax with a pattern.
+ New tsh keybinding to toggle scripts for the current host.
With a capital S, the toggle is saved. With a capital H,
subdomains are included. With u instead of h, the exact
current URL is used.
+ New tph keybinding 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-load has a new --delete flag which deletes the
session after loading it.
+ New --no-last flag for :tab-focus to not focus the last tab
when focusing the currently focused one.
+ New --edit flag for :view-source to open the source in an
external editor.
+ New --select flag for :follow-hint which 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.widgets to configure which widgets should be
shown in which order in the statusbar.
+ tabs.mode_on_change which replaces
tabs.persist_mode_on_change. It can now be set to restore
which remembers input modes (input/passthrough) per tab.
+ input.insert_mode.auto_enter which makes it possible to
disable entering insert mode automatically when an editable
element was clicked. Together with
input.forward_unbound_keys, this should allow for
emacs-like "modeless" keybindings.
* New :prompt-yank command (bound to Alt-y by default) to yank
URLs referenced in prompts.
* The hostblock_blame script which was removed in v1.0 was
updated for the new config and re-added.
* New cycle-inputs.js script in scripts/ which can be used with
:jseval -f to 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 prompt
section anymore, they have their own yesno section instead.
+ Trying to bind invalid keys now shows an error.
+ The bindings.default setting can now only be set in a
config.py, and existing values in autoconfig.yml are
ignored.
* Improvements for GreaseMonkey support:
+ @include and @exclude now 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-editor and :config-edit,
the changes are now applied as soon as the file is saved in
the editor.
* The hist_importer.py script 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-only with pinned tabs now still closes unpinned tabs.
* The url.incdec_segments option now also can take port as
possible segment.
* QtWebEngine: :view-source now uses Chromium's view-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 :version page 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-selected should 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-V or Shift-Insert are 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-source now displays a valid URL.
* URLs containing ampersands and other special chars are now
shown correctly when filtering them in the completion.
* :bookmark-add "" foo can now be used to save the current URL
with a custom title.
* :spawn -o now 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-source
and :config-edit.
* When using :bookmark-add --toggle, bookmarks are now saved
properly.
* Crash with an empty completion.timestamp_format.
* Crash when completion.min_chars is 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_mappings to an empty value is now
allowed.
* Bindings to an empty commands are now ignored rather than
crashing.
Removed:
* QUTE_SELECTED_HTML is now not set for userscripts anymore
except when called via hints.
* The qutebrowser_viewsource userscript has been removed as
:view-source --edit can now be used.
* The tabs.persist_mode_on_change setting has been removed and
replaced by tabs.mode_on_change.
* Thu Mar 01 2018 9+suse@cirno.systems
- Update to version 1.1.2:
Fixed:
* QtWebEngine: Crash with Qt 5.10.1 when using :undo on some
tabs.
* Compatibility with Python 3.7
- Use %license macro
* Sat Jan 20 2018 9@cirno.systems
- Update to version 1.1.1:
* Fixed crashes with Qt 5.10 when closing a tab before it
finished loading.
* Mon Jan 15 2018 9@cirno.systems
- Update to version 1.1.0:
Added:
* Initial support for Greasemonkey scripts. There are still
some rough edges, but many scripts should already work.
* New fields for window.title_format and tabs.title.format:
+ {current_url}
+ {protocol}
* New settings:
+ colors.statusbar.passthrough.fg/.bg
+ completion.delay and completion.min_chars to update the
completion less often.
+ completion.use_best_match to automatically use the
best-matching command in the completion.
+ keyhint.radius to configure the edge rounding for the key
hint widget.
+ qt.highdpi to turn on Qt's High-DPI scaling.
+ tabs.pinned.shrink (true by default) to make it possible
for pinned tabs and normal tabs to have the same size.
+ content.windowed_fullscreen to show e.g. a fullscreened
video in the window without fullscreening that window.
+ tabs.persist_mode_on_change to keep the current mode when
switching tabs.
+ session.lazy_restore which allows to not load pages
immediately when restoring a session.
* New commands:
+ :tab-give and :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-command to edit the commandline in an editor.
+ search.incremental for incremental text search.
* New flags for existing commands:
+ -o flag for :spawn to show stdout/stderr in a new tab.
+ --rapid flag for :command-accept (bound to Ctrl-Enter by
default), which allows executing a command in the
completion without closing it.
+ --private and --related flags for :edit-url, which have the
same effect they have with :open.
+ --history for :completion-item-focus which 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.
+ --file for :debug-pyeval which makes it take a filename
instead of a line of code.
* New config.source(...) method for config.py to source another
file.
* New {line} and {column} replacements for editor.command to
position the cursor correctly.
* New qute-pass userscript as alternative to password_fill
which allows selecting accounts via rofi or any other
dmenu-compatile application.
* New hist_importer.py script 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.py script now uses Pygments (which is
already a dependency of qutebrowser) instead of
source-highlight for syntax highlighting.
* The :buffer command now doesn't require quoting anymore,
similar to :open.
* The importer.py script was largely rewritten and now also
supports importing from Firefox' places.sqlite file and
Chrome/Chromium profiles.
* Various internal refactorings to use Python 3.5 and
ECMAscript 6 features.
* If the window.hide_wayland_decoration setting is False, but
QT_WAYLAND_DISABLE_WINDOWDECORATION is set in the
environment, the decorations are still hidden.
* The install_dict.py script for QtWebEngine was renamed to
dictcli.py and can now also upgrade dictionaries correctly.
* :undo now can re-open multiple tabs after :tab-only was used.
* :config-write-py with a relative path now puts the file into
the config directory.
* The qute://version page now also shows the uptime of
qutebrowser.
* qutebrowser now prompts to create a non-existing directory
when starting a download.
* :jseval --file now searches relative paths in a js/ 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 :open completion.
* 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.fg setting 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 :home on pinned tabs is now prevented.
* Fix crash with unknown file types loaded via qute://help.
* Scrolling performance improvements.
* Sites like qute://help now redirect to qute://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 :yank or qute:// URLs.
* Fixed crash when opening qute://help/img.
* Fixed gU (:navigate up) on qute://help and webservers not
handling .. in a URL.
* Using e.g. -s backend webkit to set the backend now works
correctly.
* Fixed crash when closing the tab an external editor was
opened in.
* When using :search-next before a search is finished, no
warning about no results being found is shown anymore.
* Fix :click-element with 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-detach has been deprecated, as :tab-give without
argument can be used instead.
Removed:
* The long-deprecated :prompt-yes, :prompt-no, :paste-primary
and :paste commands 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.unfocused option which wasn't used anymore was
removed.
* The x[xtb] default bindings got removed again as many users
accidentally triggered them.
* Tue Nov 28 2017 9@cirno.systems
- Update to version 1.0.4:
* The qute://gpl page now works correctly again.
* Trying to bind an empty command now doesn't crash anymore.
* Fixed crash when :config-write-py fails 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)
* Sat Nov 04 2017 aavindraa@gmail.com
- Update to version 1.0.3:
* Changed
+ Performance improvements for tab rendering.
+ The :open-editor command is not hidden anymore and also usable
in normal mode.
+ Security enhancements for macos and windows builds
* 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 no longer binds it again
+ Completions are now sorted correctly again when filtered
* Sat Oct 21 2017 sor.alexei@meowr.ru
- Add the missing python3-attrs dependency (boo#1064515).
* Tue Oct 17 2017 aavindraa@gmail.com
- Update to version 1.0.2:
* 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() in
config.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
* Includes fixes from 1.0.1:
+ Fixed starting after customizing fonts.tabs or
fonts.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).
* Thu Oct 12 2017 aloisio@gmx.com
- Update to version 1.0.0
* 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-attr in 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 link:qute://help/configuring.html[] for
details.
* Various documentation files got moved to the doc/ subfolder;
qutebrowser.desktop got moved to misc/.
* :set now 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_items got changed to -1 (unlimited).
If the completion is too slow on your machine, try setting it to
a few 1000 items.
Added:
* QtWebEngine: Spell checking support, see the
spellcheck.languages setting.
* New qt.args setting to pass additional arguments to
Qt/Chromium.
* New backend setting 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-cycle to cycle an option between multiple values.
+ :config-unset to remove a configured option.
+ :config-clear to remove all configured options.
+ :config-source to (re-)read a config.py file.
+ :config-edit to open the config.py file in an editor.
+ :config-write-py to write a config.py template file.
* New :version command which opens qute://version.
* New back/forward indicator in the statusbar.
* New bindings.key_mappings setting to map keys to other keys.
* QtWebEngine: Support for proxy authentication.
Changed:
* Using :download now uses the page's title as filename.
* Using :back or :forward with a count now skips intermediate
pages.
* When there are multiple messages shown, the timeout is
increased.
* :search now only clears the search if one was displayed
before, so pressing <Escape> doesn't un-focus inputs anymore.
* Pinned tabs now adjust to their text's width, so the
tabs.width.pinned setting got removed.
* :set-cmd-text now has a --run-on-count argument to run the
underlying command directly if a count was given.
* :scroll-perc got 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 --harfbuzz and --relaxed-config commandline arguments got
dropped.
Fixes:
* Exiting fullscreen via :fullscreen or buttons on a page now
restores the correct previous window state
(maximized/fullscreen).
* When input.insert_mode.auto_load is 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_decoration setting now works correctly
again.
* Sun Aug 13 2017 9@cirno.systems
- Update to version 0.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 <Ctrl-p> by default).
+ (QtWebEngine) Implemented :follow-selected.
+ New :clear-messages command to clear shown messages.
+ New ui -> keyhint-delay setting to configure the delay until
the keyhint overlay pops up.
+ New -s option for :open to force a HTTPS scheme.
+ :debug-log-filter now 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.
+ Improved qute://history page (with lazy loading)
+ Crash reports are not public anymore.
+ 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-storagegot renamed to
...-cache
+ (QtWebKit) PAC now supports SOCKS5 as type.
* Fixed:
+ 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.
* Tue May 02 2017 sor.alexei@meowr.ru
- Update to version 0.10.1:
* --qt-arg and --qt-flag can now also be used to pass arguments
to Chromium when using QtWebEngine.
* URLs are now redacted properly (username/password, and
path/query for HTTPS) when using Proxy Autoconfig with QtWebKit.
* Fix a crash when updating adblock lists with invalid UTF8-chars
in them.
* Fix 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.
* Fix a crash when trying to print a tab which was closed in the
meantime.
- Add the missing python3-sip dependency (boo#1036934).
* Sun Feb 26 2017 sor.alexei@meowr.ru
- Update to version 0.10.0:
* Userscripts now have a new `$QUTE_COMMANDLINE_TEXT` environment
variable, containing the current commandline contents.
* A new `ripbang` userscript to create a searchengine from a
duckduckgo bang.
* QtWebKit Reloaded (https://github.com/annulen/webkit) 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);
+ `:download --mhtml`.
* A 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.
* 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
not available.
* :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).
* Fix various bugs with Qt 5.8 and QtWebEngine:
+ a segfault when closing a window;
+ a segfault when closing a tab with a search active;
+ fix 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;
+ fix 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.
* Fix PAC (proxy autoconfig) not working with QtWebKit.
* `:download --mhtml` now uses the new file dialogue.
* 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.
* Fix starting on newer PyQt/sip versions with LibreSSL.
* When downloading files with QtWebKit, a User-Agent header is
set when possible.
* Fix showing keybindings in the :help completion.
* `:navigate prev/next` now detects `rel` attributes on `<a>`
elements, and handles multiple `rel` attributes correctly.
* Fix a crash when hinting with target `userscript` and spawning
a non-existing script.
* Lines in Jupyter notebook now trigger insert mode.
* Sat Feb 25 2017 otto.tuominen@openmailbox.org
- Update to version 0.9.1 (changes since 0.8.1):
* Prevent websites from downloading files to a location outside of the download
folder with QtWebEngine.
* New dependency: qutebrowser now depends on the Qt QML module, which is
packaged separately in some distributions (as Qt Declarative/QML/Quick).
* New :rl-backward-kill-word command which does what :rl-unix-word-rubout
did before v0.8.0.
* New :rl-unix-filename-rubout command which is similar to readline's
unix-filename-rubout.
* New fonts -> completion.category setting to customize the font used for
completion category headers.
* New :debug-log-capacity command to adjust how many lines are logged into RAM
(to report bugs which are difficult to reproduce).
* New hide-unmatched-rapid-hints option to not hide hint unmatched hint labels
in rapid mode.
* New {clipboard} and {primary} replacements for the commandline which
replace the :paste command.
* New :insert-text command to insert a given text into a field on the page,
which replaces :paste-primary together with the {primary} replacement.
* New :window-only command to close all other windows.
* New prev-category and next-category arguments to :completion-item-focus
to focus the previous/next category in the completion (bound to <Ctrl-Tab>
* and <Ctrl-Shift-Tab> by default).
* New :click-element command to fake a click on a element.
* New :debug-log-filter command to change console log filtering on-the-fly.
* New :debug-log-level command to change the console loglevel on-the-fly.
* New general -> yank-ignored-url-parameters option to configure which URL
parameters (like utm_source etc.) to strip off when yanking an URL.
* Support for the HTML5 page visibility API
* New readability userscript which shows a readable version of a page (using
the readability-lxml python package)
* New cast userscript to show a video on a Google Chromecast
* New :run-with-count command which replaces the (undocumented) :count:command syntax.
* New :record-macro (q) and :run-macro (@) commands for keyboard macros.
* New ui -> hide-scrollbar setting to hide the scrollbar independently of the
user-stylesheet setting.
* New general -> default-open-dispatcher setting to configure what to open
downloads with (instead of e.g. xdg-open on Linux).
* Support for PAC (proxy autoconfig) with QtWebKit
* Hints are now drawn natively in Qt instead of using web elements. This has a
few implications for users:
The hints -> opacity setting does not exist anymore, but you can use
rgba(r, g, b, alpha) colors instead for colors -> hints.bg.
The hints -> font setting is not affected by
fonts -> web-family-fixed anymore. Thus, a transformer got added to
change Monospace to ${_monospace}.
Gradients in hint colors can now be configured by using qlineargradient
and friends instead of -webkit-gradient. The most common cases get
migrated automatically, but if you drastically changed the defaults,
you'll need to manually adjust your config.
Styling hints by styling qutehint elements in user-stylesheet was
never officially supported and does not work anymore.
Hints are now not affected by the page's stylesheet or zoom anymore.
* :bookmark-add now has a --toggle flag which deletes the bookmark if it
already exists.
* :bookmark-load now has a --delete flag which deletes the bookmark after
loading it.
* :open now also accepts quickmark names instead of URLs
* :tab-move now optionally takes an index for absolute moving.
* Commands taking either an argument or a count (like :zoom or :tab-focus)
now prefer the count instead of showing an error message.
* :open now has an --implicit argument to treat the opened tab as implicit
(i.e. to open it at the position it would be opened if it was a clicked link)
* :download-open and :prompt-open-download now have an optional cmdline
argument to pass a commandline to open the download with.
* :yank now has a position argument to select what to yank instead of using
flags.
* Replacements like {url} can now also be used in the middle of an argument.
* Consequently, commands taking another command (:later, :repeat and
:bind) now don't immediately evaluate variables.
* Tab titles in the :buffer completion now update correctly when a page's
title is changed via javascript.
* :hint now has a --mode <mode> flag to override the hint mode configured
using the hints -> mode setting.
* With new-instance-open-target set to a tab option, the tab is now opened in
the most recently focused (instead of the last opened) window. This can be
configured with the new new-instance-open-target.window setting.
* It can also be set to last-visible to show the pages in the most recently
visible window, or first-opened to use the first (oldest) available window.
* Word hints now are more clever about getting the element text from some elements.
* Completions for :help and :bind now also show hidden commands
* The :buffer completion now also filters using the first column (id).
* :undo has been improved to reopen tabs at the position they were closed.
* :navigate now takes a count for up/increment/decrement.
* The hints -> auto-follow setting now can be set to
always/full-match/unique-match/never to more precisely control when
hints should be followed automatically.
* Counts can now be used with special keybindings (e.g. with modifiers).
This was already implemented for v0.7.0 originally, but got reverted because
it caused some issues and then never re-applied.
* Sending a command to an existing instance (via "qutebrowser :reload") now
doesn't mark it as urgent anymore.
* tabs -> title-format now treats an empty string as valid.
* Bindings for :, / and ? are now configured explicitly and not hardcoded
anymore.
* The completion -> show setting can now be set to always, auto or
never.
* :open-editor can now be used in any mode.
* Lots of improvements to and bugfixes for the QtWebEngine backend, such as
working hints. However, using qutebrowser directly from git is still advised
when using --backend webengine.
content -> javascript-can-open-windows got renamed to
javascript-can-open-windows-automatically.
* :prompt-accept now optionally accepts a value which overrides the one
entered in the input box. yes and no can be used as values for yes/no
questions.
* The new --qt-arg and --qt-flag arguments can be used to pass
arguments/flags to Qt's commandline.
* Error/warning/info messages are now shown stacked above the statusbar.
* This also added various new settings:
colors -> messages.fg.error (renamed from statusbar.fg.error)
colors -> messages.bg.error (renamed from statusbar.bg.error)
colors -> messages.border.error
colors -> messages.fg.warning (renamed from statusbar.fg.warning)
colors -> messages.bg.warning (renamed from statusbar.bg.warning)
colors -> messages.border.warning
colors -> messages.fg.info
colors -> messages.bg.info
colors -> messages.border.info
fonts -> messages.error
fonts -> messages.warning
fonts -> messages.info
* The qute:settings page now also shows option descriptions.
* qute:version and qutebrowser --version now show various important paths
* :spawn/userscripts now show a nicer error when a script wasn't found
* Various functionality now works when javascript is disabled with QtWebKit
* Various commands/settings taking left/right/previous arguments now take
prev/next/last-used to remove ambiguity.
* The ui -> user-stylesheet setting now only takes filenames, not CSS snippets
* ui -> window-title-format now has a new {backend} replacement
* :hint has a new --add-history argument to add the URL to the history for
yank/spawn targets.
* :set now cycles through values if more than one argument is given.
* :open now opens default-page without an URL even without -t/-b/-w given.
* The :paste command got deprecated as :open with {clipboard} and
{primary} can be used instead.
* The :paste-primary command got deprecated as :insert-text {primary} can
be used instead.
* The :prompt-yes and :prompt-no commands got deprecated as
:prompt-accept yes and :prompt-accept no can be used instead.
* The :yank-selected command got merged into :yank as :yank selection
and thus removed.
* The :completion-item-prev and :completion-item-next commands got merged
into a new :completion-focus {prev,next} command and thus removed.
* The ui -> hide-mouse-cursor setting since it was completely broken and
nobody seemed to care.
* The hints -> opacity setting - see the "Changed" section for details.
* The completion -> auto-open setting got merged 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.
* :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 accidentally broke compatibility with Python 3.4, which is restored with this release.
* Fixed crash when doing :<space><enter>, another corner-case introduced in v0.8.0
* Fixed :open-editor (<Ctrl-e>) on Windows
* Fixed crash when setting general -> auto-save-interval to a too big value.
* Fixed crash when using hints on Void Linux.
* Fixed compatibility with Python 3.5.2+ on Debian unstable
* Compatibility with pdfjs v1.6.210
* :bind can now be used to bind to an alias (binding by 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
* Fixed general -> private-browsing not being set correctly until a restart
(which caused e.g. local storage to be enabled).
* Fixed crash when using hints with JS disabled in some rare circumstances.
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 HTML5 video playback on Windows