New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show panel in all monitors #35

Open
el-psycho opened this Issue Jan 16, 2017 · 32 comments

Comments

Projects
None yet
@el-psycho

Hi, It would be great if there was a setting to choose whether to show the panel in all monitors. The same setting could also give the option to show the panel in a specific monitor. Right now the panel only appears on the primary monitor.

Thanks.

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 Jan 17, 2017

Member

I'm definitely not opposed to having this capability but the implementation isn't trivial. The gnome-shell doesn't support this easily. You can see there is an existing extension, Multi-Monitors Add On, but it clones the contents and all event handlers into a new panel and every possible change that any other extension could make to the main panel has to be predicted. Still, the best route may be to collaborate with them on getting the two extensions to work together.

The easiest work-around is to use Dash-to-Dock and setting the dock on a different monitor than dash-to-panel. That will only give you application access on two monitors, though.

Member

jderose9 commented Jan 17, 2017

I'm definitely not opposed to having this capability but the implementation isn't trivial. The gnome-shell doesn't support this easily. You can see there is an existing extension, Multi-Monitors Add On, but it clones the contents and all event handlers into a new panel and every possible change that any other extension could make to the main panel has to be predicted. Still, the best route may be to collaborate with them on getting the two extensions to work together.

The easiest work-around is to use Dash-to-Dock and setting the dock on a different monitor than dash-to-panel. That will only give you application access on two monitors, though.

@mpbits

This comment has been minimized.

Show comment
Hide comment
@mpbits

mpbits Jan 20, 2017

Hi @jderose9, first of all great extension. Just what I was looking for. But like @el-psycho mentioned it multi monitor support would be a dot on the i. Personally I am working as a SW developer and I am more than willing to assist you on this in any way I can. br

mpbits commented Jan 20, 2017

Hi @jderose9, first of all great extension. Just what I was looking for. But like @el-psycho mentioned it multi monitor support would be a dot on the i. Personally I am working as a SW developer and I am more than willing to assist you on this in any way I can. br

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 Jan 20, 2017

Member

@mpbits Contributions would be great, for sure! Pull requests are definitely welcome. My thought for a first step was to first determine why Multi-Monitors Add On is not compatible and see whether it could be resolved by altering either that extension or this one, as they are already a lot further down the path than starting from scratch.

Member

jderose9 commented Jan 20, 2017

@mpbits Contributions would be great, for sure! Pull requests are definitely welcome. My thought for a first step was to first determine why Multi-Monitors Add On is not compatible and see whether it could be resolved by altering either that extension or this one, as they are already a lot further down the path than starting from scratch.

@el-psycho

This comment has been minimized.

Show comment
Hide comment
@el-psycho

el-psycho Jan 22, 2017

My personal preference, if I was able to make a wish and have it come true, would be to be able to have the same panel appear in all monitors, and choose which panel displays notifications. All the panels would be the same otherwise.

Thanks for this great extension!

My personal preference, if I was able to make a wish and have it come true, would be to be able to have the same panel appear in all monitors, and choose which panel displays notifications. All the panels would be the same otherwise.

Thanks for this great extension!

@franglais125

This comment has been minimized.

Show comment
Hide comment
@franglais125

franglais125 Jan 26, 2017

Contributor

@jderose9 I implemented multi-monitor functionality for dash-to-dock, although it isn't merged. You can check it out in case you are interested: https://github.com/franglais125/dash-to-dock/tree/multi_monitor

Contributor

franglais125 commented Jan 26, 2017

@jderose9 I implemented multi-monitor functionality for dash-to-dock, although it isn't merged. You can check it out in case you are interested: https://github.com/franglais125/dash-to-dock/tree/multi_monitor

@jonnjonzzn

This comment has been minimized.

Show comment
Hide comment
@jonnjonzzn

jonnjonzzn Jan 27, 2017

Another +1 for this as I work on three monitors at work all day.

I can also vouch for the work @franglais125 referenced above. I've been using it for quite some time successfully.

Great extension. Thank you.

Another +1 for this as I work on three monitors at work all day.

I can also vouch for the work @franglais125 referenced above. I've been using it for quite some time successfully.

Great extension. Thank you.

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 Jan 27, 2017

Member

@franglais125 In dash-to-dock you can instantiate multiple docks, and all the code manipulating the dock is self-contained in the extension. On the other hand, dash-to-panel needs to maintain compatibility with lots of other extensions that are all manipulating the shell-instantied top bar - dumping widgets into it, connecting to events, etc, and all that stuff needs to be cloned and proxied to a new panel (which is I believe what Multi-monitor add-on tries to do).

Member

jderose9 commented Jan 27, 2017

@franglais125 In dash-to-dock you can instantiate multiple docks, and all the code manipulating the dock is self-contained in the extension. On the other hand, dash-to-panel needs to maintain compatibility with lots of other extensions that are all manipulating the shell-instantied top bar - dumping widgets into it, connecting to events, etc, and all that stuff needs to be cloned and proxied to a new panel (which is I believe what Multi-monitor add-on tries to do).

@franglais125

This comment has been minimized.

Show comment
Hide comment
@franglais125

franglais125 Jan 27, 2017

Contributor

@jderose9 Totally understand... I haven't gone through your code in-depth, I suggested that branch just in case.
In dash-to-dock I also had to handle some corner-cases of some instances, so perhaps it can be adapted, although I highly doubt it is as straightforward as the hotkeys thing was.

With the limited reading I did, I guess we would need to instantiate "taskbar" many times? Just being curious!

Contributor

franglais125 commented Jan 27, 2017

@jderose9 Totally understand... I haven't gone through your code in-depth, I suggested that branch just in case.
In dash-to-dock I also had to handle some corner-cases of some instances, so perhaps it can be adapted, although I highly doubt it is as straightforward as the hotkeys thing was.

With the limited reading I did, I guess we would need to instantiate "taskbar" many times? Just being curious!

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 Jan 27, 2017

Member

@franglais125 "taskbar" is basically the entire inner contents of the dock from dash-to-panel. But here it's only a single widget in the leftBox of the main panel. You could instantiate that multiple times and add it to a fresh empty panel on the secondary monitors but you would end up with the "Show Apps" button and application launchers only - any widgets such as the clock or gno-menu or top icons plus etc would not be duplicated to the secondary monitor.

Member

jderose9 commented Jan 27, 2017

@franglais125 "taskbar" is basically the entire inner contents of the dock from dash-to-panel. But here it's only a single widget in the leftBox of the main panel. You could instantiate that multiple times and add it to a fresh empty panel on the secondary monitors but you would end up with the "Show Apps" button and application launchers only - any widgets such as the clock or gno-menu or top icons plus etc would not be duplicated to the secondary monitor.

@mjohnson8165

This comment has been minimized.

Show comment
Hide comment
@mjohnson8165

mjohnson8165 Feb 16, 2017

@jderose9 I'm really no one to say the implementation of this feature is in fact trivial, that much I understand. But have you looked plain-old window-list by gcampax? Unfortunately I cannot provide a link at the moment - it would seem the extension that comes with Ubuntu Gnome 16.10 is newer than the one in the repository and has a "show-on-all-monitors" option (if you want, I could put it on github and, of course, give all credits).

I'm more of a back-end web dev and don't have any experience with extensions, but the code base seems very compact in comparison with Multi-Monitors and others. Please let me know what you think and if there's anything I could do to help. I really think that multi-monitor support is the only thing that's keeping dash-to-panel from being absolutely perfect.

@jderose9 I'm really no one to say the implementation of this feature is in fact trivial, that much I understand. But have you looked plain-old window-list by gcampax? Unfortunately I cannot provide a link at the moment - it would seem the extension that comes with Ubuntu Gnome 16.10 is newer than the one in the repository and has a "show-on-all-monitors" option (if you want, I could put it on github and, of course, give all credits).

I'm more of a back-end web dev and don't have any experience with extensions, but the code base seems very compact in comparison with Multi-Monitors and others. Please let me know what you think and if there's anything I could do to help. I really think that multi-monitor support is the only thing that's keeping dash-to-panel from being absolutely perfect.

@Tomha

This comment has been minimized.

Show comment
Hide comment
@Tomha

Tomha Mar 3, 2017

@jderose9 The "Show Apps" icon and application launchers are the main functionality I would like to see in multi-monitor panels, support for widgets would be a bonus. Would it be possible to introduce the basic functionality you described, as a starting point or even just on its own? I can get similar results using dash to dock or other docks, but the appearance/behaviour isn't consistent, and in the case of additional dock applications its a bit excessive for the basic functionality I desire. Any sort of feature like this in dash to panel would be fantastic.

Tomha commented Mar 3, 2017

@jderose9 The "Show Apps" icon and application launchers are the main functionality I would like to see in multi-monitor panels, support for widgets would be a bonus. Would it be possible to introduce the basic functionality you described, as a starting point or even just on its own? I can get similar results using dash to dock or other docks, but the appearance/behaviour isn't consistent, and in the case of additional dock applications its a bit excessive for the basic functionality I desire. Any sort of feature like this in dash to panel would be fantastic.

@Drakota

This comment has been minimized.

Show comment
Hide comment
@Drakota

Drakota Apr 5, 2017

Any update on this?

Drakota commented Apr 5, 2017

Any update on this?

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 Apr 5, 2017

Member

I was playing with Multi-Monitor addon and it adds additional panels which I was able to add a new instance of the dash to. So basically as a proof-of-concept things look good. That said, there is a lot of work to do.

Here's the TODO list:

(Minimal work for initial release)

  1. Pull in/adapt code from Multi-monitor add-on that creates additional topbar panels on each monitor. Probably need to refactor places that access the primary panel directly and tidy a bunch of stuff up.
  2. Add additional instances of the dash into the new panels.
  3. Wire up minimal set of applicable config settings (panel height, font sizes, etc) to handle multiple panels.
  4. Figure out what needs to happen when Isolate Workspaces is on and the secondary monitors are using their own workspace.
  5. Have "Show Apps" button open apps on monitor it was clicked on (currently always opens to primary monitor).
  6. Create a config setting to show/hide the panel on secondary monitors.

(Longer term)
7. Create new instances of gnome built-in panel buttons if they are enabled. Activities, appMenu, clock, status menu, etc. I was able to add a 2nd clock without issue but adding a 2nd instance of the status menu to a new panel causes an exception.
8. Possibly duplicate the workspaces slideout on the overview on additional monitors as Multi-Monitor add-on does. (Multi-monitor add-on is incompatible with workspaces-to-dock so that's an extra consideration here)

I'm sure there will be other issues discovered along the way. I don't have much time to work on this in the near term but I am hoping that if I can get say 1 & 2 completed that someone else would be able to chip in some time on some of the smaller items.

Member

jderose9 commented Apr 5, 2017

I was playing with Multi-Monitor addon and it adds additional panels which I was able to add a new instance of the dash to. So basically as a proof-of-concept things look good. That said, there is a lot of work to do.

Here's the TODO list:

(Minimal work for initial release)

  1. Pull in/adapt code from Multi-monitor add-on that creates additional topbar panels on each monitor. Probably need to refactor places that access the primary panel directly and tidy a bunch of stuff up.
  2. Add additional instances of the dash into the new panels.
  3. Wire up minimal set of applicable config settings (panel height, font sizes, etc) to handle multiple panels.
  4. Figure out what needs to happen when Isolate Workspaces is on and the secondary monitors are using their own workspace.
  5. Have "Show Apps" button open apps on monitor it was clicked on (currently always opens to primary monitor).
  6. Create a config setting to show/hide the panel on secondary monitors.

(Longer term)
7. Create new instances of gnome built-in panel buttons if they are enabled. Activities, appMenu, clock, status menu, etc. I was able to add a 2nd clock without issue but adding a 2nd instance of the status menu to a new panel causes an exception.
8. Possibly duplicate the workspaces slideout on the overview on additional monitors as Multi-Monitor add-on does. (Multi-monitor add-on is incompatible with workspaces-to-dock so that's an extra consideration here)

I'm sure there will be other issues discovered along the way. I don't have much time to work on this in the near term but I am hoping that if I can get say 1 & 2 completed that someone else would be able to chip in some time on some of the smaller items.

@i286

This comment has been minimized.

Show comment
Hide comment
@i286

i286 Aug 31, 2017

Id love this feature also 👍
Would love to know if there may be any opportunity in the future for it please

i286 commented Aug 31, 2017

Id love this feature also 👍
Would love to know if there may be any opportunity in the future for it please

@smueller18

This comment has been minimized.

Show comment
Hide comment
@smueller18

smueller18 Sep 19, 2017

I cloud spend some time to start implementing this feature, because I'd love to see the panel on multiple monitors. I have never developed a gnome extension though. @jderose9 can you please provide some information how you develop the extension and how you do debugging?

I cloud spend some time to start implementing this feature, because I'd love to see the panel on multiple monitors. I have never developed a gnome extension though. @jderose9 can you please provide some information how you develop the extension and how you do debugging?

@n0v3xx

This comment has been minimized.

Show comment
Hide comment
@n0v3xx

n0v3xx Sep 20, 2017

Need it too :)

n0v3xx commented Sep 20, 2017

Need it too :)

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 Sep 20, 2017

Member

@smueller18 Check out #58 and let me know what questions you still have - I'll be happy to answer. Thank you!

Member

jderose9 commented Sep 20, 2017

@smueller18 Check out #58 and let me know what questions you still have - I'll be happy to answer. Thank you!

@smueller18

This comment has been minimized.

Show comment
Hide comment
@smueller18

smueller18 Sep 20, 2017

Ok, thanks for the link. I checked the Looking Glass and the logging, but using only this tools and the missing documentation it's way more difficult than I thought.

Ok, thanks for the link. I checked the Looking Glass and the logging, but using only this tools and the missing documentation it's way more difficult than I thought.

@xF4m3

This comment has been minimized.

Show comment
Hide comment
@xF4m3

xF4m3 Nov 5, 2017

Might I ask if there are any updates happening to this? I am really excited for this feature 👍

xF4m3 commented Nov 5, 2017

Might I ask if there are any updates happening to this? I am really excited for this feature 👍

@justpie

This comment has been minimized.

Show comment
Hide comment
@justpie

justpie Feb 14, 2018

+1 for this. I would also love this feature.

justpie commented Feb 14, 2018

+1 for this. I would also love this feature.

@coollorenzo

This comment has been minimized.

Show comment
Hide comment
@coollorenzo

coollorenzo Feb 20, 2018

Any updates? I would love to see this feature!

Any updates? I would love to see this feature!

@eifelmicha

This comment has been minimized.

Show comment
Hide comment
@eifelmicha

eifelmicha Mar 25, 2018

I absolutely love this extension but this is a real dealbreaker. Is there atleast a way to hide the icons from applications running on an different screen?

Multi Monitor Panel would be perfect.

I absolutely love this extension but this is a real dealbreaker. Is there atleast a way to hide the icons from applications running on an different screen?

Multi Monitor Panel would be perfect.

@JianwenLi-GS

This comment has been minimized.

Show comment
Hide comment
@JianwenLi-GS

JianwenLi-GS May 4, 2018

any update?

any update?

@joca-bt

This comment has been minimized.

Show comment
Hide comment
@joca-bt

joca-bt May 7, 2018

What is the status of this?

joca-bt commented May 7, 2018

What is the status of this?

@mzeis

This comment has been minimized.

Show comment
Hide comment
@mzeis

mzeis May 11, 2018

I guess the current status is this: #35 (comment)

The best way we (who would love to get this implemented) can help is find somebody who can do the implementation. I'd be willing to donate some euros/dollars if there was a crowdfunding for this feature! :)

mzeis commented May 11, 2018

I guess the current status is this: #35 (comment)

The best way we (who would love to get this implemented) can help is find somebody who can do the implementation. I'd be willing to donate some euros/dollars if there was a crowdfunding for this feature! :)

@jderose9

This comment has been minimized.

Show comment
Hide comment
@jderose9

jderose9 May 12, 2018

Member

Nothing new to report, but this is coming. It affects many existing features of the panel though, and may require work with other extension authors to help maintain compatibility, so it's going to be a slow process. Thanks for your patience :)

Member

jderose9 commented May 12, 2018

Nothing new to report, but this is coming. It affects many existing features of the panel though, and may require work with other extension authors to help maintain compatibility, so it's going to be a slow process. Thanks for your patience :)

@miztroh

This comment has been minimized.

Show comment
Hide comment
@miztroh

miztroh Jun 6, 2018

@jderose9 If this is something you can develop in another branch, I'd be happy to help test. Thank you.

miztroh commented Jun 6, 2018

@jderose9 If this is something you can develop in another branch, I'd be happy to help test. Thank you.

@zagortenay333

This comment has been minimized.

Show comment
Hide comment
@zagortenay333

zagortenay333 Jun 7, 2018

Could you use Clutter.Clone perhaps? I.e., clone the panel across monitors, and when the user puts one of them into focus just swap the real panel with the fake one. That would need minimal code.

zagortenay333 commented Jun 7, 2018

Could you use Clutter.Clone perhaps? I.e., clone the panel across monitors, and when the user puts one of them into focus just swap the real panel with the fake one. That would need minimal code.

@nathan30

This comment has been minimized.

Show comment
Hide comment
@nathan30

nathan30 Jun 12, 2018

Hi,
Couldn't you use the same way Dash to Dock use the multi monitor implementation ?

Hi,
Couldn't you use the same way Dash to Dock use the multi monitor implementation ?

@SimonLammer

This comment has been minimized.

Show comment
Hide comment
@SimonLammer

SimonLammer Jun 27, 2018

Would really love for this to get implemented.

Would really love for this to get implemented.

@rinnnn

This comment has been minimized.

Show comment
Hide comment
@rinnnn

rinnnn Jul 27, 2018

Just to note: not only having easy mouse-access to running applications is important, but also it is important for notifications (as well as clock + runtime-updated tray icons e.g. of messengers + alt-tab dialogue) to popup where user's attention is (at minimum - to be on the cursor where mouse is). I do not mind option "all that on all displays" as a substitute to "follow mouse". As well as being able to stick that to right or left rather than to top/bottom. It all is just a plain usability (in configurations that are just slightly more complex than a single-monitor-single-language-user-case).

All that seems to lay on so on the surface that I'm just so surprised current Gnome3 doesn't support that... (along with other staff like output-sound-to-speakers-and-then-change-volume-having-headset-still-connected in gnome3, and some general things like inability for 10+ years in general Linux to push upstream the ctrl+shift-language-changeshortcut-not-to-interfere-with-ctrl+shift+something-app-shortcuts patch). That is my second attempt to switch from Unity to Gnome3 and I feel it gradually fails again due to above-mentioned reasons.

rinnnn commented Jul 27, 2018

Just to note: not only having easy mouse-access to running applications is important, but also it is important for notifications (as well as clock + runtime-updated tray icons e.g. of messengers + alt-tab dialogue) to popup where user's attention is (at minimum - to be on the cursor where mouse is). I do not mind option "all that on all displays" as a substitute to "follow mouse". As well as being able to stick that to right or left rather than to top/bottom. It all is just a plain usability (in configurations that are just slightly more complex than a single-monitor-single-language-user-case).

All that seems to lay on so on the surface that I'm just so surprised current Gnome3 doesn't support that... (along with other staff like output-sound-to-speakers-and-then-change-volume-having-headset-still-connected in gnome3, and some general things like inability for 10+ years in general Linux to push upstream the ctrl+shift-language-changeshortcut-not-to-interfere-with-ctrl+shift+something-app-shortcuts patch). That is my second attempt to switch from Unity to Gnome3 and I feel it gradually fails again due to above-mentioned reasons.

@rockagen

This comment has been minimized.

Show comment
Hide comment
@rockagen

rockagen Jul 31, 2018

Any updates?
Now,i look at the time must turn my head 😂

Any updates?
Now,i look at the time must turn my head 😂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment