[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    organizing kdebase
From:       "Aaron J. Seigo" <aseigo () fortresstechnology ! ca>
Date:       2007-02-21 22:17:27
Message-ID: 200702211517.28809.aseigo () fortresstechnology ! ca
[Download RAW message or body]


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

[Attachment #3 (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic