Bug 346933 - Since 5.3.0 showdesktop plasmoid works as show dashboard (also hides panel)
Summary: Since 5.3.0 showdesktop plasmoid works as show dashboard (also hides panel)
Status: RESOLVED FIXED
Alias: None
Product: kdeplasma-addons
Classification: Plasma
Component: General (show other bugs)
Version: 5.3.0
Platform: ROSA RPMs Linux
: NOR grave
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 346551 347330 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-04-30 05:22 UTC by Pulfer
Modified: 2015-09-28 21:27 UTC (History)
13 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.3.1


Attachments
The weird window location after show desktop button was clicked (517.74 KB, image/png)
2015-05-05 23:59 UTC, Ondrej Machulda
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pulfer 2015-04-30 05:22:11 UTC
Since 5.3.0 showdesktop plasmoid works as show dashboard (also hides panel).

Using KF 5.9.0.

Reproducible: Always
Comment 1 Pulfer 2015-04-30 05:49:27 UTC
It's expected to work as "Minimize all windows" like it was working for years.
Comment 2 Pulfer 2015-04-30 05:59:53 UTC
Seems to be caused by this kwin commit: http://quickgit.kde.org/?p=kwin.git&a=commit&h=cbfcd3b0962a78676d77f31d89c9336cd6a8a2c7
Comment 3 Thomas Lübking 2015-04-30 07:20:35 UTC
"show desktop" never! meant to "minimize all windows" - this too common misconception was apparently caused by an implementation detail and lead to much confusion and invalid bug reports (about unminimizing windows)

Thus we changed the implementation and introduced an actual function (kwin script) to minimize all windows (what ppl. apparently do because they wanted to change their virtual desktop) instead.

Whether the panel should be shown in that mode was not finally decided by the hig group (and anyone interested should bring up their arguments), but the implementation change is fully intended and not about to be reverted.
Comment 4 Pulfer 2015-04-30 08:13:56 UTC
(In reply to Thomas Lübking from comment #3)
> the implementation change is fully intended and not about to be reverted.

I understand it. But current showdesktop applet is useless because how can you restore your windows if the panel with showdesktop widget gets hidden. It's one way action now, it's very confusing. First I even thought it was a plasma crash...

And "minimize all windows" applet is a must have thing anyway. So even if showdesktop should work like it works since 5.3.0, people need another applet that works like showdesktop worked before.
Comment 5 Thomas Lübking 2015-04-30 11:29:37 UTC
As mentioned, the panel handling was not finally decided.

To keep the panel visible for the moment, do
"kcmshell5 kwinrules", use the detect button, pick the panel, ensure the matching includes the window type (docks only) and in the 3rd tab enforce it to keep above.

About resolutions of the plasmoid (given docks are ultimately not generally kept visible):
- plasmoid could require to be on the desktop (well, not that great a solution)
- the plasmoid could enforce the panel to remain visible (preferably by setting it transient for the desktop window rather than keep above)
- the plasmoid could add a copy of itself to the desktop when in showing desktop mode

About a minimize all plasmoid being a "must have" (that is like actual "minimize all", completely ignoring the the panel situation and the state not being implcitly broken etc.) i'm not too sure.
That's actually the behavior of switching to another (blank) virtual desktop.
Comment 6 Pulfer 2015-04-30 11:56:46 UTC
(In reply to Thomas Lübking from comment #5)
> To keep the panel visible for the moment, do
> "kcmshell5 kwinrules", use the detect button, pick the panel, ensure the
> matching includes the window type (docks only) and in the 3rd tab enforce it
> to keep above.

Thanx, this workaround works fine :-)

> - the plasmoid could enforce the panel to remain visible (preferably by
> setting it transient for the desktop window rather than keep above)

This one sounds better than others. Too bad plasmoids cannot just run kwin scripts.

> About a minimize all plasmoid being a "must have" (that is like actual
> "minimize all", completely ignoring the the panel situation and the state
> not being implcitly broken etc.) i'm not too sure.
> That's actually the behavior of switching to another (blank) virtual desktop.

It's a must have because it's almost as common as start menu, quick launch, taskbar and systemtray parts of the panel. People got used to it since Windows 98 (then other Windows or KDE versions). I believe many people will suffer if the feature is removed.
Comment 7 Thomas Lübking 2015-04-30 13:20:11 UTC
(In reply to Pulfer from comment #6)

> This one sounds better than others. Too bad plasmoids cannot just run kwin
> scripts.

if [ "`qdbus org.kde.KWin /Scripting isScriptLoaded minimizeall`" = "false" ]; then
   qdbus org.kde.KWin /Scripting loadScript minimizeall
   # todo : might require some sync/start call
fi
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "MinimizeAll"

Obviously most plasmoids would not walk across the qdbus exec.

> It's a must have because it's almost as common as start menu, quick launch,
> taskbar and systemtray parts of the panel.
The point is that a "minimize all" feature never existed unless you had a secret config key enabled which adjusted the "show desktop" behavior.
Comment 8 Pulfer 2015-04-30 15:30:14 UTC
(In reply to Pulfer from comment #6)
> (In reply to Thomas Lübking from comment #5)
> > To keep the panel visible for the moment, do
> > "kcmshell5 kwinrules", use the detect button, pick the panel, ensure the
> > matching includes the window type (docks only) and in the 3rd tab enforce it
> > to keep above.
> 
> Thanx, this workaround works fine :-)

Not really. After some testing I found that it works unless you minimize windows and then right-click on desktop. The click hides the panel.

For example, I want to add some plasmoid to my desktop. I click at showdesktop plasmoid (with "keep above" panel rule enabled), all windows are minimized. Then I right-click on desktop and my panel disappears.
Comment 9 Thomas Lübking 2015-04-30 22:11:54 UTC
Yes, it's still a workaround. The windows end up in the same layer what means when activating/raising the desktop ("kcmshell5 kwinoptions" allows you to configure mouseclicks in *all* windows) it will again go above the panels.

I'm unfortunately not aware of common tools that would allow you to set a window transient for another. I'll add that feature to kwindowsystem [1], but you'd still have to compile it (I doubt any distro ships that)

[1] https://github.com/luebking/KLItools
Comment 10 Pulfer 2015-05-01 01:43:34 UTC
Speaking of the plasmoid again, IMHO, the best solution is:
1. Make the panel shown in "show desktop" mode. Otherwise the plasmoid is useless (it's a panel plasmoid, not a desktop one, because if you already minimized your windows to access the desktop, you don't need to do that with the plasmoid).
2. Add an option to the plasmoid config so users could choose between minimize all windows and show desktop plasmoid behaviour. In case of "minimize all windows" just run kwin scenario via dbus.

Hope this can be done in 5.3.x branch.
Comment 11 Pulfer 2015-05-01 15:45:57 UTC
(In reply to Thomas Lübking from comment #7)
> if [ "`qdbus org.kde.KWin /Scripting isScriptLoaded minimizeall`" = "false"
> ]; then
>    qdbus org.kde.KWin /Scripting loadScript minimizeall
>    # todo : might require some sync/start call
> fi
> qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "MinimizeAll"

Meanwhile I used these dbus calls via Qt5DBus in showdesktop plasmoid provided by ROSA RPMs (see https://abf.rosalinux.ru/import/plasma5-kdeplasma-addons/blob/rosa2014.1/kdeplasma-addons-5.3.0-showdesktop-minimize.patch ).

I also patched minimizeall script to be enabled by default (see https://abf.rosalinux.ru/import/plasma5-kwin/blob/rosa2014.1/kwin-5.3.0-enable-minimizeall.patch ). The reason is that "org.kde.KWin /Scripting loadScript minimizeall" doesn't really enable this script (even reporting it's loaded) so the shortcut doesn't work.
Comment 12 Ondrej Machulda 2015-05-05 23:59:04 UTC
Wow, the state introduced in 5.3 is really really broken for me.

I even thought there was some kwin bug and restarted whole X server, as pressing the show desktop button not only hide the panel with the button itself (what is really not what yo don't want - there is even no way back then!), but also the windows are not hidden nor minimized, but somehow made transparent and moved to the upper corners of the screen (where you can't even click them or move them - see attachment). And that makes you think something is broken, not that this was expected behavior :-).

So +1 to change the behavior to something resembling the 5.2 state or make it configurable.
Comment 13 Ondrej Machulda 2015-05-05 23:59:43 UTC
Created attachment 92442 [details]
The weird window location after show desktop button was clicked
Comment 14 Thomas Lübking 2015-05-06 07:37:42 UTC
> pressing the show desktop button not only hide the panel with the button itself (what is really not what yo don't want - there is even no way back then!)

To help the HIG team w/ a decision please clarify whether the problem is the absent panel or the absent "show desktop" button. Ie whether you want to be able to interact with your panels in general in this mode or whether you "just" want the button to "somehow" remain.

> somehow made transparent and moved to the upper corners of the screen
Actually the closest corners. That's just the window aperture effect and the idea was to indicate the showing desktop state. I opened bug #347281 - but you can also jsut disable the effect ("kcmshell5 kwineffects") and optionally enable the "eye On Screen" effect as transition.
Comment 15 Guido 2015-05-06 08:33:47 UTC
It's funny, I click an icon representing a panel, on a panel... and the panel disappears.
Comment 16 David Edmundson 2015-05-07 21:55:22 UTC
*** Bug 346551 has been marked as a duplicate of this bug. ***
Comment 17 David Edmundson 2015-05-07 21:55:28 UTC
*** Bug 347330 has been marked as a duplicate of this bug. ***
Comment 18 Ondrej Machulda 2015-05-10 22:31:09 UTC
> To help the HIG team w/ a decision please clarify whether the problem is the absent panel or the absent "show desktop" button. Ie whether you want to be able to interact with your panels in general in this mode or whether you "just" want the button to "somehow" remain.

It still the same, I press button "Show desktop", know from eg. KDE 4 and Windows, but it behaves in a totally weird way. What I expected is that the *whole* panel (and even other panels) remains visible and no window is shown - so I see the desktop. Whether it really minimizes or just move the windows somewhere where they can't be seen is actually not important for me. 

> Actually the closest corners. That's just the window aperture effect and the idea was to indicate the showing desktop state.
Well, the it didn't work :-). I really don't expect the windows being moved in corners, so even the animation is confusing.
Comment 19 Alex Maystrenko 2015-05-10 23:54:39 UTC
Hey plasma devs! Are you kidding?! Please revert this to 5.2 state ASAP.
Comment 20 David Edmundson 2015-05-10 23:57:31 UTC
Please don't leave comments like that.
Comment 21 Alex Maystrenko 2015-05-11 00:25:21 UTC
I will. However I've also noticed that show windows dashboard is also affected. (Pressing on desktop in this mode)

So my opinion is that panel should not be hidden.. Because show desktop button and hide desktop button should be the same one. And escaping from this mode with any other ways is not an option. Think of this button like of an additional entry in task-manager that is showing "desktop window". At least please provide an option for making desktop like a fullscreen window or not.

I can provide one more argument. When I switch to desktop and panel remains shown I can faster access to new actions from panel then (open another window from task-manager, open application launcher, taskbar)

In conclusion, in panel we have widgets that we wanna see all the time  and access fast. Hiding panel is surprising effect, that is necessary only for an application that we wanna completely dive into like game or video player.
Comment 22 Martin Kyral 2015-05-15 11:05:07 UTC
Please, fix the panel hiding. Current approach is very confusing.
Comment 23 Thomas Lübking 2015-05-19 21:13:01 UTC
Git commit f3b69b0ed0d3fa863ed4b2233ac5ce6c5fcdd9c3 by Thomas Lübking.
Committed on 19/05/2015 at 20:01.
Pushed by luebking into branch 'Plasma/5.3'.

Showing Desktop: keep docks visible

REVIEW: 123783
Related: bug 347212, bug 346837
FIXED-IN: 5.3.1

M  +7    -0    layers.cpp
M  +9    -5    workspace.cpp

http://commits.kde.org/kwin/f3b69b0ed0d3fa863ed4b2233ac5ce6c5fcdd9c3
Comment 24 Thomas Lübking 2015-05-19 21:13:02 UTC
Git commit a16a489a43aef03e198630f80d8236b56052b6f9 by Thomas Lübking.
Committed on 19/05/2015 at 20:06.
Pushed by luebking into branch 'Plasma/5.3'.

Show Desktop: keep desktop group visible

Windows that "belong" to the desktop are
kept visible and do no break the state on
activation/mapping

REVIEW: 123783
Related: bug 346837, bug 347212

M  +6    -0    layers.cpp
M  +3    -0    workspace.cpp

http://commits.kde.org/kwin/a16a489a43aef03e198630f80d8236b56052b6f9
Comment 25 Thomas Lübking 2015-05-19 21:16:32 UTC
Git commit eb789e43e317fbb25fbd1f51d0edf9800f8c002a by Thomas Lübking.
Committed on 19/05/2015 at 20:09.
Pushed by luebking into branch 'Plasma/5.3'.

Show Desktop: activateNextClient prefers desktop

othrwise closing a keepabove or desktop group
window would activate some random window and break
the state as a side-effect

REVIEW: 123783
Related: bug 346837, bug 347212

M  +5    -2    activation.cpp

http://commits.kde.org/kwin/eb789e43e317fbb25fbd1f51d0edf9800f8c002a
Comment 26 Thomas Lübking 2015-05-19 21:16:32 UTC
Git commit 43e3b7db285c48efb25966334262d0e80190fd9e by Thomas Lübking.
Committed on 19/05/2015 at 20:07.
Pushed by luebking into branch 'Plasma/5.3'.

Show Desktop: break state with activation (only)

... not them becoming visible.
Latter doesn't work for most cases (unminimizing)
for obvious reasons (they're not minimized) and
when a new window is mapped, the focus stealing
prevention seems a good filter
(if it's not good enough to gain the focus,
it's not good enough to break the state either)

REVIEW: 123783
Related: bug 346837, bug 347212

M  +12   -16   client.cpp
M  +0    -1    client.h
M  +0    -2    manage.cpp

http://commits.kde.org/kwin/43e3b7db285c48efb25966334262d0e80190fd9e
Comment 27 Nick Stefanov 2015-09-22 19:42:36 UTC
Hello, may I ask something? How can I run MinimizeAll script with plasmoid in KDE5? It says that it will add shortcut. I selected it, but where is this shortcut? 

And why when aperture is disabled we must click THREE times on Show desktop to activate it? And why when we unmaximize one of the minimized with show desktop objects, they all unmaximize, instead just that one which we have selected? The remedy in KDE4 for this behaviour was:

 kwriteconfig --file kwinrc --group Windows --key ShowDesktopIsMinimizeAll true qdbus org.kde.kwin /KWin reconfigure

How we achieve this here, in KDE5?

Thank you.
Comment 28 Thomas Lübking 2015-09-22 20:11:48 UTC
(In reply to Nick Stefanov from comment #27)
> Hello, may I ask something?

In general please rather use forum.kde.org for such.


> How can I run MinimizeAll script with plasmoid in KDE5?
I'm not aware of a plasmoid for it.

> but where is this shortcut? 
"kcmshell5 keys" will open the shortcut config utility directly. select kwin and filter for "minimize all"

> And why when aperture is disabled we must click THREE times on Show desktop
> to activate it?
You don't. Sounds a bit like bug #350826. Does it also happen when using the "show desktop" shortcut (NOT the minimize all shortcut)?

> And why when we unmaximize one of the minimized with show
> desktop objects, they all unmaximize
Yes. That is and has always been the behavior of "show desktop"

> The remedy in KDE4 for this behaviour was:
We intentionally replaced this secret config option with an explicit script (which you found)
Comment 29 Nick Stefanov 2015-09-22 20:41:29 UTC
Thank you for the answer. I'm sory that I ask here.

I have to click three times when the aperture effect is disabled. Hot key work as intended. When aperture is enabled, the Show desktop plasmoid activates at first click. I have such behaviour in Arch and Manjaro.

> And why when we unmaximize one of the minimized with show > desktop objects, they all unmaximize 
Yes. That is and has always been the behavior of "show desktop" 

> The remedy in KDE4 for this behaviour was: 
We intentionally replaced this secret config option with an explicit script (which you found)

Yes I know that is the intended behavior of Show desktop, but for me is very irritating. Is there a way this script being used with plasmoid? I have already set hot key in "kcmshell5 keys" and it works very well but I want this function to button or plasmoid like Show desktop plasmoid. Is there a wau to change the Show desktop behaviour to what I want?

Thank you.
Comment 30 Nick Stefanov 2015-09-24 09:04:20 UTC
Hello, please...
Comment 31 Thomas Lübking 2015-09-24 11:09:39 UTC
congrats, you just made it to the bottom of my mail stack.
Comment 32 Thomas Lübking 2015-09-26 20:54:56 UTC
(In reply to Nick Stefanov from comment #29)
> I have to click three times when the aperture effect is disabled. Hot key
> work as intended. When aperture is enabled, the Show desktop plasmoid
> activates at first click. I have such behaviour in Arch and Manjaro.

This sounds like as if whatever contains the plasmoid (or the plasmoid itself) breaks the state right on/after trigger, ie the panel/desktop/? window gets activated by the click and is for whatever reason not considered "part of the desktop".

The behavior is however not reproducible here and, for the records, would break the state regardless of how "show desktop" would work (ie. it will affect the minimize all script as well)

=> It's an unrelated bug (and apparently not bug #350826 which seems to affect the shortcut as well), please file it against the "show desktop" plasmoid (though it may be in the containment which carries it)
 
> Yes I know that is the intended behavior of Show desktop, but for me is very
> irritating. Is there a way this script being used with plasmoid?
Yes, but not with /that/ plasmoid.
Such plasmoid would have to be written (at least I don't know one at hand) and simply trigger the scripts shortcut (by calling kglobalacceld to activate it)
Comment 33 Nick Stefanov 2015-09-27 00:17:22 UTC
Thank you. And there isn't such secred code like in KDE4 to change Show Desktop behavior? Or there is?
Comment 34 Thomas Lübking 2015-09-28 21:00:55 UTC
No. One point of the exercise was to get rid of such secret settings - they're pet features, known only to a selected elite.
(And with the change of the "show desktop" feature implementation technically neither possible anymore either)
Comment 35 Nick Stefanov 2015-09-28 21:27:01 UTC
All clear. Thank you :) For the time being I use MinimizeAll plasmoid for KaOs. Hope we see it officially in Plasma 5 :)