The qutebrowser featured in this issue is a keyboard-centric browser with minimal GUI, which is based on Python and Qt as well as free software.
qutebrowser is a keyboard-centric browser with a minimal GUI. It is based on Python and Qt as well as free software, licensed under the GPL. It is inspired by other browsers/plugins such as dwb and Vimperator/Pentadactyl.
demand
The following software and libraries are required to run qutebrowser:
- Python 3.7 or later
- Qt 5.12.0 or later with the following modules (5.12 LTS or 5.15 recommended, Qt 6 not supported yet) :
- QtCore / qtbase
- QtQuick (part of qtbase or qtdeclarative in some distributions)
- QtSQL (part of qtbase in some distributions)
- QtDBus (part of qtbase in some distributions; Note that connecting to the DBus at run time is optional)
- QtOpenGL
- QtWebEngine, or
- Or QtWebKit (5.212) – this is not recommended due to known security issues in QtWebKit.
Install qutebrowser
On Debian/Ubuntu
Debian Stretch / Ubuntu 16.04 LTS / Linux Mint 18:
Debian Stretch does package QtWebEngine, but only in a very old and insecure version (Qt 5.7, based on March 2016’s Chromium). In addition, it packs Python 3.5, which is no longer supported as of qutebrowser v2.0.0.
Ubuntu 16.04 does not come with the latest engine (sufficiently new QtWebKit or QtWebEngine) and also comes with Python 3.5.
Note that you need some basic libraries to use PyQt with virtualenv installed:
# apt install --no-install-recommends git ca-certificates python3 python3-venv asciidoc libglib2.0-0 libgl1 libfontconfig1 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libdbus-1-3 libyaml-dev gcc python3-dev libnss3 libasound2
Debian Buster / Ubuntu 18.04 LTS / Linux Mint 19
Debian Buster packages qutebrowser, but releases a very old version (v1.6.1 from March 2019). The QtWebEngine library for rendering Web content is also old (Qt 5.11, based on March 2018 Chromium) and insecure. It is not included in the Debian security patch. It is recommended to install qutebrowser in virtualenv using the updated PyQt/Qt binary.
# apt install --no-install-recommends git ca-certificates python3 python3-venv asciidoc libglib2.0-0 libgl1 libfontconfig1 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libdbus-1-3 libyaml-dev gcc python3-dev libnss3 libasound2
Additional tips
If running from git, run the following command to generate documentation for the :help command (the mkvenv.py script for virtualenv installation already does this for you) :
# apt install --no-install-recommends asciidoc
$ python3 scripts/asciidoc2html.py
- If you prefer to use QtWebKit, QtWebKit 5.212 is available in Ubuntu 18.04 / Debian Buster or later. Note, however, that it is based on upstream WebKit from September 2016, with known security issues and no sandbox or process isolation.
- If video or sound does not work with QtWebKit, try installing the gstreamer plugin:
# apt install gstreamer1.0-plugins-{bad,base,good,ugly}
- Note that only QtWebKit requires these, not the (default) QtWebEngine backend.
On Archlinux
qutebrowser is available in the official [community] repository.
# pacman -S qutebrowser
There is also a version of -git available in AUR: qutebrowser-git.
You can install it by makepkg like this:
$ git clone https://aur.archlinux.org/qutebrowser-git.git
$ cd qutebrowser-git
$ makepkg -si
$ cd ..
$ rm -r qutebrowser-git
Or you can use an AUR assistant like yay, such as Yay-s qutebrowser-git.
If video or sound does not work with QtWebKit, try installing the gstreamer plugin:
# pacman -S gst-plugins-{base,good,bad,ugly} gst-libav
On Gentoo
qutebrowser is available in the main repository and can be installed::
# emerge -av qutebrowser
If video or sound does not work with QtWebKit, try installing the gstreamer plugin:
# emerge -av gst-plugins-{base,good,bad,ugly,libav}
In order to be able to play video using QtWebEngine’s proprietary codec, you need bindist to turn off dev-qt/qtwebengine.
On Slackware
qutebrowser is available in the 3rd party repository at slackbuilds.org
An easy way to install it is to use sbopkg (the front end for slackbuilds.org) available on sbopkg.org
sbopkg can be run using a dialog screen interface or through command line options.
After installing the latest sbopkg package, select your release version and sync the repo.
sbopkg -V 14.2
sbopkg -r
Generate queue files for qutebrowser and dependencies:
sqg -p qutebrowser
Then load the queue in the dialog queue menu or by:
PYTHON3=yes sbopkg -i qutebrowser
If you use the dialog screen, you can deselect any installed packages that you don’t need/want to rebuild before starting the build process.
On Windows
Prebuilt binary file
Pre-built separate packages and installers are built for each release.
Note that you will need to manually upgrade to the new version (subscribe to the qutebrowser-announce mailing list to be notified about the new version). You can install newer versions without uninstalling older versions.
The binary version comes with a QtWebEngine without proprietary codec support. To get support for, say, h264/mp 4 video, you need to build the QtWebEngine yourself from source code and enable the support.
- PackageManagement PowerShell module
PS C:\> Install-Package qutebrowser
- Chocolatey’s customers
C:\> choco install qutebrowser
- Scoop’s clients
C:\> scoop bucket add extras
C:\> scoop install qutebrowser
Install qutebrowser using virtualenv
Get repository
First, clone the repository using git and switch to the repository folder:
$ git clone https://github.com/qutebrowser/qutebrowser.git
$ cd qutebrowser
Install dependencies (including Qt)
Using Qt installed via virtualenv requires several system-wide libraries. For more information about the required libraries, see the Ubuntu 16.04 section.
Then run the installation script:
$ python3 scripts/mkvenv.py
This installs all required Python dependencies in a.venv subfolder (where to create the environment can be configured with the –venv-dir flag).
This comes with an up-to-date Qt/PyQt, including a pre-compiled QtWebEngine binary, but with a few caveats:
- Make sure your python3 is Python 3.7 or later, otherwise you will receive the “matching distribution not found” error and/or qutebrowser will not run.
- It only works on 64-bit x86 systems, and you will encounter the same errors in other architectures.
- It comes with a QtWebEngine that compiles without proprietary codec support, such as h.264.
SCREENSHOTS
—END—
Open source license: GPL-3.0 License