Introducing Homerun
Aurélien Gâteau
agateau at kde.org
Mon Nov 12 16:02:41 UTC 2012
Le dimanche 11 novembre 2012 12:02:58 Aaron J. Seigo a écrit :
> On Friday, November 9, 2012 23:09:35 Aurélien Gâteau wrote:
> > As you can see, it is a fullscreen launcher with content organized in
> > tabs.
>
> i find it to be a very interesting approach, and one that imho has
> potential.
>
> there are a number of visual issues right now and a few usability ones. if
> you could let us know what sort of feedback would be helpful to you, or
> alternatively when such feedback would be useful, i'd be happy to write
> more on this ...
We are happy to receive any feedback on both appearance and ergonomics. I know
some parts of Homerun definitely need more work, the configure editor for
example is quite clunky: the goal was to have something feature-complete, but
it is painful to use right now.
> i think with some additional work, this could make a useful replacement for
> kickoff in a future release.
Nice!
> i'm a little sad that the early work of making a QML SaL has been lost,
> however. that seems like a bit of a lost opportunity. is there any earlier
> work on this goal that can be salvaged, or did the objectives get changed
> almost instantly from the beginning?
The original kde-workspace branch is still available on plasma/sreich/sal-qml.
When I joined the project I was told the goal was to make an alternative
launcher rather than a 1:1 port of SaL.
> > One of the main differences between Homerun sources and Plasma runners is
> > that sources can provide default content
>
> as can runners (for many releases now). a Runner can define its default
> syntax, and that can then be used to get the default content from it by
> passing that syntax in to the match method. this is how KRunner shows
> content by default when pulling up a specific running in "single runner
> mode".
Oh. I was not aware of this. I never ran KRunner in "single runner mode", how
does one do it?
If we can find a way to do everything a Source can do with a Runner, I am happy
to drop the Source API. There are other features which I think are not
available for Runners right now. But I'd be happy to be proven wrong:
* Models
A Runner exposes its results as a QList<Plasma::QueryMatch>. A source model is
a Qt model, which is more QML-friendly and can be more efficient to propagate
changes.
* Favorites
Right now Homerun supports two kinds of favorites: favorite applications and
favorite places, a source model can use the favoriteId role to make its item
"favoritable".
* Browsable models
If you list the content of a dir, clicking on a dir item will cause the source
model to emit an "openSourceRequested" signal, which causes Homerun to ask the
relevant source for a source model with parameters to list the content of this
subdir. Sources can change while browsing: for example clicking a place of the
FavoritePlaces source, causes the Dir source to be opened, showing the content
of this place.
Furthermore, the source model can expose a PathModel to represent the current
position in the hierarchy tree.
* Submodel models
A source model can either expose a list of items, or expose a list of
submodels, which themselves expose a list of items. This makes it possible for
a source model to expose a categorized list of items. The Runner source uses
this to group Runner results by Runner, the AllInstalledApps source uses this
to list all installed applications, grouped by their first-level category
(Multimedia, Office, Games...)
I think that's it.
Aurélien
More information about the Plasma-devel
mailing list