# Qutebrowser — Keyboard-Driven Web Browser with Vim Bindings > Minimal QtWebEngine browser controlled entirely from the keyboard with Vim-style keybindings and a Python-based config. ## Install Save in your project root: # Qutebrowser — Keyboard-Driven Web Browser with Vim Bindings ## Quick Use ```bash # Install on Linux: # Debian/Ubuntu: sudo apt install qutebrowser # Arch Linux: sudo pacman -S qutebrowser # macOS: brew install qutebrowser # Launch: qutebrowser # Press "o" to open a URL, "f" to follow links, "d" to close a tab ``` ## Introduction Qutebrowser is a keyboard-focused web browser that uses Vim-style keybindings for navigation. Built on Python and QtWebEngine (Chromium), it provides a minimal interface where nearly every action is performed via keyboard commands, making it popular among developers who prefer terminal-centric workflows. ## What Qutebrowser Does - Navigates the web entirely through keyboard shortcuts with Vim-style modal keybindings - Follows links via hint mode, where each link gets a short letter label to press - Manages tabs, bookmarks, and history through command-mode or keyboard shortcuts - Supports userscripts and Greasemonkey scripts for page-level customization - Renders modern web pages using the QtWebEngine (Chromium) backend ## Architecture Overview Qutebrowser is written in Python using the Qt framework. It uses QtWebEngine (based on Chromium) for page rendering, which provides modern web standards support. The keybinding layer is a custom modal input system inspired by Vim, with normal, insert, command, and hint modes. Configuration is done through a Python file or YAML, and the internal command system can be extended with Python userscripts that interact with the browser via IPC. ## Self-Hosting & Configuration - Install from distribution package managers on Linux, or via Homebrew on macOS - Configure via `~/.config/qutebrowser/config.py` using Python syntax for full flexibility - Customize keybindings, search engines, ad-blocking lists, and appearance through config directives - Built-in ad blocking uses Brave's filter lists by default, configurable to use host-based blocking - Supports per-domain settings for JavaScript, cookies, and other permissions ## Key Features - Full Vim-style keybinding system with modal editing (normal, insert, command, hint modes) - Hint-based link following that assigns letter labels to clickable elements - Python-based configuration file for programmatic customization - Built-in ad blocker using filter lists without requiring extensions - Lightweight resource usage compared to mainstream Chromium-based browsers ## Comparison with Similar Tools - **Nyxt** — Lisp-based programmable browser; Qutebrowser uses Python and QtWebEngine with Vim keybindings - **Vimium (extension)** — Adds Vim bindings to Chrome/Firefox; Qutebrowser integrates them at the browser level - **surf** — Suckless minimal browser; Qutebrowser provides more features while maintaining keyboard-first design - **Brave** — Privacy-focused Chromium fork with GUI; Qutebrowser targets keyboard-driven workflows ## FAQ **Q: Does Qutebrowser support browser extensions?** A: Qutebrowser does not support Chrome or Firefox extensions. It provides built-in ad blocking and userscript support as alternatives. **Q: Can I use a mouse with Qutebrowser?** A: Yes. Mouse interactions work normally. The keyboard-driven design is an option, not a requirement. **Q: Is Qutebrowser based on Chromium?** A: It uses QtWebEngine for rendering, which is built on Chromium's Blink engine. The browser shell itself is written in Python. **Q: How do I search from the address bar?** A: Press "o" to enter a URL, or type a search engine prefix followed by your query. Search engines are configurable in the config file. ## Sources - https://github.com/qutebrowser/qutebrowser - https://qutebrowser.org --- Source: https://tokrepo.com/en/workflows/qutebrowser-keyboard-driven-web-browser-vim-bindings-a77ae5c3 Author: AI Open Source