qutebrowser | |
qutebrowser | |
Logo Alt: | The logo of qutebrowser. |
Author: | Florian Bruhin ("the Compiler") |
Released: | [1] |
Discontinued: | No |
Latest Preview Date: | --> |
Programming Language: | Python, JavaScript |
Operating System: | Linux, Windows, macOS, FreeBSD, OpenBSD[2] |
Engine: | WebKit or QtWebEngine |
Language: | English[3] |
Language Count: | 1 |
Genre: | Web browser |
License: | GPL-3.0-or-later |
qutebrowser (pronounced "cute browser") is a QtWebEngine web browser for Linux, Windows, and macOS operating systems with Vim-style key bindings and a minimal GUI.[4] It is keyboard-driven and is inspired by similar software such as Vimperator and dwb.[5] It uses DuckDuckGo as the default search engine. qutebrowser is included in the native repositories of Linux distributions such as Fedora and Arch Linux.[6] qutebrowser is developed by Florian Bruhin, for which he received a CH Open Source award in 2016.[7]
As in Vim and vi, the browser has a command mode and an insert mode. In command mode key bindings can be used to perform functions, for example: 'G' to go to the bottom of a page, and 'gg' to the top. Specific commands can also be bound to keys or key-sequences by the user.A cheat sheet of all key bindings can be found here and they can be trained here.
qutebrowser is both written in and configured in Python. Through the configuration file custom functionality can be added, including custom key bindings, per-site settings, and arbitrary Python code that can interact with your browser or your system.[8]
Since version 2.0.0, qutebrowser supports blocking ads using the python adblock library. For users that don't have the adblock library installed or use an older version of qutebrowser, a simpler built-in adblocker can be used and modified using the blocked-hosts file that comes with qutebrowser.[9]
In July 2018, it was found that all versions of qutebrowser prior to 1.4.1 have a cross-site request forgery vulnerability that allowed websites to change qutebrowser settings and, via settings like, possibly execute arbitrary code.[10] This was fixed in version 1.4.1; backported patches are available for prior versions.[11]