Bug 446654

Summary: Feature Request: mirror a panel on all monitors
Product: [Plasma] plasmashell Reporter: George Troulis <georgetroulis>
Component: PanelAssignee: Aleix Pol <aleixpol>
Status: CLOSED INTENTIONAL    
Severity: wishlist CC: 4wy78uwh, 60f31543-f82f-492a-8430-25db5521568b, alpersal235, bbaovanc, bencvdv, bnafta, boredsquirrel, boslmari7, bronsonmathews, Bugs.kde.org, bwbionicle, cheery.idea2032, chermnykh2001, clay, damaniakaushal4, dave, dcostroff, dennis.lissov, dr460nf1r3, ducouedicsophie, eliott.chytil, endrebjorsvik, evanc577, fanzhuyifan, formularsumo, fzwart, georgetroulis, gs2, guyven, herzenschein, j.chataignon, j.straight-kde, jackyguo18, jendal, jgqehj55, jgrdlgrd, joni.hilger, justinsojolly, kde, kde, keigh.rim, kev.metalwave, kubek-93, l.allulli, lcarmona, leereyzhe, leonvincenterd, luisbocanegra17b, mail, maxim.kukushkin, michele.mazza, milan, minterior, natalie_clarius, nate, natetronn, niccolo.venerandi, niccolo, nnikita.beloglazov, null, pansorg, pavila10alt, plasma-bugs, postix, r.kunschke, rexbinary, robin.rateau, severin.hamader, squale, ssi16.10.91, sylvainfaivre, szauer.mark, tani.giovonni, tcl_de, theneutralcat, unkinkedmedal94, vlpetrov02, wazhai
Priority: HI Keywords: usability
Version: master   
Target Milestone: 1.0   
Platform: unspecified   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=412588
Latest Commit: Version Fixed In:
Sentry Crash Report:
Bug Depends on: 443036    
Bug Blocks:    

Description George Troulis 2021-12-07 23:18:19 UTC
SUMMARY
When using two (or more) monitors, it is convenient to have a panel on each monitor such that all panels are completely identical. Currently, it seems that the only way to accomplish this is to manually create each panel, and customize each one in the exact same way. This is a tedious process for users that enjoy heavily-customized panels.

SOFTWARE/OS VERSIONS
Linux Kernel: 5.15.2-2-MANJARO (64-bit)
(available in About System)
KDE Plasma Version: 5.23.3
KDE Frameworks Version: 5.88.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
This feature has been previously requested for KDE Plasma 4, closed due to obsolescence of Plasma 4, and never re-opened on Plasma 5:
https://kde-bugs-dist.kde.narkive.com/0Vn46o7h/plasma-bug-342826-new-add-possibility-to-duplicate-panel-to-other-screens

This exact feature has been indirectly requested on a few forums, none of which have received adequate responses:
- https://www.reddit.com/r/kde/comments/iuq4ld/duplicate_panel_on_all_screens/
- https://forums.fedoraforum.org/showthread.php?324910-Panel-clone-for-each-monitor

CURRENT SOLUTION
1) Create a panel on one monitor, and customize manually with widgets/menus until desired
2) Repeat #1 for second monitor, ensuring new panel is identical to that on monitor #1
3) Repeat #1 for third monitor, ensuring new panel is identical to that on monitor #1
4) and so on ...

IDEAL SOLUTION
1) Create a single panel on one monitor, and customize manually with widgets/menus until desired
2) Create a new blank panel on second monitor. Right click on it, and select "Mirror Panel." Some selection menu would let the user choose which panel they would like this current panel to mirror. All customizations of the first panel would immediately transfer to the new panel, and changes to one panel will automatically be reflected in the other mirrored panel.
3) Repeat #2 for each monitor
Comment 1 racquun 2021-12-08 03:26:53 UTC
i agree this would be cool.
Comment 2 Nate Graham 2021-12-08 20:47:08 UTC
Yes, this is an idea we're pursuing soon!
Comment 3 Nate Graham 2021-12-15 17:40:39 UTC
*** Bug 447012 has been marked as a duplicate of this bug. ***
Comment 4 Nate Graham 2022-01-20 21:45:39 UTC
*** Bug 448678 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2022-04-25 17:19:23 UTC
*** Bug 420854 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2022-05-27 14:02:17 UTC
*** Bug 454458 has been marked as a duplicate of this bug. ***
Comment 7 jackyguo18 2022-06-13 21:24:45 UTC
Has there been any progress towards this or are they waiting on someone to make a PR?
Comment 8 lcarmona 2022-06-18 18:50:45 UTC
This option will be really nice. Other possibility would be backup/export the panel (but in this case, the notification area could crash).
Comment 9 squale 2022-06-21 14:46:48 UTC
This would be *really* nice to have.
Comment 10 Fabio C. Barrionuevo 2022-10-03 12:56:10 UTC
This would be very helpful. Better than that, just something that works totally out of the box on multiple monitors like the panel provided by tint2.

tint2 is not as powerful and customizable as plasma panels, but at least it works well with multiple screens.
Comment 11 Nico 2022-11-19 09:42:45 UTC
Indeed a very helpful feature! 2-3 monitors are currently very time-consuming to set up if everything needs to be created manually. It would also enable distributions to ship multi-monitor configured out of the box rather than leaving users on their own.
Comment 12 Jakub 2022-12-01 09:00:01 UTC
It would save a lot of time spent on redoing panels on external displays.
Comment 13 veggero 2022-12-08 16:19:54 UTC
*** Bug 462771 has been marked as a duplicate of this bug. ***
Comment 14 bbaovanc 2022-12-10 22:29:06 UTC
Is there anything blocking this? I can see requests from 7+ years ago in KDE 4 asking for this, how has this not been added yet?
Comment 15 Nate Graham 2023-01-05 20:56:49 UTC
*** Bug 463260 has been marked as a duplicate of this bug. ***
Comment 16 wazhai 2023-01-11 13:29:30 UTC
"IDEAL SOLUTION
Repeat #2 for each monitor"

This might be useful for more customized setups, but to cover 95% of use cases a setting similar to other DEs along the lines of "Show this panel on all monitors" seems far more ideal and user-friendly.
Comment 17 Nate Graham 2023-02-28 21:48:53 UTC
*** Bug 466558 has been marked as a duplicate of this bug. ***
Comment 18 ducouedicsophie 2023-03-10 11:19:02 UTC
Yes please that would be a nice feature!
Comment 19 Derek 2023-03-12 13:16:08 UTC
This would be extremely helpful, would like to see this.
Comment 20 skrachen 2023-03-16 03:17:43 UTC
Additional forum posts about this: 
https://askubuntu.com/questions/1265917/how-to-show-kde-panel-at-all-monitors
https://www.reddit.com/r/kde/comments/m2i8fh/taskbar_on_both_monitors/
(related) https://www.kubuntuforums.net/forum/archives/eol-releases/-20-10/software-support-bd/72357-kde-plasma-default-panel-on-multiple-montiors

SUGGESTED SOLUTIONS so far:
- a "mirror an existing panel" option when creating a new panel
- a "duplicate this panel" option in Edit Mode
- a "show this panel on all monitors" option in Edit Mode
- "show primary screen's panels on this screen" in Display Settings
- "export to file"/"import from file" features for panels
Comment 21 Natetronn 2023-03-28 18:11:22 UTC
Would love to see this feature added as well; please.
Comment 22 Kevin 2023-05-20 13:07:42 UTC
+1 on this feature
Comment 23 Natetronn 2023-08-10 20:50:18 UTC
Please allow me to submit my vote for this feature as well.
Comment 24 Roke Julian Lockhart Beedell 2023-08-15 18:47:49 UTC
(In reply to Natetronn from comment #23)
> Please allow me to submit my vote for this feature as well.

https://bugs.kde.org/describecomponents.cgi?product=plasmashell has disabled bug votes.
Comment 25 vlpetrov02 2023-09-21 13:47:47 UTC
I agree, this would be very helpful
Comment 26 Natetronn 2023-09-21 14:47:02 UTC
(In reply to third="Beedell", first="Roke", second="Julian Lockhart" from comment #24)
> (In reply to Natetronn from comment #23)
> > Please allow me to submit my vote for this feature as well.
> 
> https://bugs.kde.org/describecomponents.cgi?product=plasmashell has disabled
> bug votes.

Thanks. Yeah, I meant it metaphorically :-D
Comment 27 lucasrizzini 2023-10-24 12:05:28 UTC
I think this should be something that could be possible from the beginning. I have a DP and HDMI monitor and I can't just have the panel on the DP monitor, not on Xorg, at least.
Comment 28 tani.giovonni 2023-12-24 08:12:16 UTC
Not certain how related this is behind the scenes (if at all) but a more general way of copying widgets, panels, etc. between monitors would be good as well. Panels and widgets seem to be related to some degree, but I'm not sure quite how much they are or if a generalised method of copying/mirroring would be possible.
Comment 29 justinsojolly 2024-02-20 17:30:19 UTC
What is the status of this?? This is years old, how is it not possible to duplicate a panel for all monitors? This is getting pathetic and extremely frustrating. Please revisit this and push this out to the code base.
Comment 30 Alper Şal 2024-02-20 17:37:07 UTC
Yeah, I am waiting for this since `2023-01-10 14:42:16 UTC`. Yesterday I have formatted my PC and even though I do not customize my panels anywhere near avg. Arch user, it was really unsatisfying doing everything from the start. And I only have two monitors. It is really annoying how this is still not implemented.
Comment 31 fanzhuyifan 2024-02-20 17:38:29 UTC
(In reply to justinsojolly from comment #29)
> What is the status of this?? This is years old, how is it not possible to
> duplicate a panel for all monitors? This is getting pathetic and extremely
> frustrating. Please revisit this and push this out to the code base.

If you submit a MR for it I am sure it would get reviewed and considered :)

Alternately, there is also the sponsored work section where you could post a bounty for this: https://discuss.kde.org/c/development/sponsored-work/31

 Unfortunately KDE is driven by volunteers, and there are always more tasks than developers available. So if you really want to see some feature implemented, the best way is to submit a MR (it doesn't have to be perfect), or sponsor someone to do it.
Comment 32 Dmitrii Chermnykh 2024-02-21 16:20:11 UTC
This probably should depend on https://invent.kde.org/plasma/plasma-desktop/-/issues/113 because duplicating some widgets may break some functionality
Comment 33 fanzhuyifan 2024-02-21 16:22:30 UTC
(In reply to Dmitrii Chermnykh from comment #32)
> This probably should depend on
> https://invent.kde.org/plasma/plasma-desktop/-/issues/113 because
> duplicating some widgets may break some functionality

I currently have two screens with duplicate system trays containing the applets, and I don't seem to notice any issues.
Comment 34 Dmitrii Chermnykh 2024-02-21 16:25:10 UTC
(In reply to fanzhuyifan from comment #33)
> (In reply to Dmitrii Chermnykh from comment #32)
> > This probably should depend on
> > https://invent.kde.org/plasma/plasma-desktop/-/issues/113 because
> > duplicating some widgets may break some functionality
> 
> I currently have two screens with duplicate system trays containing the
> applets, and I don't seem to notice any issues.

I used to have problems with media keys because they were handled by 2 instances of media player applet 
https://bugs.kde.org/show_bug.cgi?id=391578 
https://bugs.kde.org/show_bug.cgi?id=409190
Comment 35 fanzhuyifan 2024-03-21 01:27:11 UTC
*** Bug 484110 has been marked as a duplicate of this bug. ***
Comment 36 Henning 2024-03-24 13:05:35 UTC
yes a big problem is that every external display needs to get the panel created new, which is especially bad when presenting, or using a TV etc.
Comment 37 medalzz 2024-06-13 01:12:14 UTC
Is there really no updates on this? It's the main reason why I haven't switched to kde yet.
Comment 38 squale 2024-06-15 07:04:45 UTC
I dared to change platform as this affects all linux users.
I dared to change version as there is no attempt to provide this feature in any branch afaik
Comment 39 Kaushal 2024-07-03 12:46:48 UTC
Yes please, this will be a very useful feature.
It's not very imperative to create new panels for each screen.
Comment 40 theneutralcat 2024-07-10 09:19:37 UTC
This feature would make the transition for Windows users (like me) much, MUCH smoother. It's one of the most noticeable and arbitrarily worse differences between daily driving Windows vs KDE plasma.
Comment 41 Bug Janitor Service 2024-08-18 10:34:21 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4623
Comment 42 Niccolò Venerandi 2024-08-28 12:00:13 UTC
After some investigation, I believe that the technical implementation of this is de-facto impossible; however, a very similar feature - the ability to clone a panel from a monitor to another - was implemented, and thus I'm closing this as wontfix. 

To elaborate, it's already quite complex to have two different panels who should follow the same set of settings (a major rewrite would be needed for that); but, on top of that, monitors can have different sizes and thus the same panel should have to be mirrored with different looks on different panels, potentially interfering with the settings. There would be a lot of combinations possible, and I believe they would be prone to breakage.
Comment 43 Maxim 2024-08-28 12:19:54 UTC
(In reply to Niccolò Venerandi from comment #42)
> After some investigation, I believe that the technical implementation of
> this is de-facto impossible; however, a very similar feature - the ability
> to clone a panel from a monitor to another - was implemented, and thus I'm
> closing this as wontfix. 
> 
> To elaborate, it's already quite complex to have two different panels who
> should follow the same set of settings (a major rewrite would be needed for
> that); but, on top of that, monitors can have different sizes and thus the
> same panel should have to be mirrored with different looks on different
> panels, potentially interfering with the settings. There would be a lot of
> combinations possible, and I believe they would be prone to breakage.

Could you please elaborate a bit more on the panel cloning? Last time I tried to do this I found it quite complicated. Basically there were no controls to clone a panel and the panels are not stored anywhere in a simple format on a filesystem, so that it could be somehow automated

Given the amount of comments in this feature request and points that it's big UI experience downgrade when coming from other platforms, this feature needs to be implemented in one way or another.

Even if a panel can be cloned with several clicks, it's still quite cumbersome to do, especially when we're talking about laptops which can be attached to all sorts of monitors and projectors in meeting rooms. Imagine doing this 3-4 times per day, for people who often need to present in different locations.

I think when people talk about mirroring a panel, it doesn't mean mirror pixel-by-pixel. It's about the set of widgets and their settings which is hardest to do manually. That aspect doesn't depend on monitor's resolution.
Comment 44 Maxim 2024-08-28 12:23:48 UTC
btw, if there's already an option/code to clone an existing panel, why can't this Feature Request be implemented in form of automatically triggering that "clone" feature when a new monitor is added in case doesn't have any panel yet?
Comment 45 medalzz 2024-08-28 14:04:14 UTC
(In reply to Niccolò Venerandi from comment #42)
> After some investigation, I believe that the technical implementation of
> this is de-facto impossible; however, a very similar feature - the ability
> to clone a panel from a monitor to another - was implemented, and thus I'm
> closing this as wontfix. 
> 
> To elaborate, it's already quite complex to have two different panels who
> should follow the same set of settings (a major rewrite would be needed for
> that); but, on top of that, monitors can have different sizes and thus the
> same panel should have to be mirrored with different looks on different
> panels, potentially interfering with the settings. There would be a lot of
> combinations possible, and I believe they would be prone to breakage.

Sir, with all due respect, this is a dealbreaking feature others DEs and OSes have, and it absolutely is a reason why many would never try kde. Thats how important it is. If a major code rewrite of the panels is needed for this, we can wait till its done.
Comment 46 Niccolò Venerandi 2024-08-28 14:15:03 UTC
(In reply to Maxim from comment #43)
> Could you please elaborate a bit more on the panel cloning? Last time I
> tried to do this I found it quite complicated. Basically there were no
> controls to clone a panel and the panels are not stored anywhere in a simple
> format on a filesystem, so that it could be somehow automated

I implemented a new feature where you just have to click "Clone" on panel settings and then select a screen :)

> btw, if there's already an option/code to clone an existing panel, why can't this Feature Request be implemented in form of automatically triggering that "clone" feature when a new monitor is added in case doesn't have any panel yet?

This could be done, but I'm a bit worried about the consequences it might have. What if the user has multiple panels? Should we always clone *all* panels from one screen to another? Is that what the user really expects when connecting to a new monitor?
Comment 47 Maxim 2024-08-28 14:23:40 UTC
> This could be done, but I'm a bit worried about the consequences it might
> have. What if the user has multiple panels? Should we always clone *all*
> panels from one screen to another? Is that what the user really expects when
> connecting to a new monitor?

Not always, I think the original idea was to have a setting for a panel to indicate that it's expected to be mirrored. So the algorithm in the first iteration could be:
- when a monitor is connected
- for each panel
- does it have the "mirror" flag set? (no by default)
- if not, do nothing
- does the new monitor already have panels?
- if yes, do nothing
- otherwise, clone the panel

The last bit can be modified, depending on what information is available internally. The main idea is to prevent cloning panels endlessly on each connect of the same monitor. I don't know if it's possible to mark a panel as a clone of another one in its metadata (like an ID) to be checked more precisely. However, imho, it would already be a major improvement
Comment 48 Roke Julian Lockhart Beedell 2024-08-28 14:25:02 UTC
(In reply to Niccolò Venerandi from comment #46)

> > btw, if there's already an option/code to clone an existing panel, why can't this Feature Request be implemented in form of automatically triggering that "clone" feature when a new monitor is added in case doesn't have any panel yet?
> 
> This could be done, but I'm a bit worried about the consequences it might have. What if the user has multiple panels? Should we always clone *all* panels from one screen to another? Is that what the user really expects when connecting to a new monitor?

It's certainly not what I would expect.

(In reply to Maxim from comment #44)

> btw, if there's already an option/code to clone an existing panel, why can't this Feature Request be implemented in form of automatically triggering that "clone" feature when a new monitor is added in case doesn't have any panel yet?

Because that's different functionality. This FR is about an automatic visual replication by rendering one configuration to other monitors, whereas your proposal would be to automatically duplicate one configuration to all other monitors. Each configuration would then need to be rendered independently, and presumably `plasmashell` would overwrite the 2nd-to-last modified panels with the modifications performed to the last-modified one?
Comment 49 Niccolò Venerandi 2024-08-28 14:26:15 UTC
(In reply to Maxim from comment #47)
> > This could be done, but I'm a bit worried about the consequences it might
> > have. What if the user has multiple panels? Should we always clone *all*
> > panels from one screen to another? Is that what the user really expects when
> > connecting to a new monitor?
> 
> Not always, I think the original idea was to have a setting for a panel to
> indicate that it's expected to be mirrored. So the algorithm in the first
> iteration could be:
> - when a monitor is connected
> - for each panel
> - does it have the "mirror" flag set? (no by default)
> - if not, do nothing
> - does the new monitor already have panels?
> - if yes, do nothing
> - otherwise, clone the panel
> 
> The last bit can be modified, depending on what information is available
> internally. The main idea is to prevent cloning panels endlessly on each
> connect of the same monitor. I don't know if it's possible to mark a panel
> as a clone of another one in its metadata (like an ID) to be checked more
> precisely. However, imho, it would already be a major improvement

I'll give a look at the code. If it's not too complex, some sort of auto-cloning might be a worthy addition.
Comment 50 medalzz 2024-08-28 14:50:35 UTC
(In reply to Niccolò Venerandi from comment #46)
> (In reply to Maxim from comment #43)
> > Could you please elaborate a bit more on the panel cloning? Last time I
> > tried to do this I found it quite complicated. Basically there were no
> > controls to clone a panel and the panels are not stored anywhere in a simple
> > format on a filesystem, so that it could be somehow automated
> 
> I implemented a new feature where you just have to click "Clone" on panel
> settings and then select a screen :)
> 
> > btw, if there's already an option/code to clone an existing panel, why can't this Feature Request be implemented in form of automatically triggering that "clone" feature when a new monitor is added in case doesn't have any panel yet?
> 
> This could be done, but I'm a bit worried about the consequences it might
> have. What if the user has multiple panels? Should we always clone *all*
> panels from one screen to another? Is that what the user really expects when
> connecting to a new monitor?

I believe the best way to add this would be a checkbox labeled 'Show this panel on all monitors' or something like this, that when checked will do so. That way it will only clone panels the user want.
Comment 51 Henning 2024-09-15 20:18:23 UTC
thanks Niccolo for your work on this!

Yes I agree with the strong feelings some people here expressed. This really is odd.
Plasma detects the laptop monitor as primary, so overwriting that with the config of some random other screen should not happen.

I only know Windows, and COSMIC, and there this is simply the default. Actually, I guess, sacrificing the option for different panels.

I think using a mechanism like described, cloning the panel, if no other exists, if no opt-out exists, makes sense.

Otherwise yes, going into panel configuration to have this seemingly basic feature working, is not a nice workflow.

Thanks for your time! I would also be a fan of the auto-cloning.
Comment 52 Nate Graham 2024-09-16 11:50:20 UTC
Automatically cloning panels (which ones?) on newly-connected monitors is a different request from mirroring, which is what's being requested here and has been deemed infeasible. I would recommend opening a new feature request for that.
Comment 53 username981618 2024-09-16 12:06:26 UTC
I created a separate issue for it: https://bugs.kde.org/show_bug.cgi?id=493195