Kiwix is an offline reader for Web content, primarily designed to make Wikipedia available offline. It reads archives in the ZIM file format, a highly compressed open format with additional metadata. This is the Kiwix Desktop version - a viewer/manager of ZIM files for GNU/Linux (recent versions) and Microsoft Windows 10 & 11 OSes.
This document assumes you have a little knowledge about software compilation. If you experience difficulties with the dependencies or with the Kiwix library compilation itself, we recommend to have a look at kiwix-build.
The Kiwix Desktop application relies on many third party software libraries. The following libraries need to be available:
These dependencies may or may not be packaged by your operating system. They may also be packaged but only in an older version. The compilation script will tell you if one of them is missing or too old. In the worst case, you will have to download and compile a bleeding edge version by hand.
Libkiwix has to be compiled dynamically, the best way to have it is to use kiwix-build.
Install needed packages (on Ubuntu 24.04+):
sudo apt install qt6-base-dev qt6-base-dev-tools qt6-webengine-dev
libqt6webenginecore6-bin libqt6svg6Once all dependencies are installed, you can compile Kiwix Desktop:
qmake .
makeqmake will use pkg-config to locate libraries. Depending on where
you've installed libkiwix (and other libraries) you may have to
update the env variable PKG_CONFIG_PATH. It can be set as follows,
for example, for x86-64 native systems:
export PKG_CONFIG_PATH="<...>/BUILD_native_dyn/INSTALL/lib/x86_64-linux-gnu/pkgconfig"You may want to simply open the kiwix-desktop project in QtCreator and
then compile the project from there (don't forget to update
PKG_CONFIG_PATH if necessary).
If you have many versions of Qt (like older Qt5 for example) installed
on your system, qmake might need to be configured to use Qt6.
qtchooser -install qt6 $(which qmake6) # run once
export QT_SELECT=qt6 # set in environments where Qt6 builds are desired
qmake --versionThese command will produce an output similar to:
qmake --version
QMake version 3.1
Using Qt version 6.2.4 in /usr/lib/aarch64-linux-gnuMany minor versions of Qt6, have difficulties to compile because of
'template-id' related syntax errors. If your compiler (g++) supports
it, you can get rid of these errors by telling the compiler to ignore
them with the following command:
qmake QMAKE_CXXFLAGS="-Wno-error=template-id-cdtor" .
makeMore info at:
- #1406
- https://bugzilla.redhat.com/show_bug.cgi?id=2280366
- RfidResearchGroup/proxmark3#2382
- https://bugreports.qt.io/browse/QTBUG-126989
Here is the online documentation.
To install Kiwix Desktop on the system:
sudo make installTo run Kiwix Desktop
kiwix-desktopYou might have to refresh the ld database before:
sudo ldconfigIf you face problems such as library not found..., add the following
environment variable:
LD_LIBRARY_PATH="<...>/BUILD_native_dyn/INSTALL/lib/x86_64-linux-gnu"kiwix-desktop uses Qt6
WebEngine to render
ZIM content, relying on a custom zim: protocol to expose the ZIM
data to the Web engine.
To debug issues related to WebEngine, follow these steps:
- Launch
kiwix-desktopwith the environment variableQTWEBENGINE_REMOTE_DEBUGGING=<port>set (replace<port>with an available local port number). - Open the desired ZIM file in the
kiwix-desktopuser interface. - In a Chromium-based browser, go to:
http://localhost:<port>. - This opens the remote debugging UI. Use it to access Chrome DevTools connected to the ZIM webpage rendered by WebEngine.
Available communication channels:
- Web Public Chat channel
- Mailing list
- Slack: #android channel Get an invite
- IRC: #kiwix on irc.freenode.net
For more information, please refer to https://wiki.kiwix.org/wiki/Communication.
If you're enjoying using Kiwix, drop a ⭐️ on the repo!