Conkeror is a highly customizable, keyboard-driven web browser based on Mozilla's Gecko layout engine. It is strongly influenced by the Emacs text editor in its design philosophy and keybinding scheme, aiming to provide a powerful, efficient browsing experience primarily through keyboard commands rather than mouse interaction.
History and Development
Conkeror was initially developed by Jesse Neal. It emerged as a project catering to users who desired a web browser with the deep configurability and keyboard-centric workflow found in applications like Emacs and Vim. Early versions leveraged Mozilla's XULRunner, an application runtime environment that allowed independent applications to be built on Mozilla technology. This architecture enabled Conkeror to inherit Mozilla's rendering capabilities while providing its unique user interface built on XUL (XML User Interface Language) and JavaScript. Its development continued to evolve with various Mozilla technologies, eventually adapting to changes within the Firefox ecosystem.
Features
The core features of Conkeror emphasize efficiency and power-user capabilities:
- Keyboard-driven Interface: Virtually all browser functions, including navigation, tab management, history, and form filling, can be performed using keyboard shortcuts, minimizing the need for mouse interaction.
- Emacs-like Keybindings: Users familiar with Emacs will find a familiar set of keybindings, including common commands like
C-x C-c(exit),C-s(incremental search), and extensive use of meta keys. - Modal Editing: Similar to Vim, Conkeror often employs a modal interface where different key presses perform different actions depending on the current "mode" (e.g., normal mode for navigation, insert mode for text input).
- Powerful Command Line: An integrated command line (often invoked with
M-x) allows users to execute browser commands, open URLs, and access various functionalities directly. - Extensibility: Conkeror is highly extensible through JavaScript. Users can write their own JavaScript code to customize behaviors, create new commands, and modify the browser's appearance and functionality. This includes defining custom keybindings, writing functions to automate tasks, and integrating with external applications.
- Buffer Management: Adopting terminology from Emacs, tabs or windows are often referred to as "buffers," managed through keyboard commands.
Customization
One of Conkeror's defining characteristics is its deep customization. Configuration is primarily done by editing a JavaScript file (typically ~/.conkerorrc on Unix-like systems). This file allows users to:
- Define custom keymaps and bindings.
- Modify browser appearance through CSS.
- Write complex JavaScript functions to extend core functionalities.
- Integrate with external programs or scripts.
- Set up site-specific configurations or behaviors.
Status
While Conkeror maintained a dedicated user base for many years, its development and relevance have been impacted by significant changes within the Mozilla ecosystem. Mozilla's deprecation of XULRunner and the move away from XUL-based add-ons in favor of WebExtensions for Firefox has posed challenges for browsers built directly on these older technologies. Maintaining compatibility with the evolving Gecko engine and adapting to modern web standards while preserving its unique Emacs-like interface has become increasingly difficult, leading to a more specialized niche status for the browser.