Bug 58063

Summary: For all window placement modes, when a newly-opened non-tiled, non-maximized, non-fullscreen app window would completely cover the one immediately beneath it, cascade the window instead
Product: [Plasma] kwin Reporter: Beat Fasel <beat_fasel>
Component: coreAssignee: Natalie Clarius <natalie_clarius>
Status: RESOLVED FIXED    
Severity: wishlist CC: anditosan1000, arcooke, ceceron, ch75, edlin280, harijs, hein, kde, kde, kde, masterdany88, natalie_clarius, nate, postix
Priority: HI Keywords: usability
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 5.27
Sentry Crash Report:

Description Beat Fasel 2003-05-03 16:30:27 UTC
Version:           0.95 (using KDE KDE 3.1.1)
Installed from:    Debian testing/unstable Packages
OS:          Linux

Currently, I'm using the centered windows placement mode, as my focus is usually in the middle of the screen and I don't feel comfortable of the currently implemented smart windows placement mode, as the latter tends to pop up windows in the periphery of the screen, e.g. in the upper left hand corner, which I find very annoying, because I have to move the window then more to the center.

Ok, why am I not completely happy then with the centered windows placement mode? Well, if you open two instances of the same program (e.g. two konqueror windows), the latter instance of konqueror perfectly covers the earlier one. With the centered mode, all windows are stacked up in the center, so one tends to forget about undelying covered windows.

I therefore propose a smarter "smart windows placement mode". What I mean by smarter is, that the windows should pop up very close to the center, but not cover each other completely as is possible with the centered mode. How close to the center is probably a matter of taste - maybe a parameter to be chosen by the user with an advanced configuration button?

Thanks for your attention!
Beat
Comment 1 Beat Fasel 2004-05-17 17:47:09 UTC
As of KDE 3.2.2, in centered windows placment mode, windows still often occlude other windows, especially of the same type (e.g. konqueror windows). It would nice if windows would not cover each other 100% when being of the same type.

Thanks,
Beat
Comment 2 John Florian 2009-06-10 15:38:01 UTC
This would be most helpful when using xinerama over multiple screens.  As it is right now (KDE 4.2.3), each screen is managed fairly smartly but it stinks to have one screen get overly populated while adjacent screens have almost nothing on them.  It seems that kwin seems to prefer the screen which currently has the mouse over those which have the most available real-estate.
Comment 3 Martin Flöser 2009-12-05 23:22:43 UTC
*** Bug 217478 has been marked as a duplicate of this bug. ***
Comment 4 Christoph Feck 2017-05-08 03:28:23 UTC
*** Bug 377737 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2019-06-30 23:49:01 UTC
*** Bug 58064 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2019-08-28 15:29:04 UTC
*** Bug 338495 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2019-08-28 15:29:18 UTC
*** Bug 387603 has been marked as a duplicate of this bug. ***
Comment 8 Nate Graham 2019-08-28 17:07:45 UTC
*** Bug 275565 has been marked as a duplicate of this bug. ***
Comment 9 Nate Graham 2019-08-28 17:10:21 UTC
*** Bug 272088 has been marked as a duplicate of this bug. ***
Comment 10 David Edmundson 2019-08-28 17:21:05 UTC
>For all window placement modes, when a newly-opened non-tiled non-fullscreen app window would completely cover the one immediately beneath it, cascade the window instead

If a user has chosen a strategy that explicitly states what it should do (centered, zero cornered, maximised, under mouse) then doing something "magic" and not what the user explicitly asked seems like a bad idea.
Comment 11 Nate Graham 2019-08-28 17:26:02 UTC
The number of duplicates would seem to indicate otherwise. I come from the Mac world where windows are generally placed centered, but when a new window would completely cover the window beneath it, the new window is cascaded. In practice this is much nicer than covering up the window underneath it.  Maybe it's one of those things that you need to get used to to appreciate. But... having gotten used to it, I would really like to use it, because lacking it makes the Centered window placement mode really frustrating.

FWIW, my wife voiced the exact same criticism of the Centered placement mode when she tried it out, and ended up switching back to Smart, which annoys her for other reasons (what she really wants is Bug 15329).
Comment 12 Vlad Zahorodnii 2019-08-28 17:31:15 UTC
(In reply to David Edmundson from comment #10)
> >For all window placement modes, when a newly-opened non-tiled non-fullscreen app window would completely cover the one immediately beneath it, cascade the window instead
> 
> If a user has chosen a strategy that explicitly states what it should do
> (centered, zero cornered, maximised, under mouse) then doing something
> "magic" and not what the user explicitly asked seems like a bad idea.

*sigh* I guess we could a new placement policy or adjust existing (smart or centered).

In general, the proposed approach seems to be very sensible.
Comment 13 Vlad Zahorodnii 2019-08-28 17:31:32 UTC
s/could/could create/
Comment 14 Vlad Zahorodnii 2019-08-28 17:35:56 UTC
I suggest to adjust Smart placement policy.
Comment 15 Nate Graham 2019-08-28 17:38:24 UTC
That would be cool!

FWIW Centered and Zero-Cornered also suffer noticeably from this issue as well. In principle Random and Under Cursor could too, but probably not as much since window  position is more variable with those placement modes.
Comment 16 NiO 2019-08-29 01:11:55 UTC
In #377737 I suggested a "staggered centered" option which would spawn new windows near the center of the screen, offset a bit from the center in random directions. 

Just whipped up a quick little example here https://codepen.io/cowsay/pen/oNvwLrQ

Maybe something to consider?
Comment 17 Bug Janitor Service 2022-11-22 18:09:40 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3229
Comment 18 Natalie Clarius 2022-12-02 15:03:09 UTC
Git commit 274922caafb440af41c4add2c5047c52f97e3217 by Natalie Clarius.
Committed on 02/12/2022 at 14:05.
Pushed by ngraham into branch 'master'.

placement: cascade if window would completely overlap another window

M  +39   -0    src/placement.cpp
M  +2    -0    src/placement.h

https://invent.kde.org/plasma/kwin/commit/274922caafb440af41c4add2c5047c52f97e3217