organizing kdebase
Aaron J. Seigo
aseigo at fortresstechnology.ca
Wed Feb 21 22:17:27 GMT 2007
hi all...
as kdelibs transformed slowly but surely over the last several months (and
continues to do so) into a more orderly place with slightly less randomness
in the placement of things, it's time to turn some attention to kdebase as
well and do the same.
in malaga we generally agreed to a vision of kdebase where we have a few
distinct groups of applications: a set that other applications rely on, a set
that form the workspace shell and a set that are just plain expected on a
minimal desktop.
i've thought more about this in the last few days and would like to share my
thoughts at this point for peer review ... once discussion settles, i'll do
the moving and provide documentation by updating kdebase/README
the purpose of kdebase
===============
while kdelibs provides the base library infrastructure, kdebase provides the
basic set of applications expected by kde applications as well as a desktop
shell and essential apps.
kdebase does not provide the "complete desktop", just the starter kit if you
will. the "complete desktop" is provided by the combination of the various
app modules (e.g. everything other than kdebase and kde*libs).
divisions in kdebase
============
i'm suggesting the following 4 sections to kdebase, 3 of which are already
there but perhaps need a bit more definition:
* runtime: portable applications used by kde apps for "infrastructure" tasks
* workspace: the desktop shell, portability not a requirement nor really
necessary as other platforms provide these facilities already
* apps: essential GUI applications, portability prefered
* utils: basic apps that fit in well with the "starter kit" but which are
probably not GUI oriented and certainly wouldn't be expected to have a
launcher on the panel or desktop, or instance
the reason for these divisions are several:
* to track our dependencies internally (particularly for runtime)
* to divide out things a bit more logically for people getting into kdebase
dev
* to offer packagers and users some better hints as to what parts of kdebase
are what without breaking it into actual separate modules
here's how i propose to actually organize the source tree:
runtime
=====
drkonqi (crash dialog, visible on crashes)
kcheckpass (password validator; we use it only in screensaver but google's
code search showed it being used by 3rd party apps as well)
kcmshell (loads control panels one at a time)
kcontrol becomes settings-panels and includes only those panels that configure
global, but not workspace-specific items
kdeeject (pops out media, used by the media mount helper for instance)
kdesu (run command with other UID, used exensively)
keditbookmarks (bookmark editor, used e.g. from kio_bookmarks, konversation)
khelpcenter (local user documentation, launched via app Help menu)
kioslave (various ioslaves common to desktop usage)
kuiserver (shows jobs)
kurifilter-plugins (self-explanatory =)
l10n (also self-explanatory)
solid (backends for solid)
workspace
=======
kcminit (takes care of runtime settings at log-in)
kcontrol becomes settings-panels, only workspace related ones are kept here;
application specific panels are moved to their respective apps subdirs
kdepasswd (user password management)
kdm (X11 login manager)
khotkeys (hotkey management)
klipper (X11 clipboard management)
kmenuedit (application menu structure editor)
krunner (run dialog, desktop locking, screensaver activation, app startup
notification, task list via ksysguard)
kscreensaver (screensavers =)
ksmserver (session management, including autostart)
ksplashml (login splash, assuming nothing takes its place in the meantime)
ksysguard (system information monitoring)
kwin (the only window manager you'll need ;)
menu (.desktop files for the app menu)
nsplugins (netscape plugin integration)
plasma (desktop layer and panels)
wallpapers (graphics to make your desktop purdy)
libs:
lib/ contains libworkspace which houses classes like kwindowlistmenu,
kworkspace, dmctl
kdmlib -> kdm/lib, greeter classes
plasma/lib -> plasma library for svg themes used by various workspace apps,
plasmoids and plasma data engines
if you're wonder about ommissions:
kdesktop is going to be removed in the next couple of weeks
kicker will be removed before 4.0
kpager: i'd like to move this to extragear to be honest
ktip: the utility of this seems dubious
apps
===
dolphin (file manager, emphasis on manager)
kcontrol (the actual kcontrol shell; currently in runtime/ to spare mac os and
windows people. we face the same "problem" on linux/unix already anyways
where installing minimal kde on many OSes doesn't include kcontrol. windows
and mac people can install apps/kcontrol too. there is always kcmshell)
konqueror (browser, web- and file-)
kfind (file finder)
konsole (the one, the only ... ladies and gentlemen, it's konsole!)
kwrite (what, only one text editor? ;)
libs:
libkonq/ (file management goodies and guffaws)
utils
===
kappfinder (find legacy apps and add them to your menu; maybe this moves out
of base altogether?)
kdebugdialog (set actions to take for output from the various debug areas)
kdialog (bring your scripts to life with kdialog[tm])
kinstalltheme (install time pixmap cache creator; may be obsoleted before 4.0)
kioclient (kio ops that were previously in kfmclient)
kquitapp (quit an application via IPC)
knewstuff (generic app for grabbing knewstuff data; might really be more
suited to kdeutils or even extragear to be honest)
kreadconfig (read and write kconfig entries via the command line)
kstart (handy utility to start applications in various states)
solidshell (command line utility for interacting with hardware via solid)
--
Aaron J. Seigo
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070221/bf85dc56/attachment.sig>
More information about the kde-core-devel
mailing list