the "run command" dialog is a venerable part of kde and it has a number of cool tricks up its sleeve, like allowing you to run a process as another user or answering math problems.
of course, it's part of kdesktop but i want to turf kdesktop and replace it with plasma. this means i need to do something with that run command dialog. what i've decided to do is create a separate app whose primary purpose is to handle that dialog. this should help ensure it doesn't crash (smaller code base == easier to get it right) and may even allow us to do neat things like run it with a higher priority so the user has a better chance of getting it to come up if some other process starts going crazy.
i suppose i could have ripped the run command dialog widget out of kdesktop and just wrapped it up with a kapplication and been done with it, but i'm not really too happy with how the current one looks and acts. so i started writing a new one yesterday. unfortunately i had to deal with one unexpected task after another yesterday which left me with only a couple hours of coding time so i only got so far.
right now it loads up an svg image for its background, uses an argb window if you have a composition manager running for extra bling and accepts input via a line edit at the top. as the user types, the input is passed by a chain of "runners" one by one until one claims that it can handle it. the self-selected runner then populates the possibilities that match and the user can select from that. there's a little "options" label at the bottom which activates when the given runner advertises the ability to set additional options.
i need to write a cute little animation where the options "slide out" in a little drawer-like-thing. it's all about the organics =) this too will be themeable with an svg image so one can make it as obtrusive or non-obtrusive as desired. right now i'm keeping all the images in share/apps/plasma/desktoptheme/default. the goal with that is to create one place where these image files can go so people can create alternative themes (nice for accessibility?) and so other apps can use standard imagery using the Plasma::Theme class.
i also need to make the runners pluggable so that packagers can, for instance, select what search system they wish to use (e.g. strigi or beagle) and supply the runner plugin for that search. other apps could also supply their own plugins i suppose as well. i'm half (but only half) thinking of playing with kross a bit for this as well.
anyways, not counting the new class in libplasma (which actually builds now on my machine ;) it's a little under 400 lines of code at the moment but will probably triple that once it's done. and then i can scratch one more thing off the plasma todo list.
i'll post screenshots when it's a little less clumsy lookin'