Skip to content
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

[FancyZones] Cannot use separate layouts on multi-monitor #611

Closed
Gadgetgeek2000 opened this issue Oct 31, 2019 · 52 comments
Closed

[FancyZones] Cannot use separate layouts on multi-monitor #611

Gadgetgeek2000 opened this issue Oct 31, 2019 · 52 comments
Assignees
Labels
Cost-Large Large work item - 3+ days worth of work (chances are needs to be broken down) External Dependency This bug or feature isn't resolved, but it's following an external work item. Issue-Bug Something isn't working Product-FancyZones Refers to the FancyZones PowerToy

Comments

@Gadgetgeek2000
Copy link

Environment

Windows build number: [Version 10.0.18362.387]
PowerToys version: 0.12.0.0
PowerToy module for which you are reporting the bug (if applicable): FancyZones

Steps to reproduce

I have 2 custom layouts. One for the left monitor, one for the right.

  1. I move the mouse to the left monitor and press [WIN] ~

  2. I choose Custom, and the left layout option.
    left

  3. I click Apply

  4. I move the mouse to the right monitor and press [WIN] ~

  5. I choose Custom, and the right layout option.
    right

I click Apply.
The right monitor layout is applied to all monitors. I have tried also just moving the settings window before hitting apply but that doesn't work either.

I can also use the main settings window, drag to the monitor, change the layout, and the same behavior happens, both monitors are updated.

Expected behavior

Expected to be able to have a separate layout on different monitors.

Actual behavior

Identical layout applied to all monitors.

Screenshots

@davidchill
Copy link

Have you tried a re-install?

I tried re-creating this issue but was not able to on my end.

@enricogior enricogior added Issue-Bug Something isn't working Product-FancyZones Refers to the FancyZones PowerToy labels Oct 31, 2019
@Gadgetgeek2000
Copy link
Author

I just installed for the first time yesterday when I reported the issue. I'm going to reboot to see if there is any change in behavior. I have a black window on my monitor right now that I can resize, but cannot move, close or minimize. I have no idea what it is. The window showed up after changing some of the settings for FancyZones.
2019-10-31 07_41_27-Window

@Gadgetgeek2000
Copy link
Author

Reboot did nothing. I am not able to apply a separate layout (or figure out how to apply a separate layout). I believe I am doing it correctly but both monitor zone layouts stay in sync.

@bzoz
Copy link
Contributor

bzoz commented Nov 4, 2019

@Gadgetgeek2000, when you start the zone editor, does it appear on the screen which zones you want to set?

@Gadgetgeek2000
Copy link
Author

Gadgetgeek2000 commented Nov 4, 2019

@Gadgetgeek2000, when you start the zone editor, does it appear on the screen which zones you want to set?

Yes. I move the mouse to the monitor I want to set, and click [WIN]+[], the layout editor shows on that monitor. Setting the zone layout for that monitor also changes my other monitor. I can go back to the other monitor press [WIN]+[] and set that one, and it also sets all screens to the same zone layout.

@enricogior
Copy link
Contributor

@Gadgetgeek2000
can you please describe your monitors configuration?

  • native resolution and scaling factor for monitor on the left
  • native resolution and scaling factor for monitor on the right

These are the steps to export the registry settings used by FancyZones to save the zones configuration:

  • open the Start menu, type regedit and the Registry Editor app should appear as best match, click on it.
  • in the regedit app, open the folder tree to find the Computer\HKEY_CURRENT_USER\Software\SuperFancyZones key (as an alternative you can search for it using Ctrl + F and typing SuperFancyZones)
  • on the SuperFancyZones key, right-click and select Export, as shown in the picture below, choose the desktop folder as saving location and type a name for the file.

image

  • go to the desktop and zip the .reg file
  • here, add a comment and simply drag and drop the .zip file

Thanks.

@Gadgetgeek2000
Copy link
Author

I have 3 monitors, but the third is not always connected. If it is connected, it is mirroring my left screen (when people come to my desk so they can see). All monitors are identical: Samsung 4K displays. All at native resolution, 3840x2160, and 100% scaling (no scaling).

Attached is a zip file of 2 exports. One where I had the config on the left monitor correct. One where I had the config on the right monitor correct.
fancyzonereg.zip

@Gadgetgeek2000
Copy link
Author

Insanity ... doing the same thing over and over and expecting a different result. Video recording of the monitors trying to set zones.
fancyzones.zip

@enricogior
Copy link
Contributor

enricogior commented Nov 7, 2019

@Gadgetgeek2000
thanks for sending the file.
I think I've found the source of the bug. It needs more investigation but it seems the FancyZones editor gets confused and uses the same ID for both monitors, so it causes what you described: it overwrites what you previously saved on the other monitor.

After saving the layout for the left monitor:

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{00000000-0000-0000-0000-000000000000}]
"ActiveZoneSetId"="{0BD15C55-7AE3-46D8-B0CA-80D259038103}"

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{481B43B8-40CD-44DA-8C15-666BB0033F15}]
"ActiveZoneSetId"="{50DABBD2-AFEC-4680-96AE-B1157D735056}"

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{97A0B0D2-F015-4431-9C93-A6B6045FADF9}]
"ActiveZoneSetId"="{0BD15C55-7AE3-46D8-B0CA-80D259038103}"
"ZoneCount"=dword:00000004

After saving the layout for the right monitor:

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{00000000-0000-0000-0000-000000000000}]
"ActiveZoneSetId"="{3CA74C27-4AF6-4E9C-89E3-A9E1DD76A9B7}"

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{481B43B8-40CD-44DA-8C15-666BB0033F15}]
"ActiveZoneSetId"="{50DABBD2-AFEC-4680-96AE-B1157D735056}"

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{97A0B0D2-F015-4431-9C93-A6B6045FADF9}]
"ActiveZoneSetId"="{0BD15C55-7AE3-46D8-B0CA-80D259038103}"
"ZoneCount"=dword:00000004

@Gadgetgeek2000
Copy link
Author

I knew I wasn't crazy! :) Thanks for looking into this.

@enricogior
Copy link
Contributor

@Gadgetgeek2000
to be sure I got it right, can you do one more test? Basically redo what you have done before but with a clean registry deleting the SuperFancyZones key first, so we can be sure the bug is as described in my previous comment.
Unfortunately I have all different monitors and the FZ editor uses different IDs for each, so I can't reproduce the bug myself.

The steps are:

  • exit PowerToys
  • open regedit, right click on the SuperFancyZones and select Delete and click Yes on the confirmation dialog.
  • restart PowerToys
  • create and save a layout for the first monitor
  • reopen regedit (if it was still open press F5 to refresh the view), go to the SuperFancyZones key and export the key
  • go back to the FZ editor, create and save a different layout for the second monitor
  • reopen regedit (if it was still open press F5 to refresh the view), go to the SuperFancyZones key and export the key

Thanks.

@enricogior enricogior added the FancyZones-Editor Issue revolving the FancyZone Editor label Nov 7, 2019
@fvanroie
Copy link

fvanroie commented Nov 7, 2019

The same thing happens when I have two identical Dell 27" connected: They get the same layout regardsless the order or position I define.

When I use the internal laptop screen with one external 27" they can be set separately.

@enricogior
Copy link
Contributor

Hi @fvanroie
thanks for the feedback, your configuration confirms it's a bug when the monitors are identical and the editor fails to create different IDs.

@Gadgetgeek2000
Copy link
Author

Confirmation. Deleted the registry key, restarted, created layout for left, created layout for right, set layout for left, set layout for right.
clean, create, set.zip

Thanks for all your help.

@enricogior
Copy link
Contributor

@Gadgetgeek2000
awesome! It's confirmed 100%.
We are making other fixes to the FZ editor and also moving the settings from the registry to a human readable json file.
I don't have an ETA for this fix since it might have to wait until we complete the registry migration.
I'll keep you posted as soon as I have news.

Thanks again for the great help finding the bug.

@Gadgetgeek2000
Copy link
Author

Sounds great. I only wanted it because the software said it was possible. :) I can definitely work around it in the meantime. On my 4K displays it is nice to be able to split up areas of the screen that would hold an HD 1920x1080 application. I'll watch for resolution.

@enricogior enricogior modified the milestones: 0.14, 0.15 Nov 12, 2019
@enricogior enricogior added the Status-In progress This issue or work-item is under development label Nov 12, 2019
@enricogior
Copy link
Contributor

enricogior commented Nov 14, 2019

@Gadgetgeek2000
so it turned out that in your case the WIndows API we called to get the list of connected displays is failing and therefore FancyZones thinks you have just one monitor connected.
Can you tell us more about the hardware configuration of the PCs:

  • CPU
  • do you have a dedicated GPU?
  • how do you connect your monitors:
    • cable type and to which ports
    • are the monitors connected in daisy-chain?
  • exact model of the Sumsung monitors
  • any other thing that might be interesting for this issue

Thank you.

@Gadgetgeek2000
Copy link
Author

I have an HP desktop. Intel Core I7-6700K with an NVIDIA GEForce GTX 970 GPU. There are 4 outputs for monitors on the back of this card. Driver is up-to-date 11/5/2019, version 26.21.14.4120. Monitors are not daisy-chained. Each is connected to the video card.

2 of the ports are HDMI, 2 are DisplayPort. I have 3 monitors plugged in, but currently have one monitor disabled (that one is used for visitors, where I mirror monitors 2 and 3.

Monitor 3 is set as my primary display. Monitor 1 to the right of that.
monitor layout

I use TeamViewer to remote control my computer. In order to blank out the screen I recently installed the TeamViewer Monitor driver. This was installed in the last few weeks or so. (10/24/2019 in the event timestamp). This driver can be uninstalled for testing if you like.
teamviewer monitor driver

The monitors are all identical. Samsung LU28E590DS/ZZ. Monitor 3 is connected via HDMI. Monitors 1 and 2 connected by DisplayPort.

DXDiag output:
DxDiag.txt

Let me know if there is something else you want me to check.

@enricogior
Copy link
Contributor

Thanks for the detailed info.
The TeamViewer Monitor driver may play a role, so if you can give it a try and uninstall it, it would be helpful.
After un-installing it, open again the Device Manage and check how the monitors are labeled, in theory it should shown the brand and model name.
Thanks.

@Gadgetgeek2000
Copy link
Author

Same layout behavior after uninstalling the TeamViewer driver. Monitors now show Generic PnP Monitor.
monitors after teamviewer driver uninstall

I went to the Samsung website and downloaded the drivers. It was kind of a pain because the install program only let me install drivers for one of the monitors. I had to find where it dropped the driver files on my computer, manually updating the drivers in Device Manager, with the manual, manual, have disk option.

monitors after drivers

Exit, restart PowerToys. Same behavior. Exported registry so you can see the change.
superfancyzones after driver updates, no clean registry.zip

@enricogior
Copy link
Contributor

enricogior commented Nov 14, 2019

The registry now shows this:

[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_1920_1080_{00000000-0000-0000-0000-000000000000}]
[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_2560_1440_{00000000-0000-0000-0000-000000000000}]
[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_2560_1600_{00000000-0000-0000-0000-000000000000}]
[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{00000000-0000-0000-0000-000000000000}]
[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{481B43B8-40CD-44DA-8C15-666BB0033F15}]
[HKEY_CURRENT_USER\Software\SuperFancyZones\LOCALDISPLAY_3840_2160_{97A0B0D2-F015-4431-9C93-A6B6045FADF9}]
[HKEY_CURRENT_USER\Software\SuperFancyZones\SAM0C4D#5&2f5ebf57&0&UID4358_3840_2160_{00000000-0000-0000-0000-000000000000}]

Before it was only showing LOCALDISPLAY_3840_2160 that should not happen, and now it shows SAM0C4D#5&2f5ebf57&0&UID4358_3840_2160 that is what it's expected, of course it should show not just one but one per monitor.

One last thing to verify before we send you a test app.
Can you delete the SuperFancyZones reg key so we verify if it only creates one entry for SAM0C4D#5&2f5ebf57&0&UID4358_3840_2160?

@Gadgetgeek2000
Copy link
Author

Same behavior. only 1 monitor listed in registry.

after registry clean and setup zones again.zip

Thanks for looking into this.

@enricogior
Copy link
Contributor

Closing this in favor of the most recent #6321

@enricogior
Copy link
Contributor

Anyone that is still experiencing this issue, can you please run the updated diagnostic tool that I've attached?
Thank you.

monitor_info_report1.1.zip

@enricogior
Copy link
Contributor

We have a private (unsigned) build with a fix that solve this problem in some cases.
If you can install an unsigned build, feel free to give it a try.
Before installing it, it's better to reset the FZ settings:

  • quit PowerToys
  • in command prompt run del %localappdata%\Microsoft\PowerToys\FancyZones
  • install the private build

PowerToysSetup-0.21.2-x64.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cost-Large Large work item - 3+ days worth of work (chances are needs to be broken down) External Dependency This bug or feature isn't resolved, but it's following an external work item. Issue-Bug Something isn't working Product-FancyZones Refers to the FancyZones PowerToy
Projects
None yet
Development

No branches or pull requests

9 participants