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