GNOME Bugzilla – Bug 661387
Nvidia Twinview + Notification area location
Last modified: 2011-10-11 14:21:22 UTC
I have a multimonitor setup using nvidia proprietary drivers and Twinview with the Primari monitor *right of* a secondary monitor on the left (one big Virtual screen). In Gnome 3.0 I had the notification area on the bottom of the primary monitor. Now, with Gnome 3.2, the notification area shows up on the secondary monitor on the right. Is this intended? Or is there a possible way of configuring the monitor where to place the notifications? I would prefer to have them on the primary monitor, it is annoying to have them pop up on my left monitor. Greets J
Mmh, the intention is to move the message tray off the primary monitor if (and only if) there's a monitor stacked below. For horizontally stacked monitors, both the top bar and the message tray are supposed to be on the primary monitor - are you sure the monitor areas don't overlap? (It's probably also important to note that nvidia's twinview is as non-standard as it gets - it's no coincidence that it requires a dedicated tool instead of the System Settings panel used for every other graphics driver ...)
(In reply to comment #1) > Mmh, the intention is to move the message tray off the primary monitor if (and > only if) there's a monitor stacked below. For horizontally stacked monitors, > both the top bar and the message tray are supposed to be on the primary monitor > - are you sure the monitor areas don't overlap? > (It's probably also important to note that nvidia's twinview is as non-standard > as it gets - it's no coincidence that it requires a dedicated tool instead of > the System Settings panel used for every other graphics driver ...) The stacking seems to be a nice idea. As I said, I used this configuration on 3.0 just fine but the behavior started with 3.2. The twinview screen appears as a big 3200x1200 screen in the "Displays" configuration panel, but I don't think that they overlap. I know that the twinview config is non-standard but I need to use their drivers as I require its CUDA support. I was not able to setup a multiscreen environment without twinview (I guess its because NVIDIA does not implement the XRandR extension correctly, or does it work with newer xorg-server-1.11 already?). An interesting detail is that, when I hit the *Activities* button the primary monitor shows all the different workspaces but the secondary does only show an overview of its own windows without multiple workspaces. I think this is intended and it shows, that there is a logical distinction between both monitors. However, I think it is a bug that the message tray is not rendered on the primary monitor. Btw. I'm running Gentoo here, but I have the exact same problem on Arch Linux with the same drivers, too.
Created attachment 198724 [details] Image of the message tray on the wrong monitor
(In reply to comment #2) > An interesting detail is that, when I hit the *Activities* button the primary > monitor shows all the different workspaces but the secondary does only show an > overview of its own windows without multiple workspaces. I think this is > intended and it shows, that there is a logical distinction between both > monitors. Yes. > However, I think it is a bug that the message tray is not rendered on > the primary monitor. As mentioned, this is the intention unless monitors are stacked vertically. Can you start looking glass (alt-f2, enter 'lg') and get the values for: Main.layoutManager.primaryMonitor.x Main.layoutManager.primaryMonitor.y Main.layoutManager.primaryMonitor.width Main.layoutManager.primaryMonitor.height Main.layoutManager.bottomMonitor.x Main.layoutManager.bottomMonitor.y Main.layoutManager.bottomMonitor.width Main.layoutManager.bottomMonitor.height
Its Main.layoutManager.primaryMonitor.x = 1280 Main.layoutManager.primaryMonitor.y = 0 Main.layoutManager.primaryMonitor.width = 1920 Main.layoutManager.primaryMonitor.height = 1200 Main.layoutManager.bottomMonitor.x = 0 Main.layoutManager.bottomMonitor.y = 176 Main.layoutManager.bottomMonitor.width = 1280 Main.layoutManager.bottomMonitor.height = 1024 My (supposed to be) primary monitor on the right has a resolution of 1920x1200 and the smaller monitor on the left has 1280x1024. In twinview both are configured to line up at the bottom (see my screenshot). I just realized that when configuring both monitors to line up at the upper border the problem disappears and the message bar is correctly shown on my bigger monitor. Does this help? Maybe I can stay with this lining up at the upper border until this issue is fixed in a newer version.
Uh weird, now I noticed, with the lining up at the upper side, my run dialog (alt+F2) appears on the wrong, small right screen, which is annoying too..
Oh no, I realized that the dialog appears on the screen where the current window is active, so this is correct =)
Created attachment 198727 [details] [review] layoutManager: Ignore 1px overlap in _isAboveOrBelowPrimary() Nvidia's twin view option does not align monitors properly, but with a one pixel overlap. It looks safe to ignore an overlap this small to make this case work. I don't have an Nvidia card, so can't test this myself - can you please give it a try?
No, your patch did not work. However, I came up with this version that solves the problem with the single pixel overlay: if ((monitorLeft >= primaryLeft && monitorLeft <= primaryRight) || (monitorRight > primaryLeft && monitorRight <= primaryRight) || (primaryLeft >= monitorLeft && primaryLeft < monitorRight) || (primaryRight >= monitorLeft && primaryRight <= monitorRight)) return true; Now everything is working great! ;D Is is possible that this will make its way into the next version?
Created attachment 198736 [details] [review] layoutManager: Ignore 1px overlap in _isAboveOrBelowPrimary() Ignore overlap on either side
Your patch is working great, thanks!
Review of attachment 198736 [details] [review]: Makes sense and given that it works ... fine.
Attachment 198736 [details] pushed as 1a8d782 - layoutManager: Ignore 1px overlap in _isAboveOrBelowPrimary()