Introducing Milou
Vishesh Handa
me at vhanda.in
Wed Sep 4 20:03:04 UTC 2013
Hey everyone
I've been working on a dedicated search client for Nepomuk. It was originally
called finder. We have now settled on the name "Milou". It is currently in
the playground - kde:milou
Here is a simple screenshot: http://vhanda.in/milou.png
Advantages -
1. Groups results based on the type
2. Allows the user to enable/disable groups and give them different priorities
3. Has much better Nepomuk support than KRunner or Dolphin
It currently supports searching through Applications, System Settings, Audio,
Videos, Images, Documents, Folders, Emails, Bookmarks and a handy
calculator (which doesn't exactly fit the concept of search)
Initially, I was planning on this just being a wrapper over Nepomuk. However,
as I began to use it more and more, it became annoying to have 2 places to
type things in - krunner and Milou.
Differences with KRunner
---------------------------------------
Milou is mostly just has a different UI and has a slightly different concept of
sources/runners -
* Each source returns a returns a set of types which it supports. For eg the
nepomuk source returns - Documents/Images/Audio/Video/etc, whereas the
Application Source returns Applications and KCModules.
These types can be enabled/disabled. A source typically should check if a
type is enabled, but even if it doesn't then the results will be discarded.
* Each match is given a respective type which is then used to group them
together.
Because of these 2 differences, I couldn't use Plasma Runners, so currently
I've adapted the services runner since I had to differentiate between
"Applications" and "KCModules". For bookmarks I'm using the single runner
mode. For the calculator, I've temporarily copied the code, because I could
not figure out how to run two different Plasma::RunnerManagers in the same
application in single source mode.
KRunner is obviously still far superior in terms of its architecture. It
automatically threads each of its runners. Also, it's very extensible, whereas
Milou is not.
Ideally, it would be nice to merge the two code bases together so that these
extra features can be supported in Plasma. However, given my future plans, I
think that is going to be slightly harder.
Future Plans
--------------------
- Need "People" support. KPeople still isn't quite there yet, but it'll be
quite simple incorporating it once it is released.
- Needs better Event support - The data is kinda there in Nepomuk, but it
needs more work on both the Nepomuk and Akonadi side.
- Add the concept of previews - Each source will be asked to display a short
preview on the result. In the case of the Nepomuk runner it's going to be
slightly complex as images/documents/emails/others will need to be handled.
In the case of people support, we can just show an image of that person
along with certain actions such as "Call/Chat/Email". These actions can be the
same as the Plasma Runners provide.
In the case of Audio, it might be nice to show some audio metadata (author,
title, album) along with a mini player, and maybe even display the album art.
I think it's going to be the source's role to provide an appropriate
QDeclarativeItem which does so. I'm still working out this concept of
previews, and how I'm going to implement it.
- A dedicated application for searching which can be connected to this
plasmoid for showing more search results, and to allow the user to filter them
better.
----
Any comments are most welcome.
--
Vishesh Handa
More information about the Plasma-devel
mailing list