Konqueror • Technical • Konqueror embedded

Konqueror Embedded

The Konqueror/Embedded project attempts to build up a special version of the web browsing component of the KDE browser Konqueror (in particular its html rendering engine khtml and its io subsystem) . Konqueror/Embedded runs on the Qt/Embedded platform for embedded devices, in an environment without a KDE installation or a X windowing system, as one static binary, being as small as possible while still providing all essential features of a web browser, including

  • HTML4
  • CSS
  • JavaScript
  • Cookies
  • SSL
  • Non-blocking IO
  • Builtin Image Viewer
  • IPv6 support
  • Full xbel compatible bookmark support and management

Another key feature is the fact that Konq/E is not a fork of the browser components of KDE but it is part of the actual build process to copy over the original sources of the rendering engine, the HTTP client implementation and various support classes and compile them without modification. This is accomplished by providing drop-in replacement classes, providing source compatibility to the original code, while being optimized in size and functionality for Konq/E . This has the tremendous advantage of being able to gain from the latest bugfixes and improvements of the original browser, for free!

Mini FAQ



How can I make Konq/E pick up the Qt/Embedded library instead of the normal Qt lib?

If you want to compile with Qt/Embedded support, then you have to configure it with the --enable-qt-embedded configure switch. Also make sure the QTDIR is set correctly.

[Up to Questions]

I heard there's special support for the Qt Palmtop Environment?

There is a --enable-qpe configure switch which will make Konq/E link against the Qt Palmtop Environment libraries (and use them) . The support involves inherittance of the QPEApplication base application class and use of the QPE shared status message feature (re-using the task-bar for status messages, to avoid wasting screen space with an application status bar) . Make sure to have QPEDIR set then using this switch.

[Up to Questions]

Where can I find this Qt Palmtop Environment?

Here's the official website: http://qpe.sourceforge.net/ and here's the project page, where you can get the latest development version: http://www.sourceforge.net/projects/qpe/ . Note that Konq/E requires at least QPE version 1.3.1.

[Up to Questions]

The startup time of Konq/E is very slow when using Qt/Embedded. Is there a hidden turbo-boost configure switch to accelerate it to lightspeed?

A lot of time on startup is spend on parsing the available fonts. To optimize this make sure Qt/E only uses the .qpf font files for fonts and no .bdf or .ttf fonts . This will decrease startup time dramatically and reduce memory usage. See the Qt documentation of details about .qpf font files and how to generate them.

[Up to Questions]

How do things look like after a make install?

Basically an installation consists of three components:

  • the konq binary, installed into
  • the konqueror startup script, installed into as well. This startup script sets some environment variables to ensure Konq/E finds its data files and knows where to temporarily store data on the filesystem. Note that you don't need this startup script if you have the appropriate environment variables set globally in your system already
  • the share/ subdirectory, installed into /share , containing some data files (in particular charset information and the default stylesheet) . Note that these files are absolutely required for running Konq/E

[Up to Questions]

Is there support for HTTP proxy servers?

Sure, although this is currently a bit rudimentary, with regard to configurability. If you want to use a HTTP proxy server make sure to set the HTTP_PROXY environment variable appropriately. Like for example HTTP_PROXY="http://proxy.foo.com:3128/" . In addition the NO_PROXY_FOR environment variable is supported. Set it up to a list of servers for which you do not want to use a HTTP proxy server.
There is work in progress for a nice configuration dialog for this, combined with storing these settings in a persistent way, not using environment variables.

[Up to Questions]

Is there support for caching, to speed up browsing?

There are two caches in Konq/e.
The memory cache. Primarily used for caching images and stylesheets. The maximum size is 512 kbyte.
The disk cache. This is disabled by default, however you can turn it on and control it using the following environment variables:

  • KIO_HTTP_USECACHE - (set to any value to turn on caching)
  • KIO_HTTP_MAXCACHEAGE - Maximum age of cache in seconds (default 14 Days)
  • KIO_HTTP_MAXCACHESIZE - Maximum cache size in Kilobytes (default 5Mb)

[Up to Questions]

Are there more environment variables konq/e reads?

Yes, here are three:

  • KIO_HTTP_PROXY_CONNECT_TIMEOUT - default 10 seconds
  • KIO_HTTP_CONNECT_TIMEOUT - default 20 seconds
  • KIO_HTTP_RESPONSE_TIMEOUT - default 60 seconds

[Up to Questions]

Can I make the home toolbar button load www.mycompany.com instead of the KDE website?

Yes, the URL loaded when pressing the home button is configurable. Just provide a konq-embedrc file in /share/config and specify a HomeURL=http://your.site.org/ in the [General] group.

[Up to Questions]

Is there a way to make Konq/E load an initial document on startup, instead of the blank page?

Just put a html document called start.html into /share/apps/konq-embed.

[Up to Questions]

I'm having trouble with images in html documents. Or Konq/E crashes for me when loading JPEG Images

Here's how to get optimal image support and how to get rid of crashes related to jpegs. For GIF and PNG support you can easily use the builtin Qt support. For MNG the -system-libmng switch for Qt works fine. For JPEG you don't have to enable the qt builtin jpeg support. Konq/E comes with its own incremental jpeg loader. In fact the qt jpeg support won't be used. You need to use an external jpeg library (well, the one and only popuplar libjpeg which you most likely already have anyway) . To convince configure to pick up your jpeg library you might probably need the --with-extra-libs=/path/to/your/jpeg/lib and --with-extra-includes=/path/to/your/jpeg/includes configure switches.

[Up to Questions]

Is it possible to internationalize Konq/E, to make the menus show for instance German text instead of the default English?

Run make messages in the konq-embed directory. This will create a konqueror.pot file which you can use with standard GNU i18n tools. Like for example use msgmerge to merge it with your existing translations. For translating the actual POT files I strongly recomment using KBabel , it's certainly one of the very best translation applications out there.

To actually use a POT file with Konq/E you have to convert it to a Qt message file. This is done easily using the msg2qm utility, shipped with your Qt distribution, in $QTDIR/tools/msg2qm . Run it like:

  $QTDIR/tools/msg2qm/msg2qm konqueror_de.pot konqueror_de.qm

To make Konq/E use the correct Qt message file, install the .qm file into $prefix/share/locale . The filename has to be in the format konqueror_<languagecode>qm . The choice of the language is done on the basis of the LANG environment variable.
So for example if you have a german translation installed as konqueror_de.qm in /path/where/you/installed/konqueror/share/locale/konqueror_de.qm , then just make sure the LANG environment variable is set to "de" . Konq/E will then automatically load the message file and utilize the translations.
Last but not least: Translation support works only if Qt is compiled with translation support!! So double-check your qconfig-local to NOT contain QT_NO_TRANSLATION .

[Up to Questions]

How do I run Flash plugins with Konqueror/Embedded?

You have to enable the Flash add-on (via --enable-add-ons=kflashpart) which is based on the flash library written by Olivier Debon. This add-on does not require X but only implements Flash 3 features and a few of the Flash 4.
Other efforts are on the way to port the Netscape plugin support to Konq/E (which will require X).

[Up to Questions]

Is there a mailing list where I can ask question about Konq/E or participate with development?

Yes! Help is needed and more than appreciated! More information about the dedicated mailinglist can be found at http://mail.kde.org/mailman/listinfo/konq-e

Please keep in mind that I in particular am working on this in my spare free time. I'm doing it for the fun of it, I don't get any money. So please bear with me if I don't answer to emails within 5 minutes.

[Up to Questions]

There are tons of special configure options and the like. I'm getting confused. How does your configuration look like?

Here's what I use for cross-compiling for the iPAQ:

./configure -gif -qt-libpng -no-jpeg -no-mng -no-thread -no-opengl -release
  -shared -no-g++-exceptions -I/usr/local/arm-linux/include -depths 16
  -qconfig local -no-qvfb -xplatform linux-ipaq-g++


../xconfigure --disable-debug --enable-static --disable-shared
  --enable-qt-embedded --enable-qpe --with-extra-libs=$PWD/../lib/
  --with-extra-includes=$PWD/../include -without-ssl

xconfigure is a configure wrapper script I found on the net. It's handy when cross-compiling for ARM-Linux, as it sets up all necessary special configure switches to get things right. I put up a copy of it here .

[Up to Questions]

How can I add support for an external application handling the foo: protocol?

Edit /share/config/konq-embedrc and add a section like this

[External Protocols]

(this feature is available as of CVS >= 20010625)

[Up to Questions]

Where can I download Konqueror/Embedded?

We would suggest to use one of the snapshots available. These snapshot are created with well known configuration parameters which avoiding some of the usual beginner mistakes.

The most recent snapshots are available at: http://www.basyskom.de/index.pl/konqe.

Various older snapshots are available at: http://www.cirulla.net/kdenox-snapshots/.

If you're interesting in bleeding edge stuff then you can also check out the source from the KDE CVS Repository , in the kdenox module (see http://websvn.kde.org/trunk/kdenox/). Note that besides this module you will also need the kdelibs module for building. Make sure your copy of kdelibs resides in the same directory as the kdenox module.

[Up to Questions]

[ Edit ]

Global navigation links