"Simple by default, powerful when needed" applied to multi-monitor
We discussed this a bit in the Plasma 5.24 kickoff meeting on Monday 19 October 2021. Here's my pitch:
Right now multi-monitor users are terribly confused about:
- What the "Primary Monitor" setting means and does and why it's not present on Wayland
- What determines the screen that apps and notifications appear on, and how they change it
- How they determine which screen their panel and containment should live on
- How to move panels from one screen to another
- How to move containments from one screen to another
- How to get the same panel on multiple screens without mirroring the whole screen
In reality, the Primary Monitor setting does #2 only for certain non-KDE apps and many games; it kind of does #3 and #4 but conflicts with other ways to move panels, and there is no way to do #5 and #6 right now. It's no wonder that people are confused!
I have a proposal in line with Plasma's "Simple By Default, Powerful When Needed" motto:
Simple By Default
Now that the "Primary Monitor" setting is present in the KScreen KCM on both X11 and Wayland, we make it determine which screen shows your "primary containment"--defined as the containment that started out life with Folder View and the default panel on it (i.e. the first one you had). The whole containment automatically moves to whichever screen you designate as the primary monitor in the KScreen KCM. Notifications and new windows also automatically open on this screen. And the KScreen KCM gains some explanatory text to indicate all of this.
By default, other monitors cannot have independently-determined panels, and panels can no longer be manually dragged to another screen; it would be too confusing. Instead, we provide a simple UI to let people "mirror" the primary containment's panels across other screens, keeping them in sync with a single common set of settings.
In addition, by default widgets cannot be added to the desktop on secondary screens as this allows the risk of data loss (e.g. if you add text to a sticky note on a secondary screen and turn off the screen, that text becomes inaccessible).
It should remain possible to drag files from a Folder View containment on the primary screen onto a secondary screens, though. When any such screens are turned off, the icons on those screens would jump back to their prior locations on the primary screen's Folder View containment.
Powerful When Needed
In the UI that allows the user to mirror their primary screens' panels onto a secondary one, we provide access to another feature: the ability to have custom layouts on secondary screens. This would essentially enable what we have today--full editability of secondary containments. Custom panels, widgets, desktop vs folder view, you name it. When the user activates this feature, we display a warning telling them that any panels and widgets they add to a custom secondary containment like this will become inaccessible when its screen is turned off.
It would also provide a way to change which containment is considered the "primary" one; clone panels; and mirror panels or containments across any or all screens. Optionally, we can provide a way for users using this feature to gain access to any currently inaccessible containments via an advanced UI, like what's being proposed in plasma-desktop!618
An advantage to this proposal is that it happens to largely mirrors our how users think the system works, even if it doesn't already work this way! And experts would have more powerful tools to deterministically configure their panels and containments than they have right now.