refiining runners
Aaron J. Seigo
aseigo at kde.org
Thu Feb 7 11:24:29 CET 2008
hi all...
so playing with runners i've noticed that it's going to take quite a bit of
manual tweaking and playing to get them "just right".
here are some thoughts i've been having:
* krunner should use solid to detect the # of cpu cores and expand the thread
pool accordingly (e.g. base + (2 * (num_cores - 1)))
* runners should be able to publish their syntax, so that it's discoverable
that "spell plasma" actually does a spell check on it. i'm thinking a simple
QMap<QString, QString> syntax() or some such that would allow fetching
a "table" of syntax and descriptions from a runner.
* by default matches should not be relevance 1. maybe .6?
* we have two speed settings, and on the slow speed the object only gets
access to two of the threads. a seemingly abandoned approach was to ensure
only one of each type (which of course still deadlocks when the # of unique
slow runners is equal to the number of threads) ... another approach is to
ensure that only one of each kind is running, with a maximum of N threads
dedicated to them. this will prevent one really slow one from block all the
other slower ones.
* do we need more that two speeds? what would we do with these other speeds?
* we have a priority rating .. that seems to work ok, but it is set by the
runner itself. we should probably audit each runner for its setting. but what
would be really great would be providing a mechanism that the *user* can
override. perhaps the priority rating should also be taken into consideration
alongside relevance for final ranking in the UI?
* pulling some of the threading and runner management code out of KRunner's
Interface class and putting it into something semi-generic in libplasma (in
SearchContext, even?) would make it easier to use runners from elsewhere
* the runners that are currently built into krunner really should probably be
plugins so others can use them. it doesn't seem to offer any lessening of
risk since the plugins are loaded immediately not during run-critical points
* we need some interaction modes in krunner including: fixed search (can't
edit the search term; useful for user switching), single runner (only use one
specific runner; or maybe set of?) ...
* we really need that new UI ;)
--
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
KDE core developer sponsored by Trolltech
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/panel-devel/attachments/20080207/59d78d01/attachment.pgp
More information about the Panel-devel
mailing list