Dillo, the GTK Web Browser

by Ralph Krause

The purpose of this article is to introduce Dillo, a web browser written by a group of programmers led by Jorge Arellano Cid. Although the version reviewed (0.6.4) is still alpha code, it has some features that already make it useful.

Screenshot of Dillo's Welcome Page

Dillo is a very small and fast web browser written completely in C. The uncompressed source code tarball is approximately 1.2MB and the resulting executable file is 1.1MB. While Dillo is based on GTK+ (GTK version 1.2.0 or higher is required), GNOME isn't required to run it. Dillo uses the HTML parser from the gzilla project, so Mozilla doesn't have to be installed either, as is the case with Galeon.

Basic functionality is provided, such as forward and backward histories, home, along with reload, abort and save buttons. A handy feature is a button that clears the URL textbox, allowing you to paste URLs from the clipboard without having to manually clear the textbox first.

Dillo can open files from the local disk either by clicking on the underlined F in the toolbar or by typing its full name preceded by file: in the URL textbox.

The configuration is handled by manipulating the ~/.dillo/dillorc file with a text editor. A sample dillorc file is found in the source code directory.

Dillo can display PNG and JPEG pictures, and it does a decent job of displaying tables. Since frames aren't supported yet, Dillo displays a link to each frame on the page that allows the user to display them one at a time. Dillo has correctly displayed sites such as Freshmeat, NewsForge and Linux Journal.

Right now Dillo can download files via HTTP by right-clicking on the link and selecting Save Link As. To download a file via FTP you need a program such as WebDownloader for X. Copy the link to the clipboard by right-clicking on it and selecting Copy Link Location, then paste the link into the external download program.

A Find dialog is accessed by pressing CTRL-F. When a match is found, Dillo tries to scroll the page so it is at the top of the window. One thing to note is that the matching word is not highlighted, which can make it difficult to find.

Keyboard shortcuts include ALT+, and ALT+. to navigate forward and backward through your history. Double-clicking on the browser toggles the toolbar between visible and invisible, freeing up some more viewing space.

Dillo currently isn't capable of handling things such as JavaScript, cookies and secure web sites. A patch is available, however, that provides Dillo with SSL and cookie capabilities. I have been able to compile the patch only against a specific CVS snapshot of the source code. Instructions for downloading the patch and building the patched version of Dillo are below.

Using The SSL-Cookies Patch

In order to use the SSL-Cookies patch for Dillo, you need OpenSSL installed, and you have to get the Dillo source code dated Jan. 14, 2002 from the CVS archive. This is accomplished by the following steps:

  1. Get the Dillo sources from the CVS archive:

  2. $cvs -d:pserver:anonymous@cvs.dillo.sourceforge.net:/cvsroot/dillo login
    (Hit Enter when asked for your CVS password)
    $cvs -z3 -d:pserver:anonymous@cvs.dillo.sourceforge.net:/cvsroot/dillo co -D 01/14/2002 dillo
  3. Copy the dillo-ssl-cookies.2002-01-14.diff file into the dillo directory created above.

  4. It might be a good idea to make a backup copy of the source code in case you encounter problems with the patching procedure. Move into the dillo directory and apply the patch with the following command:

  5. $patch -p1 -i dillo-ssl-cookies.2002-01-14.diff
  6. Execute autoconf to create the new configure file.

  7. $autoconf
  8. Configure the software to include the OpenSSL libraries with the following command:

  9. $./configure --enable-ssl --with-ssl-inc=/usr/local/ssl/include --with-ssl-lib=/usr/local/ssl/lib
    If the configure script answered yes to the following lines then your build should work:
    SSL_connect in -lssl, BIO_ctrl in -lcrypto, openssl/ssl.h and openssl/err.h
  10. Make the executables by issuing the make command and then install the files by changing to root and issuing make install.

  11. $make
    $make install
    If you get an error about a missing AM_PATH_GTK macro when Dillo starts compiling, look for a file called gtk.m4 on your system. If it is in /usr/share/aclocal, then it needs to be copied or symlinked to /usr/local/share/aclocal.

To determine which cookies Dillo accepts and rejects, create a cookie_controls file in your ~/.dillo directory. The Cookies.txt file placed in the doc directory by the patch contains information on using the cookie_controls file. Saved cookies are stored in the ~/.dollo/cookies file.


According to the change log, Dillo has been under development since 1999. The authors seem committed to maintaining high quality code by providing design standards and project notes on the project web site, along with patching guidelines. Also, the web site mentions that only stable versions of the program will be released.

Future goals for Dillo include the ability to handle frames, SSL capabilities, an FTP plugin and implementing redirection as specified in RFC2616.

Though still in the alpha stage, Dillo is a fast, compact browser that can be useful for browsing local pages or when using a browser such as Netscape would be overkill. With the SSL-Cookies patch, Dillo's usability is enhanced at the cost of a little source code tinkering.


Dillo: dillo.sourceforge.net

SSL-Cookies Patch: www.geocrawler.com/lists/3/SourceForge/702/25/7547189

WebDownloader for X: www.krasu.ru/soft/chuchelo

OpenSSL: www.openssl.org

Ralph Krause lives in Michigan where he works as a web designer, programmer and writer. He has worked with Linux as his main OS for 3 years.

Load Disqus comments