Uzbl
Encyclopedia
Uzbl is a free and open source
minimalist web browser
designed for simplicity and adherence to the Unix philosophy
. Development started in early 2009 and is still considered in alpha software by the developers. The core component of uzbl is developed in C
but other languages are also used, most notably Python
. All parts of the uzbl project are released as free software under the GNU GPL version 3.
The name comes from the word usable, that is spelled in lolspeak
.
Despite being in early stages of development, Uzbl has already gained prominence as one of the best minimalist browsers.
, “Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.” As a result, Uzbl does not contain many of the features of other browsers. Uzbl has none of its own toolbar
s or widgets
, and does not manage bookmarks, history, downloads, or cookies
, leaving them to be handled by external programs or scripts like uzbl_tabbed for tabbed browsing
support. For interaction with the program it can read input from standard input (FIFO
pipe) or from POSIX local IPC sockets or it can be passed text file
s as it happens with the configuration file
.
This design is considered a benefit and not a drawback, allowing for more customization.
layout engine, and therefore inherits support for many web standards, including HTML
, XML
, XPath
, CSS
, ECMAScript
(JavaScript
), DOM
, and SVG
, passing the Acid3
browser test. Webkit supports Netscape
-style plugins such as Adobe Flash Player
and MPlayer
.
Uzbl's design focuses on keyboard control and hotkeys
, although Uzbl supports mouse and other pointing device
input. Like the vimperator
Firefox extension, Uzbl employs a mode-based interface derived from the vi
and Vim text editors
. Rather than move the cursor to an address bar or a link, a user presses a hotkey to switch to "command" mode. From this mode she may: select links in the viewport
through assigned keys (0 through 9 by default) or through typing an unambiguous string of the link text; navigate to another web page by typing its URL; modify settings; and perform other normal web-browsing tasks. While this mode-based interface creates an initially-steep learning curve
, once learned it typically allows a user greater speed and convenience than many other browsers. Uzbl allows configuration of the hotkeys used.
, but can be compiled for other GNU
/Linux distribution
s. Compilation guides are available for Gentoo Linux
, Ubuntu
, PLD Linux, MacPorts
, and Nix package manager
.
s of Arch Linux because there was no browser to be found whose design strictly adheres to the Unix philosophy. Dieter Plaetinck consequently started development and soon was supported by other developers from a very active community. The first code was published on April 21, 2009. After only two months of development the product was in a usable state. Besides compilation guides for a series of Linux distributions and Mac OS X
/Darwin
(MacPorts
) there are also several precompiled binary packages available, although officially there is no version marked as stable yet.
On September 21, 2009 Uzbl has been accepted into the Debian
operating system and was migrated to its testing branch on October 2, 2009.
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...
minimalist web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
designed for simplicity and adherence to the Unix philosophy
Unix philosophy
The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system.-McIlroy: A Quarter Century of Unix:...
. Development started in early 2009 and is still considered in alpha software by the developers. The core component of uzbl is developed in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
but other languages are also used, most notably Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
. All parts of the uzbl project are released as free software under the GNU GPL version 3.
The name comes from the word usable, that is spelled in lolspeak
Lolcat
A lolcat is an image combining a photograph of a cat with text intended to contribute humour. The text is often idiosyncratic and grammatically incorrect, and its use in this way is known as "lolspeak" or "kitty pidgin"....
.
Despite being in early stages of development, Uzbl has already gained prominence as one of the best minimalist browsers.
Design
Uzbl follows the Unix philosophyUnix philosophy
The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system.-McIlroy: A Quarter Century of Unix:...
, “Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.” As a result, Uzbl does not contain many of the features of other browsers. Uzbl has none of its own toolbar
Toolbar
In a graphical user interface, on a computer monitor, a toolbar is a GUI widget on which on-screen buttons, icons, menus, or other input or output elements are placed. Toolbars are seen in office suites, graphics editors, and web browsers...
s or widgets
Widget (computing)
In computer programming, a widget is an element of a graphical user interface that displays an information arrangement changeable by the user, such as a window or a text box. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given...
, and does not manage bookmarks, history, downloads, or cookies
HTTP cookie
A cookie, also known as an HTTP cookie, web cookie, or browser cookie, is used for an origin website to send state information to a user's browser and for the browser to return the state information to the origin site...
, leaving them to be handled by external programs or scripts like uzbl_tabbed for tabbed browsing
Tab (GUI)
In the area of graphical user interfaces , a tabbed document interface is one that allows multiple documents to be contained within a single window, using tabs as a navigational widget for switching between sets of documents...
support. For interaction with the program it can read input from standard input (FIFO
FIFO
FIFO is an acronym for First In, First Out, an abstraction related to ways of organizing and manipulation of data relative to time and prioritization...
pipe) or from POSIX local IPC sockets or it can be passed text file
Text file
A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists within a computer file system...
s as it happens with the configuration file
Configuration file
In computing, configuration files, or config files configure the initial settings for some computer programs. They are used for user applications, server processes and operating system settings. The files are often written in ASCII and line-oriented, with lines terminated by a newline or carriage...
.
This design is considered a benefit and not a drawback, allowing for more customization.
Features
Uzbl uses the WebKitWebKit
WebKit is a layout engine designed to allow web browsers to render web pages. WebKit powers Google Chrome and Apple Safari and by October 2011 held over 33% of the browser market share between them. It is also used as the basis for the experimental browser included with the Amazon Kindle ebook...
layout engine, and therefore inherits support for many web standards, including HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
, XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
, XPath
XPath
XPath is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values from the content of an XML document...
, CSS
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...
, ECMAScript
ECMAScript
ECMAScript is the scripting language standardized by Ecma International in the ECMA-262 specification and ISO/IEC 16262. The language is widely used for client-side scripting on the web, in the form of several well-known dialects such as JavaScript, JScript, and ActionScript.- History :JavaScript...
(JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
), DOM
Document Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
, and SVG
Scalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...
, passing the Acid3
Acid3
Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model and JavaScript....
browser test. Webkit supports Netscape
Netscape
Netscape Communications is a US computer services company, best known for Netscape Navigator, its web browser. When it was an independent company, its headquarters were in Mountain View, California...
-style plugins such as Adobe Flash Player
Adobe Flash Player
The Adobe Flash Player is software for viewing multimedia, Rich Internet Applications and streaming video and audio, on a computer web browser or on supported mobile devices. Flash Player runs SWF files that can be created by the Adobe Flash authoring tool, by Adobe Flex or by a number of other...
and MPlayer
MPlayer
MPlayer is a free and open source media player. The program is available for all major operating systems, including Linux and other Unix-like systems, Microsoft Windows and Mac OS X. Versions for OS/2, Syllable, AmigaOS and MorphOS are also available. The Windows version works, with some minor...
.
Uzbl's design focuses on keyboard control and hotkeys
Keyboard shortcut
In computing, a keyboard shortcut is a finite set of one or more keys that invoke a software or operating system operation when triggered by the user. A meaning of term "keyboard shortcut" can vary depending on software manufacturer...
, although Uzbl supports mouse and other pointing device
Pointing device
A pointing device is an input interface that allows a user to input spatial data to a computer...
input. Like the vimperator
Vimperator
Vimperator is a Mozilla Firefox extension forked from the original Firefox extension version of Conkeror and designed to provide a more efficient user interface for keyboard-fluent users...
Firefox extension, Uzbl employs a mode-based interface derived from the vi
Vi
vi is a screen-oriented text editor originally created for the Unix operating system. The portable subset of the behavior of vi and programs based on it, and the ex editor language supported within these programs, is described by the Single Unix Specification and POSIX.The original code for vi...
and Vim text editors
Vim (text editor)
Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
. Rather than move the cursor to an address bar or a link, a user presses a hotkey to switch to "command" mode. From this mode she may: select links in the viewport
Viewport
A viewport is a rectangular viewing region in computer graphics, or a term used for optical components. It has several definitions in different contexts:- Computing :...
through assigned keys (0 through 9 by default) or through typing an unambiguous string of the link text; navigate to another web page by typing its URL; modify settings; and perform other normal web-browsing tasks. While this mode-based interface creates an initially-steep learning curve
Learning curve
A learning curve is a graphical representation of the changing rate of learning for a given activity or tool. Typically, the increase in retention of information is sharpest after the initial attempts, and then gradually evens out, meaning that less and less new information is retained after each...
, once learned it typically allows a user greater speed and convenience than many other browsers. Uzbl allows configuration of the hotkeys used.
Development
Development of Uzbl is still in the alpha stage. Uzbl is written and designed for Arch LinuxArch Linux
Arch Linux is an independently developed, Linux-based operating system for i686 and x86-64 computers. It is composed predominantly of free and open source software, and supports community involvement....
, but can be compiled for other GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
/Linux distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
s. Compilation guides are available for Gentoo Linux
Gentoo Linux
Gentoo Linux is a computer operating system built on top of the Linux kernel and based on the Portage package management system. It is distributed as free and open source software. Unlike a conventional software distribution, the user compiles the source code locally according to their chosen...
, Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
, PLD Linux, MacPorts
MacPorts
MacPorts, formerly called DarwinPorts, is a package management system that simplifies the installation of software on the Mac OS X and Darwin operating systems. It is a free/open source software project to simplify installation of other free/open source software...
, and Nix package manager
Nix package manager
Nix is a package manager for computer systems. Like RPM, apt and many other package managers, it is able to control the installation of packages, or named and versioned groups of files, such as software applications or their associated configuration data....
.
History
The idea for a new webbrowser appeared in spring 2009 on the internet forumInternet forum
An Internet forum, or message board, is an online discussion site where people can hold conversations in the form of posted messages. They differ from chat rooms in that messages are at least temporarily archived...
s of Arch Linux because there was no browser to be found whose design strictly adheres to the Unix philosophy. Dieter Plaetinck consequently started development and soon was supported by other developers from a very active community. The first code was published on April 21, 2009. After only two months of development the product was in a usable state. Besides compilation guides for a series of Linux distributions and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
/Darwin
Darwin (operating system)
Darwin is an open source POSIX-compliant computer operating system released by Apple Inc. in 2000. It is composed of code developed by Apple, as well as code derived from NeXTSTEP, BSD, and other free software projects....
(MacPorts
MacPorts
MacPorts, formerly called DarwinPorts, is a package management system that simplifies the installation of software on the Mac OS X and Darwin operating systems. It is a free/open source software project to simplify installation of other free/open source software...
) there are also several precompiled binary packages available, although officially there is no version marked as stable yet.
On September 21, 2009 Uzbl has been accepted into the Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
operating system and was migrated to its testing branch on October 2, 2009.