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
Questions
- How can I make Konq/E pick up the Qt/Embedded library instead of the normal Qt lib?
- I heard there's special support for the Qt Palmtop Environment?
- Where can I find this Qt Palmtop Environment?
- 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?
- How do things look like after a make install?
- Is there support for HTTP proxy servers?
- Is there support for caching, to speed up browsing?
- Are there more environment variables konq/e reads?
- Can I make the home toolbar button load www.mycompany.com instead of the KDE website?
- Is there a way to make Konq/E load an initial document on startup, instead of the blank page?
- I'm having trouble with images in html documents. Or Konq/E crashes for me when loading JPEG Images
- Is it possible to internationalize Konq/E, to make the menus show for instance German text instead of the default English?
- How do I run Flash plugins with Konqueror/Embedded?
- Is there a mailing list where I can ask question about Konq/E or participate with development?
- There are tons of special configure options and the like. I'm getting confused. How does your configuration look like?
- How can I add support for an external application handling the foo: protocol?
- Where can I download Konqueror/Embedded?
Answers
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.
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.
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.
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.
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 - 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
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.
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)
Are there more environment variables konq/e reads?
Yes, here are three:
KIO_HTTP_PROXY_CONNECT_TIMEOUT
- default 10 secondsKIO_HTTP_CONNECT_TIMEOUT
- default 20 secondsKIO_HTTP_RESPONSE_TIMEOUT
- default 60 seconds
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.
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
.
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.
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
.
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).
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.
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:
Qt:
./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++
Konq/E:
../xconfigure --disable-debug --enable-static --disable-shared --enable-qt-embedded --enable-qpe --with-extra-libs=$PWD/../lib/ --with-extra-includes=$PWD/../include -without-ssl --prefix=$PWD/../install
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 .
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] mailto=foomailer myfooprotocol=specialxzyplayer
(this feature is available as of CVS >= 20010625)
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.
[ Edit ]