Documenting how to write a device shell

Marco Martin notmart at gmail.com
Wed Jan 25 12:46:03 UTC 2012


On Wednesday 25 January 2012, you wrote:
> Em Wednesday 25 January 2012, Marco Martin escreveu:
> > Hi all,
> > 
> > I was trying to clean up a bit the code of the qml package that creates
> > the tablet shell.
> > I noticed that if we want for others to be able to easily write shells
> > for handhelds, set-top-boxes or giant robots (hint: we can't do all of
> > this by ourselves ;), a good how to documentation is needed.
> > 
> > I started a page here (linked from the development section of the active
> > wiki page):
> > http://community.kde.org/Plasma/Active/DeviceShell
> > 
> > please give feedback on what you would like to know if starting to diving
> > into that ;)
> 
> 	I thing I think should be there is difference between containments,
> plugins and applets. For example, the home screen is a contaiment, in
> ~/.kde/share/plasma-device-appletsrc you can specify which plugins and
> applets it must load during startup. By what I could understand a plugin

yes, there is definitely a confusion between those.
as first thing, what is intended here with "Home screen" :p

in plasma device the thing defined as home screen is a package that contains 
qml files and is loaded when the shell starts. It is only that set of qml 
files, it is *not* the main containment, the activity screen and what not.
in fact it doesn't know what the activity containments will look like and 
doesn't have any ways to know that, al lreceives is opaque objects and will 
know for instance that one of them is the owner of the screen (aka current 
activity) and will position it as the most visible one (usually filling the 
whole view, an homescreen could even fill only half of it with the current 
containment, if it wishes)

so, to recap, the homescreen can:
* directly load QML packages (that are neither containments nor applets) such 
as the activity switcher
* position the containments that are handed from the plasma shell

can't:
* create containments by itself
* directly contain, create or know anything about applets
* know how the main screen (applets, wallpaper behaviour) will look like: it's 
an opaque object

> is like a applet (plasmoid) with the difference that it does not have
> borders, it is directly drawn to the home screen's area. The applets are
> draw like plasmoids on a desktop containment in Plasma Desktop: with a
> window decoration with configure and close buttons on the top and a resize
> handler at the bottom right corner.

this is another issue, and is how the activityscreen containment works, that 
is a plugin different from the desktop one, and yes, maybe a docs page on how 
tor write qml only containments

> 
> 	A list of current available plugins and applets would be helpfull too.
> Another usefull information is how to discover each properties each plugin
> and applet provides. We can assign values to the properties in
> ~/.kde/share/plasma-device-appletsrc but we need to look at the source code
> to know which properties are available. And examples, that is very
> important too.
> 
> 	What we really miss is an IDE to create new home screens, that would
> make things a lot easier for newcomers. I know that is a hard task that is
> not going to happen soon (or even this year). I am saying that just to
> register the suggestion.

i don't think an homescreen is really a newcomers task ;)
neither the whole shell, neither the containments. I think what matters here 
is that is well documented. for simple plasmoids a thing like pasmate is good 
because lets to quicly put together something, for those critical system part, 
an ide imo tends to hide details that in this case is important they are well 
understood.

Cheers, 
Marco Martin


More information about the Active mailing list