Go to file
Florian Bruhin c4183bc34d tox: Update hypothesis/hypothesis-pytest to 1.10.0
This is just a bugfix and performance release, but it changes some semi-public
APIs, hence the minor version bump.

- Significant performance improvements for strategies which are one_of() many
  branches. In particular this included recursive() strategies. This should
  take the case where you use one recursive() strategy as the base strategy of
  another from unusably slow (tens of seconds per generated example) to
  reasonably fast.
- Better handling of just() and sampled_from() for values which have an
  incorrect __repr__ implementation that returns non-ASCII unicode on Python 2.
- Better performance for flatmap from changing the internal morpher API to be
  significantly less general purpose.
- Introduce a new semi-public BuildContext/cleanup API. This allows strategies
  to register cleanup activities that should run once the example is complete.
  Note that this will interact somewhat weirdly with find.
- Better simplification behaviour for streaming strategies.
- Don't error on lambdas which use destructuring arguments in Python 2.
- Add some better reprs for a few strategies that were missing good ones.
- The Random instances provided by randoms() are now copyable.
- Slightly more debugging information about simplify when using a debug
  verbosity level.
- Support using given for functions with varargs, but not passing arguments to
  it as positional.
2015-08-03 23:40:39 +02:00
doc Update docs. 2015-08-01 22:43:20 +02:00
icons Add an .icns file for OS X. 2015-04-13 15:01:30 +02:00
misc Spelling fix on cheatsheet. 2015-05-19 08:58:27 +02:00
qutebrowser webelem: Add more tests. 2015-08-03 23:40:39 +02:00
scripts Also check opposite condition in check_coverage.py. 2015-08-02 22:16:03 +02:00
tests webelem: Add more tests. 2015-08-03 23:40:39 +02:00
.appveyor.yml Cache some things on CIs. 2015-07-14 07:17:36 +02:00
.coveragerc Exclude resources.py from coverage. 2015-05-25 01:38:17 +02:00
.eslintrc js: Fix more lint. 2015-05-12 07:16:16 +02:00
.gitignore Merge branch 'master' of https://github.com/antoyo/qutebrowser into antoyo-master 2015-07-26 15:08:58 +02:00
.pylintrc pylint: Increase maximum function name length. 2015-08-02 19:51:48 +02:00
.travis.yml Cache some things on CIs. 2015-07-14 07:17:36 +02:00
CHANGELOG.asciidoc Update docs. 2015-08-01 22:43:20 +02:00
CONTRIBUTING.asciidoc Change Qt links to point to qt.io. 2015-06-12 16:59:33 +02:00
COPYING Add GNU GPL 2014-02-06 14:01:23 +01:00
FAQ.asciidoc Change Qt links to point to qt.io. 2015-06-12 16:59:33 +02:00
INSTALL.asciidoc INSTALL: Add some text about native packages. 2015-07-17 06:57:48 +02:00
MANIFEST.in Add pytest.ini to MANIFEST.in. 2015-07-20 11:33:30 +02:00
pytest.ini Ignore DBus warning message for tests. 2015-08-01 13:50:39 +02:00
qutebrowser.desktop Desktopy goodness 2014-12-05 10:49:24 -06:00
qutebrowser.py Update copyright years 2015-01-03 15:51:31 +01:00
qutebrowser.rcc Use Qt resources for the window icon. 2014-12-28 15:10:02 +01:00
README.asciidoc Regerate docs. 2015-08-01 13:35:54 +02:00
requirements.txt Update jinja2 to 2.8.0. 2015-07-29 16:49:14 +02:00
setup.py Use exclude= instead of include= for find_packages. 2015-06-26 19:45:56 +02:00
tox.ini tox: Update hypothesis/hypothesis-pytest to 1.10.0 2015-08-03 23:40:39 +02:00

// 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
===========

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

image:https://img.shields.io/pypi/l/qutebrowser.svg?style=flat["license badge",link="https://github.com/The-Compiler/qutebrowser/blob/master/COPYING"]
image:https://img.shields.io/pypi/v/qutebrowser.svg?style=flat["version badge",link="https://pypi.python.org/pypi/qutebrowser/"]
image:https://img.shields.io/github/issues/The-Compiler/qutebrowser.svg?style=flat["issues badge",link="https://github.com/The-Compiler/qutebrowser/issues"]
image:https://requires.io/github/The-Compiler/qutebrowser/requirements.svg?branch=master["requirements badge",link="https://requires.io/github/The-Compiler/qutebrowser/requirements/?branch=master"]
image:http://qutebrowser.org:8010/png?builder=archlinux["build badge",link="http://qutebrowser.org:8010/waterfall"]

qutebrowser is a keyboard-focused browser 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.

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/The-Compiler/qutebrowser/releases[github releases
page] for available downloads (currently a source archive, and standalone
packages as well as MSI installers for Windows).

See link:INSTALL.asciidoc[INSTALL] for detailed instructions on how to get
qutebrowser running for various platforms.

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

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

* A http://qutebrowser.org/img/cheatsheet-big.png[key binding cheatsheet]: +
image:http://qutebrowser.org/img/cheatsheet-small.png["qutebrowser key binding cheatsheet",link="http://qutebrowser.org/img/cheatsheet-big.png"]
* link:doc/quickstart.asciidoc[Quick start guide]
* link:FAQ.asciidoc[Frequently asked questions]
* link:CONTRIBUTING.asciidoc[Contributing to qutebrowser]
* link:INSTALL.asciidoc[INSTALL]
* link: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
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[].

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

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

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

The following software and libraries are required to run qutebrowser:

* http://www.python.org/[Python] 3.4
* http://qt.io/[Qt] 5.2.0 or newer (5.4.2 recommended)
* QtWebKit
* http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.2.0 or newer
(5.4.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]
* http://pyyaml.org/wiki/PyYAML[PyYAML]

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]

See link:INSTALL.asciidoc[INSTALL] 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!

* PayPal: me@the-compiler.org
* Bitcoin: link:bitcoin:1PMzbcetAHfpxoXww8Bj5XqquHtVvMjJtE[1PMzbcetAHfpxoXww8Bj5XqquHtVvMjJtE]

Authors
-------

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

// QUTE_AUTHORS_START
* Florian Bruhin
* Bruno Oliveira
* Antoni Boucher
* Martin Tournoij
* Raphael Pierzina
* Joel Torstensson
* Claude
* Lamar Pavel
* Austin Anderson
* Artur Shaik
* ZDarian
* Peter Vilim
* John ShaggyTwoDope Jenkins
* Jimmy
* Zach-Button
* rikn00
* Patric Schmitz
* Martin Zimmermann
* Error 800
* Brian Jackson
* sbinix
* Tobias Patzl
* Johannes Altmanninger
* Samir Benmendil
* Regina Hug
* Mathias Fussenegger
* Larry Hynes
* Fritz V155 Reichwald
* Franz Fellner
* zwarag
* error800
* Tim Harder
* Thorsten Wißmann
* Thiago Barroso Perrotta
* Matthias Lisin
* Helen Sherwood-Taylor
* HalosGhost
* Gregor Pohl
* Eivind Uggedal
* Arseniy Seroka
* Andreas Fischer
// QUTE_AUTHORS_END

The following people have contributed graphics:

* WOFall (icon)
* regines (key binding cheatsheet)

Thanks / Similar projects
-------------------------

Many projects with a similar 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, dead)
* 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)
* https://github.com/1995eaton/chromium-vim[cVim] (Chrome/Chromium addon)
* http://vimium.github.io/[vimium] (Chrome/Chromium addon)
* https://chrome.google.com/webstore/detail/vichrome/gghkfhpblkcmlkmpcpgaajbbiikbhpdi?hl=en[ViChrome] (Chrome/Chromium addon)
* https://github.com/jinzhu/vrome[Vrome] (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.io/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/>.