mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00
49 lines
2.2 KiB
Text
49 lines
2.2 KiB
Text
![]() |
HOWTO Make KDED Modules
|
||
|
=======================
|
||
|
|
||
|
A KDED module implementation looks similar to a KControl module.
|
||
|
A module is loaded when a call is made to it.
|
||
|
KDED modules should not be added if it is avoidable because (especially
|
||
|
when new) they endanger the stability of KDED and its other modules which
|
||
|
provide important services. There are other ways to achieve what a KDED
|
||
|
module can do in many cases.
|
||
|
KDED modules should be useful during the whole session and manage
|
||
|
information that, for some reason, cannot be kept in any other process.
|
||
|
|
||
|
Here are examples of KDED modules:
|
||
|
kdelibs/kioslave/http/kcookiejar/kcookieserver.cpp Cookie-handling module (including GUI)
|
||
|
kdelibs/kio/misc/kwalletd/kwalletd.cpp KWallet module, handles the wallet file
|
||
|
kdebase/apps/lib/konq/favicons/favicons.cpp Favicons module, for downloading favicon.ico files when browsing
|
||
|
kdebase/runtime/kpasswdserver/kpasswdserver.cpp Password-caching module
|
||
|
|
||
|
A KDED module should install a .desktop file with
|
||
|
ServicesTypes=KDEDModule
|
||
|
|
||
|
A KDED module will be loaded on KDE startup if it has a line
|
||
|
X-KDE-Kded-autoload=true
|
||
|
|
||
|
Note that this flag doesn't cause the module to be loaded if the KDE desktop
|
||
|
is not running (i.e. when running a KDE application in another environment).
|
||
|
|
||
|
[The following paragraph was copied from kdebase/workspace/ksmserver/README]
|
||
|
The exact way autoloading works is controlled by X-KDE-Kded-phase=,
|
||
|
which may be 0, 1 or 2 (the default). Kded phase 0 means the module is
|
||
|
always loaded by kded, even outside of KDE session. It should used only
|
||
|
by kded modules which must be always running. Kded phase 1 modules are
|
||
|
loaded right after kded startup, but only during KDE startup, i.e. it is
|
||
|
for modules that are always needed by the KDE session. Phase 2 modules
|
||
|
will be loaded later.
|
||
|
|
||
|
Normally KDED modules are loaded whenever they are accessed, so you don't
|
||
|
need autoloading enabled. On demand loading can be disabled by putting
|
||
|
the following line in the .desktop file:
|
||
|
X-KDE-Kded-load-on-demand=false
|
||
|
|
||
|
Further it should contain:
|
||
|
X-KDE-Library=foo
|
||
|
|
||
|
Which means that kded_foo.so is the name of the library that contains
|
||
|
the module. Note that the name of the library always starts with kded_.
|
||
|
|
||
|
The .desktop file should be installed to ${SERVICES_INSTALL_DIR}/kded
|