QML Placces design discussion

Aaron J. Seigo aseigo at kde.org
Wed Feb 13 14:24:49 UTC 2013


On Tuesday, February 12, 2013 15:59:36 Mark wrote:
> I understand your reasoning, but i don't think you should do this. In
> my opinion a plasmoid - and certainly one that's on the panel - should
> never be invisible but still take up room. 

i think we can all agree that an empty space is a bug that needs to be fixed.

so, on to the question of "should we have a pager at all", "should the pager 
hide itself when it shows one desktop", etc.

some people use multiple virtual desktops (vd). some people don't. in fact, 
the default is not to. with the default, the first group of people add more 
desktops as one of the first things they do.

for the overwhelming majority of those with one vd, having a pager is worse 
than useless, it is downright confusing and takes up space on the panel. so 
we'd like to not show a pager for those people.

for those who do .. it's a bit annoying to then also suggest that they have to 
add a pager to their panel if they want one. how magical would it be if it 
just appeared? this is simply a way to give people more comfort and less to 
complain about.

not everyone who uses multiple VDs enjoys or needs a pager. they can remove it 
easily. (this is important to what follows ...)

so .. how can that accomplished? we could add a pager on demand when the 
number of desktops changes. however, this would mean tracking this probably in 
the containment .. and then it would need to know where to put it .. and we'd 
need a way to override this behaviour for distros that want something 
different.

it would also need to be smart enough to know that if it already put one there 
and the user removed it once before, don't add it again.

it's all pretty complex. it also breaks the concept of components in plasma 
and couples (even if loosely) the containment (or whatever component watches 
this) to the pager applet.

well, we could go ALL OUT and add an event based scripting system so that when 
a given event happens a given script is run. we'd have to define (and trigger) 
various events (e.g. "more virtual desktops") and we'd have to have a way to 
match up scripts with triggers ... and .. it's a whole hell of a lot of work 
(and would need to be maintained) for one small feature.

but there's a pragmatic solution: 

	hide the fucking thing when there is only one vd. 

this covers the "i've removed it once, don't want it back" use case. it covers 
swapping between 1 and 2+ VDs. it respects component lines.

so .. we now have the problem of "i only have one virtual desktop, but i want 
to add a pager". with the current pragmatic solution this isn't possible. i 
can imagine a few approaches to this:

* hide the pager applet in the chooser when there is only 1 VD. this isn't 
great as it means if you have only 1 VD you don't get a pager ever. it also 
means lots of instrumentation in the chooser (and probably more stuff in the 
applet .desktop files) to make this happen. -1

* put a configuration option in the pager which controls the "hide when VD == 
1" behaviour. this could be a hidden config value defaulting to off, allowing it 
to be used by the default panel script .. or it could be in the UI, making it 
easy to set whenever.

personally, i lean towards hidden config. if you want a pager that's always 
visible, just add one.

Mark's use case of "display is off, i need a pager" would also be covered in 
this case .. though that use case is also one that should be fixed properly in 
the window manager (Martin G. already noted that). i'd also suggest that with 
present windows and the tasks widget, there are other ways of getting to that 
functionality as well. otherwise, the pager's feature goals do not include "i 
wonder where my windows are when i turn off random displays", so there is no 
reason to optimize the common case / defaults for this.


there are some useful lessons in this, and i hope those who have participated 
in the lengthy discussion in this thread will pick some of them out :)

so .. who'll write the patch for the pager?

-- 
Aaron J. Seigo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20130213/411aeffd/attachment.sig>


More information about the Plasma-devel mailing list