Behaviour of "Show Desktop"

Sebastian Kügler sebas at kde.org
Fri May 8 04:07:10 UTC 2015


Hi,

With 5.3.0, we have introduced a new behaviour for the "show desktop" button 
and shortcuts. The effect is now more dashboard like, applications are 
visually not hidden anymore but stashed aside, and the panel is invisible.

The problem is that we have missed quite a few corner cases and ignored some 
common interaction patterns when introducing the new feature. It's also not 
easily possible to revert to the old behaviour.

https://bugs.kde.org/show_bug.cgi?id=346837 is a bit non-specific, describes 
old behaviour, is confused by new behaviour, points out interaction problems
https://bugs.kde.org/show_bug.cgi?id=346933 prefers previous behaviour being 
able to interact with applications (no special state but minimized windows, 
still accessible from taskbar, panel remains visible and interactive)

The ancient https://bugs.kde.org/show_bug.cgi?id=67406 is very telling. The 
reporter uses the show desktop button to get all the windows out of the way 
and opens a new window next. New windows breaks the state immediately, 
restoring all the windows and the user finds it a mess. The "fix" was to 
introduce a config option to keep windows in the minimized state when the 
showing desktop mode was exited by opening a new app.

Currently, the following workflows get me into an inconsistent state regarding 
"where are my windows":
* when I enter showing desktop mode, then right-click on the wallpaper | 
Desktop Settings, the window isn't shown and I'm not exiting showing desktop 
mode
* when I enter showing desktop mode on an empty desktop, then hit alt-tab, the 
panel becomes quickly visible, then hides again, but in this case, alt-tab 
does not exit showing desktop mode
* when I enter showing desktop mode, say on desktop 1, then switch to virtual 
desktop 2 by keyboard shortcut, the windows that have been moved out of the 
way also appear in the corners of desktop 2, worse: when I now switch back, 
I'm apparently out of showing desktop mode 2, but the windows are still moved 
out of the way, they never moved back, and I have no way to get at them since 
they're mostly translucent and don't accept input

The thing is exactly what Thomas Lübking points out in 
https://git.reviewboard.kde.org/r/123671/: we haven't really figure out when 
to cancel showing desktop.

Then, we have the problems that have to do with modality:
* when I enter showing desktop, I can't open a new application from the app 
launcher as the panel is not shown, this was possible before, and also I think 
quite a common thing to do (again, has to do with the modality)
* in showing desktop mode, my primary means of switching applications is 
removed, this was working before, implementing as simply restored all windows 
and activated the app that was clicked on in the taskbar, with a config option 
to keep the other windows in their minimized state
* when entering showing desktop from the panel widget, we can't get back by 
clicking it again, this is what this review is about

These points have to do with intended behaviour. The problem is that until we 
have figured all these cases out, we have broken a bunch of fairly common 
things to do.

The individual bugs may all be fixable, but it shows that merging the show 
dashboard with the show desktop feature and making the show desktop feature "a 
lot more modal" introduces a whole slew of bugs. From the Plasma Shell side, 
it's simply not ready for prime time.

Now, technically, there are two sides to it:
* Bugs in Plasma (taskbar interaction cancelling the mode from krunner, no app 
launcher, can't open desktop settings)
* Bugs in interaction with kwin features (alt-tabbing, virtual desktop 
switching are both not working flawlessly)

Both of these lead to interaction problems with the new show desktop feature 
as planned.

More important is the modality problem. Our users expect the show desktop 
feature to be "almost not modal", more like a transient state. From the bug 
reports it seems that modality is not even wanted here. Users need access to 
their desktops in order to interact with the next application, open a file 
from the desktop.
By making show desktop more modal and in fact a more special state (window 
aperture effect instead of "hidden and able to get it back from the taskbar. 
But, when making it more modal, we have to find all these places to exit the 
mode and cancel it from there, and that is simply not polished. It's easy to 
get it into an inconsistent state, and there's entirely no support from the 
Plasma Shell, which this feature puts into a much more central state.
We have reduced the feature set of the show desktop button to basically only 
allowing to interact with Plasma widgets on the desktop (not even in the 
panel). Likely, the more common usecase is interacting with windows, and that 
is now made almost impossible, we have in fact removed most of the ways people 
would use to leave the show desktop mode. I don't think we can just say "this 
button that has been there forever (literally, it originated in windows 3.11 
iirc) is now limited to interacting with Plasma widgets".

Another problem is that we have no concept for the dashboard. What we've done 
is turning show desktop into a dashboard-like mode, but ignoring a whole bunch 
of interaction patterns. We reintroduced a whole slew of ancient bugs, and 
even a few weird new ones. We have introduced this change too early and not 
completely thought and tested it through. It's a complex beast that affects 
many interaction patterns, we have changed its fundamental behaviour, and that 
bites us in the ass.
Exactly, it bites *us collectively* in the ass, not any single person 
individually. It's not useful to single out yourself or anyone else for 
introducing the slew of problems this change brings. It's our fault as a team.

Evidently, we have introduced new behaviour that is supposed to contain less 
bugs, but it results in a much more limited functionality in a feature which 
has been there forever. The new mode does away with some interaction problems 
but it does so simply by reducing showing desktop mode to a small subset of 
its previous features. It's evident that the increased modality introduces 
more problems currently than it solves. Also, we didn't want to break muscle 
memory, expected and trained behaviour with Plasma 5, but this is exactly what 
we've done by introducing this new feature.

That said, moving forward, here's what I think we need to do:

* Put back the pre-5.3.0 behaviour as default,
* Re-think the overall interaction of the show desktop feature and the 
dashboard, especially in terms of modality and common workflow patterns
* Reintroduce the new behaviour as option and polish its corner cases

This solves the newly introduced bugs, but brings back the old ones. At least, 
for the old behaviour, most of the cornercases have been fixed over time and 
we can tap into 20 years of muscle memory from desktop users.

And yes, I hate to take a step back, but the Plasma shell itself, its 
components, and also kwin are at this point just not ready to introduce this 
without breaking many of the common workflows involving the new "show 
desktop". We should let a really improved show desktop / dashboard 
functionality ripe first, then introduce it as default.

Cheers,
-- 
sebas

http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9



More information about the Plasma-devel mailing list