A keyboard-driven, vim-like browser based on Python and Qt.
Go to file
Florian Bruhin 6e0c17b510 Fix some typos 2019-08-01 18:24:47 +02:00
.github Adjust support issue template 2019-05-16 09:17:58 +02:00
doc Fix some typos 2019-08-01 18:24:47 +02:00
icons Resize SVG to comply with freedesktop standard 2019-02-12 16:07:05 +01:00
misc Fix some typos 2019-08-01 18:24:47 +02:00
qutebrowser Fix some typos 2019-08-01 18:24:47 +02:00
scripts Fix some typos 2019-08-01 18:24:47 +02:00
tests Fix some typos 2019-08-01 18:24:47 +02:00
www Fix some typos 2019-08-01 18:24:47 +02:00
.appveyor.yml appveyor: Downgrade to Qt 5.12 2019-07-15 09:53:50 +02:00
.bumpversion.cfg Release v1.7.0 2019-07-18 11:42:06 +02:00
.codecov.yml Make codecov.yml hidden 2017-09-17 21:40:35 +02:00
.coveragerc Configure coverage.py for "if MYPY:" 2018-12-05 09:05:32 +01:00
.editorconfig Add basic editorconfig for enforcing style 2016-04-06 02:55:34 -04:00
.flake8 flake8: Ignore B011 in tests 2019-07-22 11:32:32 +02:00
.gitattributes Add gitattributes for changelog 2018-09-15 20:49:19 +02:00
.gitignore Merge remote-tracking branch 'origin/pr/4086' 2019-07-11 11:01:30 +02:00
.pydocstylerc Add a .pydocstylerc. 2016-01-30 23:39:55 +01:00
.pylintrc Disable bad-builtin pylint rule 2019-04-02 21:46:09 -07:00
.pyup.yml Switch pyup to Mondays 2017-08-24 05:50:33 +02:00
.travis.yml Use separate requirements files for different Qt versions 2019-07-16 11:08:47 +02:00
LICENSE Fix more file move issues 2017-09-17 21:54:42 +02:00
MANIFEST.in Update MANIFEST.in for NSIS changes 2019-07-16 10:50:41 +02:00
README.asciidoc Update QtWebKit info 2019-07-20 15:01:22 +02:00
mypy.ini mypy: Turn on warn_unreachable 2019-07-23 10:54:21 +02:00
pytest.ini Enable QtWebEngine notification tests on >= 5.13 2019-07-05 18:25:59 +02:00
qutebrowser.py Update copyright for 2019 2019-02-22 21:45:08 -08:00
requirements.txt Update pyyaml from 5.1 to 5.1.1 2019-06-24 12:07:41 -07:00
setup.py Fix setup.py after __init__.py changes 2019-07-11 17:49:03 +02:00
tox.ini Remove old tox workaround 2019-07-18 09:52:23 +02:00

README.asciidoc

// If you are reading this in plaintext or on PyPi:
//
// A rendered version is available at:
// https://github.com/qutebrowser/qutebrowser/blob/master/README.asciidoc

qutebrowser
===========

// QUTE_WEB_HIDE
image:icons/qutebrowser-64x64.png[qutebrowser logo] *A keyboard-driven, vim-like browser based on PyQt5 and Qt.*

image:https://travis-ci.org/qutebrowser/qutebrowser.svg?branch=master["Build Status", link="https://travis-ci.org/qutebrowser/qutebrowser"]
image:https://ci.appveyor.com/api/projects/status/5pyauww2k68bbow2/branch/master?svg=true["AppVeyor build status", link="https://ci.appveyor.com/project/qutebrowser/qutebrowser"]
image:https://codecov.io/github/qutebrowser/qutebrowser/coverage.svg?branch=master["coverage badge",link="https://codecov.io/github/qutebrowser/qutebrowser?branch=master"]

link:https://www.qutebrowser.org[website] | link:https://blog.qutebrowser.org[blog] | https://github.com/qutebrowser/qutebrowser/blob/master/doc/faq.asciidoc[FAQ] | https://www.qutebrowser.org/doc/contributing.html[contributing] | link:https://github.com/qutebrowser/qutebrowser/releases[releases] | https://github.com/qutebrowser/qutebrowser/blob/master/doc/install.asciidoc[installing]
// QUTE_WEB_HIDE_END

qutebrowser is a keyboard-focused browser with a minimal GUI. It's based
on Python and PyQt5 and free software, licensed under the GPL.

It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl.

Screenshots
-----------

image:doc/img/main.png["screenshot 1",width=300,link="doc/img/main.png"]
image:doc/img/downloads.png["screenshot 2",width=300,link="doc/img/downloads.png"]
image:doc/img/completion.png["screenshot 3",width=300,link="doc/img/completion.png"]
image:doc/img/hints.png["screenshot 4",width=300,link="doc/img/hints.png"]

Downloads
---------

See the https://github.com/qutebrowser/qutebrowser/releases[github releases
page] for available downloads and the link:doc/install.asciidoc[INSTALL] file for
detailed instructions on how to get qutebrowser running on various platforms.

Documentation
-------------

In addition to the topics mentioned in this README, the following documents are
available:

* https://raw.githubusercontent.com/qutebrowser/qutebrowser/master/doc/img/cheatsheet-big.png[Key binding cheatsheet]: +
image:https://raw.githubusercontent.com/qutebrowser/qutebrowser/master/doc/img/cheatsheet-small.png["qutebrowser key binding cheatsheet",link="https://raw.githubusercontent.com/qutebrowser/qutebrowser/master/doc/img/cheatsheet-big.png"]
* link:doc/quickstart.asciidoc[Quick start guide]
* https://www.shortcutfoo.com/app/dojos/qutebrowser[Free training course] to remember those key bindings
* link:doc/faq.asciidoc[Frequently asked questions]
* link:doc/help/configuring.asciidoc[Configuring qutebrowser]
* link:doc/contributing.asciidoc[Contributing to qutebrowser]
* link:doc/install.asciidoc[Installing qutebrowser]
* link:doc/changelog.asciidoc[Change Log]
* link:doc/stacktrace.asciidoc[Reporting segfaults]
* link:doc/userscripts.asciidoc[How to write userscripts]

Getting help
------------

You can get help in the IRC channel
irc://irc.freenode.org/#qutebrowser[`#qutebrowser`] on
https://freenode.net/[Freenode]
(https://webchat.freenode.net/?channels=#qutebrowser[webchat]), or by writing a
message to the
https://lists.schokokeks.org/mailman/listinfo.cgi/qutebrowser[mailinglist] at
mailto:qutebrowser@lists.qutebrowser.org[].

There's also an https://lists.schokokeks.org/mailman/listinfo.cgi/qutebrowser-announce[announce-only mailinglist]
at mailto:qutebrowser-announce@lists.qutebrowser.org[] (the announcements also
get sent to the general qutebrowser@ list).

If you're a reddit user, there's a
https://www.reddit.com/r/qutebrowser/[/r/qutebrowser] subreddit there.

Contributions / Bugs
--------------------

You want to contribute to qutebrowser? Awesome! Please read
link:doc/contributing.asciidoc[the contribution guidelines] for details and
useful hints.

If you found a bug or have a feature request, you can report it in several
ways:

* Use the built-in `:report` command or the automatic crash dialog.
* Open an issue in the Github issue tracker.
* Write a mail to the
https://lists.schokokeks.org/mailman/listinfo.cgi/qutebrowser[mailinglist] at
mailto:qutebrowser@lists.qutebrowser.org[].

For security bugs, please contact me directly at mail@qutebrowser.org, GPG ID
https://www.the-compiler.org/pubkey.asc[0x916eb0c8fd55a072].

Requirements
------------

The following software and libraries are required to run qutebrowser:

* https://www.python.org/[Python] 3.5 or newer (3.6 recommended)
* https://www.qt.io/[Qt] 5.7.1 or newer (5.12 recommended due to https://bugreports.qt.io/browse/QTBUG-76913[segfaults on media pages with Qt 5.13]); support for < 5.9
  will be dropped soon) with the following modules:
  - QtCore / qtbase
  - QtQuick (part of qtbase in some distributions)
  - QtSQL (part of qtbase in some distributions)
  - QtOpenGL
  - QtWebEngine, or
  - alternatively QtWebKit - only the
    link:https://github.com/qtwebkit/qtwebkit/wiki[updated fork] (5.212) is
    supported. **Note: The latest QtWebKit release is based on old WebKit
    revision with known unpatched vulnerabilities. Please use it carefully and
    avoid visiting untrusted websites and using it for transmission of
    sensitive data.**
* https://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.7.0 or newer
  (5.13 recommended, support for < 5.9 will be dropped soon) for Python 3
* https://pypi.python.org/pypi/setuptools/[pkg_resources/setuptools]
* https://fdik.org/pyPEG/[pyPEG2]
* http://jinja.pocoo.org/[jinja2]
* http://pygments.org/[pygments]
* https://github.com/yaml/pyyaml[PyYAML]
* https://www.attrs.org/[attrs]

The following libraries are optional:

* http://cthedot.de/cssutils/[cssutils] (for an improved `:download --mhtml`
  with QtWebKit).
* On Windows, https://pypi.python.org/pypi/colorama/[colorama] for colored log
  output.
* http://asciidoc.org/[asciidoc] to generate the documentation for the `:help`
  command, when using the git repository (rather than a release).

See link:doc/install.asciidoc[the documentation] for directions on how to
install qutebrowser and its dependencies.

Donating
--------

Working on qutebrowser is a very rewarding hobby, but like (nearly) all hobbies
it also costs some money. Namely I have to pay for the server and domain, and
do occasional hardware upgrades footnote:[It turned out a 160 GB SSD is rather
small - the VMs and custom Qt builds I use for testing/developing qutebrowser
need about 100 GB of space].

If you want to give me a beer or a pizza back, I'm trying to make it as easy as
possible for you to do so. If some other way would be easier for you, please
get in touch!

* SEPA bank transfer inside Europe (no fee): Contact me for details
* PayPal: https://www.paypal.me/thecompiler[thecompiler] / me@the-compiler.org
* Bitcoin: link:bitcoin:1PMzbcetAHfpxoXww8Bj5XqquHtVvMjJtE[1PMzbcetAHfpxoXww8Bj5XqquHtVvMjJtE]

Sponsors
--------

Thanks a lot to https://www.macstadium.com/[MacStadium] for supporting
qutebrowser with a free hosted Mac Mini via their
https://www.macstadium.com/opensource[Open Source Project].

(They don't require including this here - I've just been very happy with their
offer, and without them, no macOS releases or tests would exist)

Thanks to the https://www.hsr.ch/[HSR Hochschule für Technik Rapperswil], which
made it possible to work on qutebrowser extensions as a student research project.

image:.github/img/macstadium.png["powered by MacStadium",width=200,link="https://www.macstadium.com/"]
image:.github/img/hsr.png["HSR Hochschule für Technik Rapperswil",link="https://www.hsr.ch/"]

Authors
-------

qutebrowser's primary author is Florian Bruhin (The Compiler), but qutebrowser
wouldn't be what it is without the help of
https://github.com/qutebrowser/qutebrowser/graphs/contributors[hundreds of contributors]!

Additionally, the following people have contributed graphics:

* Jad/link:https://yelostudio.com[yelo] (new icon)
* WOFall (original icon)
* regines (key binding cheatsheet)

Also, thanks to everyone who contributed to one of qutebrowser's
link:doc/backers.asciidoc[crowdfunding campaigns]!

Similar projects
----------------

Many projects with a similar goal as qutebrowser exist.
Most of them were inspirations for qutebrowser in some way, thanks for that!

Active
~~~~~~

* https://fanglingsu.github.io/vimb/[vimb] (C, GTK+ with WebKit2)
* https://luakit.github.io/luakit/[luakit] (C/Lua, GTK+ with WebKit2)
* https://surf.suckless.org/[surf] (C, GTK+ with WebKit1/WebKit2)
* https://github.com/next-browser/next/[next] (Lisp, Emacs-like, GTK+ with WebKit)
* https://github.com/parkouss/webmacs/[webmacs] (Python, Emacs-like with QtWebEngine)
* Chrome/Chromium addons:
  https://vimium.github.io/[Vimium],
  https://github.com/brookhong/Surfingkeys[Surfingkeys]
* Firefox addons (based on WebExtensions):
  https://github.com/cmcaine/tridactyl[Tridactyl],
  https://addons.mozilla.org/en-GB/firefox/addon/vimium-ff/[Vimium-FF] (experimental),
  https://github.com/brookhong/Surfingkeys[Surfingkeys],
  https://github.com/ueokande/vim-vixen[Vim Vixen],
  https://github.com/amedama41/vvimpulation[VVimpulation]

Inactive
~~~~~~~~

* https://bitbucket.org/portix/dwb[dwb] (C, GTK+ with WebKit1,
https://bitbucket.org/portix/dwb/pull-requests/22/several-cleanups-to-increase-portability/diff[unmaintained] -
main inspiration for qutebrowser)
* https://sourceforge.net/p/vimprobable/wiki/Home/[vimprobable] (C, GTK+ with
  WebKit1)
* https://wiki.archlinux.org/index.php?title=Jumanji[jumanji] (C, GTK+ with WebKit1,
original site is gone but the Arch Linux wiki has some data)
* http://conkeror.org/[conkeror] (Javascript, Emacs-like, XULRunner/Gecko)
* https://www.uzbl.org/[uzbl] (C, GTK+ with WebKit1/WebKit2)
* Firefox addons (not based on WebExtensions or no recent activity):
  http://www.vimperator.org/[Vimperator],
  http://bug.5digits.org/pentadactyl/index[Pentadactyl],
  https://github.com/akhodakivskiy/VimFx[VimFx],
  https://key.saka.io[Saka Key],
  https://github.com/shinglyu/QuantumVim[QuantumVim]
* Chrome/Chromium addons:
  https://chrome.google.com/webstore/detail/vichrome/gghkfhpblkcmlkmpcpgaajbbiikbhpdi?hl=en[ViChrome],
  https://github.com/jinzhu/vrome[Vrome]
  https://github.com/lusakasa/saka-key[Saka Key],
  https://github.com/1995eaton/chromium-vim[cVim]

License
-------

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.

pdf.js
------

qutebrowser optionally uses https://github.com/mozilla/pdf.js/[pdf.js] to
display PDF files in the browser. Windows releases come with a bundled pdf.js.

pdf.js is distributed under the terms of the Apache License. You can
find a copy of the license in `qutebrowser/3rdparty/pdfjs/LICENSE` (in the
Windows release or after running `scripts/dev/update_3rdparty.py`), or online
https://www.apache.org/licenses/LICENSE-2.0.html[here].