[Panel-devel] [RFC] Interaction model for "building" your shell

Kevin Ottens ervin at kde.org
Thu Sep 15 00:01:28 CEST 2005


Hi list,

I know I'm generally silent on mailing lists, and in particular in this one 
since I have to address some other parts of KDE before being able to come 
back to my good old kicker applets that will sooner or later become 
"plasmoids" (I don't know why I still find this name strange :D).

Ok, anyway... in this mail I'll try to expose some ideas I got about how to 
deal with plasmoids from the user point of view, and how he can setup his 
plasma "shell" to make it unique.
Some of the ideas below come from one blog from Aaron hinting that maybe the 
whole concept of panels could disappear, and from some testing I've done with 
E17.

First of all, since I mentionned E17, don't get me wrong. I'm not proposing 
just to rip feature from it... but some of the things I considered as flaws 
in their current model gave me some ideas. I'm not a (self-proclamed) genius 
trying to impose his vision... I'm just trying to provide some food for 
thought. ;-)

Here are the points I'll assume to be true about plasmoids:
1) Each plasmoid has a layout support.
2) When on the edge of the screen a plasmoid uses a one dimension layout.
3) Otherwise it uses a two dimensions layout.
4) You can change the size of a plasmoid (in both direction, or only one 
depending on the current layout).

As for exposing, I'll consider the following precondition:
All the plasmoids the user will use are already on the desktop (or it'll 
magically popup when he needs one more).
I assume this, simply because I'm not dealing with "how to add an plasmoid", 
but really how to build your shell from a set of plasmoids.

So, first of all, the user has his set of plasmoids. He can drag them around 
to build his shell. Each plasmoid has resize handles. If on the edge, you 
only have one handle available for resizing, otherwise you have two of them. 
That means that you fully control the size of a plasmoid in the case of a two 
dimensions layout, but you only control its height if it's placed on the 
bottom edge for example.

Next, if we want to get rid of panels, that means that we need to be able to 
"connect" plasmoids together. The best way to do this, looks like using 
"magnetic" edges. You drag a plasmoid close to the edge of another one and 
you get two connected plasmoid when you drop.

This raises two issues:
1) How does it affect resizing?
2) How to disconnect?

As for resizing, the solution looks clear to me, when several plasmoids are 
connected together, you get handles only for the biggest rectangular sets of 
plasmoids. For examples:
- you connect several plasmoids in a row, you get handles for the full row, as 
if it was only one unique plasmoid
- you connect several plasmoids forming a "U" (why not after all), you get 
handles for each bar of this group (one horizontal, and two vertical groups)

As for disconnecting I see two solutions:
1) We consider having a special handle as overlay on the plasmoids connected 
edges. When clicked, the connection is broken, and the plasmoids are slightly 
moved so that there's some room between them.
2) We consider the first (as in read-order) to be the "master plasmoid" if you 
move it, you move the whole group, otherwise you split the group at the moved 
plasmoid. For example, if I have a row of four plasmoids, if I move the one 
at the left it'll move the full group since I read from the left to the 
right. If I move the third one (counting from the left), it'll result in two 
rows of two plasmoids.

And finally... The open issue... How to trigger the "edit the shell" mode? I 
see two possibilities:
1) Having a handle on each plasmoid that you can use for dragging. I'm not 
sure it's really nice from a visual perspective...
2) Having a special action "somewhere"(*) triggering the edit mode. In this 
case every windows are hidden, and only the desktop and its plasmoids are 
accessible until you switch back to the normal mode.

Regards.

(*) This "somewhere" could be a special action available in the context menu 
of all the plasmoids... but everybody knows the issue with context menus, you 
have to know they are available.
-- 
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/panel-devel/attachments/20050914/1dc31f9d/attachment.pgp


More information about the Panel-devel mailing list