The Dillo Web Browser The Dillo Web Browser

Frequently Asked Questions

Where is the user manual?

What's the status of the dillo-3.x series ("dillo3")?
What's the status of the dillo-2.x series ("dillo2")?
What's the status of the dillo-0.8.x series ("dillo1")?

What happened to the dillorc preferences for colors?
How do I force web pages to use my favourite fonts with CSS?
Why isn't Dillo3 finding the font that I set?
What libraries does dillo use?
Can I run dillo on directfb?

Internationalization and Localization (i18n & l10n)
Why do some pages look strange?
What does "bad font: variable" mean?
Dillo2's rendering is badly broken for me. What do I have to change?
Why doesn't Dillo display certain images?
How do I enable cookies?
How do I clear my cookies?
How do I enable the https (SSL) support plugin for dillo?
How do I use a proxy with dillo?
Where is the history file?

After upgrading, I get: "ERROR: dpi.c: can't start dpi daemon"!
How do I get started in developing Dillo plugins (dpis)?
I have sent an email/patch/question/etc. to Jorge, but still no answer. What's the deal?
I have an addition to the FAQ/website. Whom do I contact?

Where is the user manual?

(AKA How do I configure dillo/How do I change the settings/What are the keybindings/Where do I change the start page/home page/search engine/panel/etc...)

Click on the '?' icon in dillo's control panel for the local help file. If not installed, it should bring you here.

What's the status of the dillo-3.x series ("dillo3")?

This is the active branch.
dillo3 uses the FLTK-1.3 library.

What's the status of the dillo-2.x series ("dillo2")?

dillo2 used the unreleased FLTK-2.0 library and is no longer maintained.

What's the status of the dillo-0.8.x series ("dillo1")?

dillo1 used the obsolete GTK+-1.2 library and is no longer maintained.

What happened to the dillorc preferences for colors?

CSS happened! To set colors, make a ~/.dillo/style.css file and add CSS rules there.

old pref new CSS rule
bg_color=purple body {background-color: purple}
text_color=black body {color: black}
link_color=blue :link {color: blue}
visited_color=0x808080 :visited {color: #808080}

To prevent web pages from overriding one of your CSS rules, add "!important" to it.
To replace the force_my_colors preference, you could use, e.g.:
  * {background-color: green !important; color:red !important}
  :link {color: orange !important}
  :visited {color: brown !important}
The asterisk means that this rule should be applied to all HTML elements that are not otherwise specified.

How do I force web pages to use my favourite fonts with CSS?

In your ~/.dillo/style.css file, add rules like:
   code, tt, pre, samp, kbd {font-family: monospace !important}
   * {font-family: serif !important}
Specific fonts are associated with the serif, sans-serif, monospace, fantasy, and cursive font families in the dillorc configuration file.

Why isn't Dillo3 finding the font that I set?

fltk-1.3 is somewhat more restricted in its use of font names than fltk2 was. Please try the fc-list command as shown in the current dillorc configuration file to find the right form of the fontname to use.

What libraries does dillo use?

Dillo itself: Required: libpthread, libiconv, zlib. Optional: openssl, libpng, libjpeg.
FLTK: At least on Unix, the minimum might be X11, Xext, plus the default configuration also requiring Xft and fontconfig. OpenGL, exceptions, and rtti can be disabled since dillo does not use them.

The FLTK library is normally statically linked into dillo, so you would only need to get this library itself if you are building dillo for yourself.

Dillo3: fltk-1.3
Dillo2: fltk-2.0 (make sure version is >= r6916 and <=r7513)

Can I run dillo on directfb?

No. (although Nikita Egorov did have fltk-1.1.9 working with directfb)

Internationalization and Localization (i18n & l10n)

dillo's internal character encoding is UTF-8. It uses the iconv library to convert from/to other character encodings.

In recent releases, Dillo has improved line wrapping for Chinese and Japanese text, and also handles zero-width spaces, which can help with Thai, Lao, Cambodian, Burmese....

Scripts with right-to-left display (e.g., Arabic, Hebrew) or complex rendering rules (e.g., Arabic, Indic scripts) are not displayed properly.

The current Dillo developers use Latin-1 languages, so i18n testing and commentary would be particularly valued.

Why do some pages look strange?

In part because the CSS 'float' property is not implemented yet (it is our top priority).

In the lower right corner of Dillo you'll see a bug-shaped icon. This is Dillo's bug meter. Click on it to see the HTML errors that have been detected.

Our policy is not to work around broken HTML. To learn why, see our links, and especially read "The decommoditization of protocols" by Raph Levien.

Any HTML parsing patch should be backed up with information from the HTML 4.01 spec. Note that previous HTML specs can be considered as well.

Unfortunately, despite our respect for standards, there're some cases where it's impossible to change the Web's status quo; in those cases we follow Firefox and HTML5.

What does "bad font: variable" mean?

When FLTK2 (used by Dillo2) is configured with XFT disabled, it expects "variable" and "fixed" to be listed somewhere in your fonts.alias files (and furthermore to be aliases for fonts that you have :). (an example)

Dillo2's rendering is badly broken for me. What do I have to change?

You're getting blank regions in the window, and much of the text is being drawn in the upper left corner?

If you configured FLTK2 with --enable-cairo, there's your problem. Don't do that :)

OSX users: Dillo3 builds and runs native in it.

Why doesn't Dillo display certain images?

  • If a server sends a resource with content type image/png, for instance, and it is not a PNG file, Dillo will not display it.
  • If Dillo requests an image and receives a response containing a redirection (i.e., pointing to a different URL), the redirection is not followed. These have a strong tendency to be advertisements.
  • (versions 2.2.1-3.0.2)
    If you have filter_auto_requests=same_domain in your dillorc, Dillo will not make automatic requests for third-party resources. There are pros and cons to this due to the current conditions of the web, as shown in the following example from running dillo back in the filter_auto_requests days (with show_msg enabled):
    Nav_open_url: new url='http://en.wikipedia.org'
    Connecting to 208.80.152.2
    Nav_open_url: new url='http://en.wikipedia.org/wiki/Main_Page'
    Connecting to 208.80.152.2
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'upload.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'bits.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'bits.wikimedia.org'
    Capi_filters_test: deny from 'en.wikipedia.org' to 'bits.wikimedia.org'
    Nav_open_url: new url='http://blogs.reuters.com/reuters-money/2011/10/11/
    online-privacy-leaks-worsen-do-not-track-gains-steam/'
    Capi_filters_test: deny from 'blogs.reuters.com' to 'ad.doubleclick.net'
    Capi_filters_test: deny from 'blogs.reuters.com' to 'ad.doubleclick.net'
    Capi_filters_test: deny from 'blogs.reuters.com' to 'statse.webtrendslive.com'
          
  • Beginning with version 3.0.3, ~/.dillo/domainrc lets you specify whether to allow automatic requests between individual domains, so you can, for instance, permit requests from wikipedia and deny those for doubleclick.net.

How do I enable cookies?

(AKA Why can't I log into [some site]/Why can't I stay logged into [some site]?)

For privacy reasons, Dillo runs with cookies disabled by default. Cookies.txt (also available in the tarball) explains why in more detail.

Configuring cookies in Dillo is easy. Something like the following inside ~/.dillo/cookiesrc could be enough to get you started:

   #domain action
   DEFAULT DENY
   fltk.org ACCEPT
   .host.com ACCEPT_SESSION

How do I clear/remove/delete my cookies?

First, stop your plugins (dpis) with the following command:

dpidc stop

The cookies dpi will write any permanent (ACCEPT) cookies to disk, and temporary (ACCEPT_SESSION) cookies will be discarded as the dpi exits.

Second, get rid of the permanent cookies by removing or editing your ~/.dillo/cookies.txt file.

How do I enable the https (SSL) support plugin for dillo?

First of all, beware that this is a prototype in alpha state. It will only provide for very basic web page retrievals, POST and GET. There is no certificate caching and NO AUTHENTICATION performed.

It's disabled by default.

If you want to enable it (e.g. to read forums in https), then use

./configure --enable-ssl
Then recompile and reinstall.

How do I use a proxy with dillo?

For HTTP, either set the proxy in your ~/.dillo/dillorc configuration file or set the http_proxy environment variable. To use a proxy with FTP and downloads, you need to configure the wget program that they use.

Where is the history file?

Dillo does not have a file containing browsing history.

After upgrading, I get: "ERROR: dpi.c: can't start dpi daemon"

The old dpid and some dpis may still be running. Just:
      ps aux | grep dpid
      dpidc stop
      kill <dpid PID>
      ps aux | grep dpi
      kill <dpi PIDs>
    

Also: If you built dillo from source yourself, did you configure it so that 'make install' put dpid in a directory that's in your path?

How do I get started in developing Dillo plugins (dpis)?

First, read "doc/Dpid.txt" and then the Dpi1 spec for details. The easy way to get started is to think of them as CGI programs that don't need a web server, and that provide some handy extensions. Dillo comes with several dpis. Play for a while with the bookmarks in dillo (it's implemented with a dpi) to get an idea of what can be done. The hello dpi provides a simpler example ("dpi:/hello/world"). Downloads, FTP and view-source are also dpi programs. Choose one of them and start to make some modifications. Remember that a dpi is an independent process that communicates with Dillo by using sockets. As an independent program, it has all the power the underlying OS provides it. For instance, it would be easy to modify the bookmarks dpi to provide for a dillo-based GUI for data stored in a DB server.

I have sent an email/patch/question/etc. to Jorge, but still no answer. What's the deal?

Jorge has much more work than he can cope with. It's impossible to answer all the emails that pour in. There'd be no time for development, design, patch reviewing, patch integration, funding initiative, web site maintenance, quality assurance, release management, ...

So what do I do?

Allow him a week for urgent messages and two for less pressing matters. If he hasn't answered, send a reminder.

Search the dillo-dev mailing list archive.

Subscribe to dillo-dev.

I have an addition to the FAQ/website. Whom do I contact?

Send all such additions, as well as general questions about the website, to the mailing list (subscription required), or me.