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

qutebrowser
===========
:icons:
:data-uri:

_A keyboard-driven, vim-like browser based on PyQt5 and QtWebKit._

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

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

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

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

* link:doc/FAQ.asciidoc[Frequently asked questions]
* link:doc/HACKING.asciidoc[HACKING]
* link:doc/readme.asciidoc[Reporting segfaults]

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

You can get help in the IRC channel
irc://irc.freenode.org/#qutebrowser[`#qutebrowser`] on
http://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[].

Running qutebrowser
-------------------

After installing the <<requirements,requirements>>, you have these options:

* Run qutebrowser directly via `./qutebrowser.py` in the toplevel directory.
* Run `python3 setup.py install` to install qutebrowser, then call
`qutebrowser`.

NOTE: If you're running qutebrowser from the git repository rather than a
released version, you should run `scripts/asciidoc2html.py` to generate the
documentation.

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

You want to contribute to qutebrowser? Awesome! Please read
link:doc/HACKING.asciidoc[HACKING] 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
http://www.the-compiler.org/pubkey.asc[0xFD55A072].

[[requirements]]
Requirements
------------

The following software and libraries are required to run qutebrowser:

* http://www.python.org/[Python] 3.4
* http://qt-project.org/[Qt] 5.2.0 or newer (5.3.2 recommended)
* QtWebKit
* http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.2.0 or newer
(5.3.2 recommended) for Python 3
* https://pypi.python.org/pypi/setuptools/[pkg_resources/setuptools]
* http://fdik.org/pyPEG/[pyPEG2]
* http://jinja.pocoo.org/[jinja2]
* http://pygments.org/[pygments]

To generate the documentation for the `:help` command, when using the git
repository (rather than a release), http://asciidoc.org/[asciidoc] is needed.

The following libraries are optional and provide colored logging in the
console:

* https://pypi.python.org/pypi/colorlog/[colorlog]
* On Windows: https://pypi.python.org/pypi/colorama/[colorama]

On Debian
~~~~~~~~~

----
# apt-get install python3-pyqt5 python3-pyqt5.qtwebkit python3-pkg-resources
python3-pip python3-jinja2 python3-pygments
# pip3 install pypeg2 --allow-external pypeg2 --allow-unverified pypeg2
----

To generate the documentation for the `:help` command, when using the git
repository (rather than a release):

----
# apt-get install asciidoc
----

On Archlinux
~~~~~~~~~~~~

There's an Archlinux package available in `pkg/`. You can install it (and the
python-pypeg2 dependency) like this:

----
$ wget https://aur.archlinux.org/packages/py/python-pypeg2/python-pypeg2.tar.gz <1>
$ tar xzvf python-pypeg2.tar.gz
$ cd python-pypeg2
$ makepkg -si
$ cd ..

$ mkdir qutebrowser
$ cd qutebrowser
$ wget http://git.the-compiler.org/qutebrowser/plain/pkg/PKGBUILD.qutebrowser-git -O PKGBUILD
$ makepkg -si
$ cd ..
$ rm -rf python-pypeg2.tar.gz python-pypeg2 qutebrowser
----
<1> Instead of the first block of commands you could also use an AUR helper,
e.g. +yaourt -S python-pypeg2+.

As soon as v0.1 is out, there will be a package in the AUR, so this will get
easier.

// Install https://aur.archlinux.org/packages/qutebrowser-git/[qutebrowser-git]
// from the AUR.

On Gentoo
~~~~~~~~~

Running qutebrowser on Gentoo is unfortunately rather hard because Qt5 and
PyQt5 are not packaged officially. https://github.com/posativ[@posativ] has
written https://gist.github.com/posativ/30668ee3472c6d0649e8[a howto] with
steps to get it running.

On Windows
~~~~~~~~~~

* Use the installer from http://www.python.org/downloads[python.org] to get Python 3
* Use the installer from
http://www.riverbankcomputing.com/software/pyqt/download5[Riverbank computing]
to get Qt and PyQt5.
* Run `scripts/ez_setup.py` to get setuptools.
* Get pip as described http://stackoverflow.com/a/12476379[on Stack Overflow].
* Run +pip install --allow-external pypeg2 --allow-unverified pypeg2 pypeg2+ to
install pypeg2.
* Run +pip install jinja2+ to install jinja2, or install it from
http://www.lfd.uci.edu/~gohlke/pythonlibs/#jinja2.
* Run +pip install pygments+ to install pygments, or install it from
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygments.

As soon as v0.1 is out, a standalone .exe (built with
http://cx-freeze.sourceforge.net/[cx_Freeze]) will be provided. In the
meantime, you can simply ask in IRC if you need one.

Authors
-------

Contributors, sorted by the number of commits in descending order:

// QUTE_AUTHORS_START
* Florian Bruhin
* Claude
// QUTE_AUTHORS_END

Thanks / Similiar projects
--------------------------

Many projects with a similiar goal as qutebrowser exist:

* http://portix.bitbucket.org/dwb/[dwb] (C, GTK+ with WebKit1, currently
http://www.reddit.com/r/linux/comments/2huqbc/dwb_abandoned/[unmaintained] -
main inspiration for qutebrowser)
* https://github.com/fanglingsu/vimb[vimb] (C, GTK+ with WebKit1, active)
* http://sourceforge.net/p/vimprobable/wiki/Home/[vimprobable] (C, GTK+ with
WebKit1, active)
* http://surf.suckless.org/[surf] (C, GTK+ with WebKit1, active)
* https://mason-larobina.github.io/luakit/[luakit] (C/Lua, GTK+ with
WebKit1, not very active)
* http://pwmt.org/projects/jumanji/[jumanji] (C, GTK+ with WebKit1, not very
active)
* http://www.uzbl.org/[uzbl] (C, GTK+ with WebKit1/WebKit2, active)
* http://conkeror.org/[conkeror] (Javascript, Emacs-like, XULRunner/Gecko,
active)
* https://github.com/AeroNotix/lispkit[lispkit] (quite new, lisp, GTK+ with
WebKit, active)
* http://www.vimperator.org/[Vimperator] (Firefox addon)
* http://5digits.org/pentadactyl/[Pentadactyl] (Firefox addon)
* https://github.com/akhodakivskiy/VimFx[VimFx] (Firefox addon)
* http://vimium.github.io/[vimium] (Chrome/Chromium addon)

Most of them were inspirations for qutebrowser in some way, thanks for that!

Thanks as well to the following projects and people for helping me with
problems and helpful hints:

* http://eric-ide.python-projects.org/[eric5] / Detlev Offenbach
* https://code.google.com/p/devicenzo/[devicenzo]
* portix
* seir
* nitroxleecher

Also, thanks to:

* Everyone who had the patience to test qutebrowser before v0.1.
* Everyone triaging/fixing my bugs in the
https://bugreports.qt-project.org/secure/Dashboard.jspa[Qt bugtracker]
* Everyone answering my questions on http://stackoverflow.com/[Stack Overflow]
and in IRC.
* All the projects which were a great help while developing qutebrowser.

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 <http://www.gnu.org/licenses/>.
