cbucher / console

This is a modified version of Console 2 for a better experience under Windows Vista/7/8/10 and a better visual rendering.
https://github.com/cbucher/console/wiki
GNU General Public License v2.0
2.93k stars 230 forks source link

Tab background wallpaper does not match desktop #187

Closed davidknaack closed 9 years ago

davidknaack commented 9 years ago

I have a tab background set to 'Wallpaper' in a multi-monitor setup. Windows 8.1, each monitor displaying different images. The background image displayed in the console does not match the image on the Windows desktop. The lower-left monitor displays the correct background, the rest all display the same image, which doesn't match the image on any of the desktops (of course they change periodically, so it might match coincidentally at some point).

davidknaack commented 9 years ago

It looks like this may just be a limitation of the method used to access wallpaper info. On Win 8.1/2012 the IDesktopWallpaper API provides information about the images currently appearing on each desktop. It might be possible to access it in the TranscodedImageCache_nnn reg keys too. Not sure how to go about mapping a monitor to a a TranscodedImageCache_nnn entry though.

Anyway, I'm guessing this is not a bug, just not a feature.

cbucher commented 9 years ago

It might be possible to access it in the TranscodedImageCache_nnn reg keys too. Not sure how to go about mapping a monitor to a a TranscodedImageCache_nnn entry though.

I use this mechanic. You can read the code. But sometimes data in registry are wrong, desynchronized or missing. My code is purely empirical. Perhaps you have a specific configuration. Can you provide a screen shot of the desktop, the monitors configuration and a dump of HKEY_CURRENT_USER\Control Panel\Desktop registry key?

On Win 8.1/2012 the IDesktopWallpaper API provides information about the images currently appearing on each desktop.

I didn't know the IDesktopWallpaper API. It's only available since Windows 8 and slideshow/multiple monitors are available since Windows 7.

davidknaack commented 9 years ago

Windows has definitely become confused about the monitor layout, the id numbers have got some kind of issue (note the two overlaping, and one display missing an ID number, and that the layout of numbers in the Screen Resolution dialog does not match the desktop layout when the geometry matches). However, this layout weirdness started happened after the last Tuesday Windows update, while the problem with the console backgrounds not changing was occurring prior to that.

You can see in this screen shot that the images selected for backgrounds don't match up to any of the desktop images, except on the lower-right monitor, which is currently the main display, and the upper right (which may just be a coincidental match).

http://i.imgur.com/IrDZ6wL.jpg

If I use the 'Next desktop image' option in the desktop context menu the console background blanks and refreshes, but it selects the same image for the background, although that image is no longer used for any of the monitors:

http://i.imgur.com/sW1cez9.jpg

In case it's useful, here are how the images map to Transcoded_nnn names when that second screen shot was taken:

http://i.imgur.com/WubF6JS.png

Reg dump: https://gist.github.com/davidknaack/8da3c60839c64d31fb42

cbucher commented 9 years ago

Transcoded Image Cache into human readable text:

"TranscodedImageCache_000"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\2_nasaspacescapes_0006_7.jpg
\\?\DISPLAY#ACI249A#5&1cd24d1&0&UID1073984#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

TranscodedImageCache_001"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\dn26748-2_1200.jpg
\\?\DISPLAY#ACI249A#5&1cd24d1&0&UID1082161#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

TranscodedImageCache_002"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\1_nasaspacescapes_0011_12.jpg
\\?\DISPLAY#ACI249A#5&1cd24d1&0&UID1048832#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_003"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\12_nasaspacescapes_0004_5.jpg
\\?\DISPLAY#ACI249A#5&1cd24d1&0&UID3536977920#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_004"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\14_nasaspacescapes_0001_2.jpg
\\?\DISPLAY#ACI249A#5&1cd24d1&0&UID3536977921#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_005"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\8_nasaspacescapes_0009_10.jpg
\\?\DISPLAY#ACI249A#5&1cd24d1&0&UID3536977922#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_006"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\12_nasaspacescapes_0004_5.jpg
\\?\DISPLAY#CMO1720#5&1cd24d1&0&UID1048848#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_007"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\3_nasaspacescapes_0013_14.jpg
\\?\DISPLAY#NVD0000#5&1cd24d1&0&UID1073984#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_008"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\7_nasaspacescapes_0007_8.jpg
\\?\DISPLAY#@@@0000#5&1cd24d1&0&UID3536977921#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

"TranscodedImageCache_009"
C:\Users\david_000\AppData\Local\Microsoft\Windows\Themes\NASA Spac\DesktopBackground\dn26748-2_1200.jpg
\\?\DISPLAY#@@@0000#5&1cd24d1&0&UID3536977922#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}

The cache is limited to 10 monitors. It seems the identification string of monitors has been modified, that's created additional entries. Assuming you have 6 monitors, the cache should have been sized for 12 entries.

Post the diadnostic report (Help/Diagnose). We can see if monitors are corresponding.

davidknaack commented 9 years ago

Sorry, what diagnostic report is that?

The first 7 monitors in the list above appear to be the ones that are currently connected (one of which, the 7th, is disabled).

cbucher commented 9 years ago

Sorry, what diagnostic report is that?

The diagnostic report that appears when you select Help/Diagnose from the menu. I assume your version is up to date.

davidknaack commented 9 years ago

Here is the Diagnose report: https://gist.github.com/davidknaack/cfb698ab9ecafb3d2fba

This monitor configuration may be slightly different than what I was running before, it's not unusual for me to disconnect a monitor to connect to a different computer.

cbucher commented 9 years ago

The DeviceID \\?\DISPLAY#CMO1720#5&1cd24d1&0&UID1048848#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} is the same for for DeviceNames \\.\DISPLAY1\Monitor0, \\.\DISPLAY2\Monitor0, '.\DISPLAY4\Monitor0', '.\DISPLAY5\Monitor0' and '.\DISPLAY6\Monitor0'.

The DeviceID \\?\DISPLAY#ACI249A#5&1cd24d1&0&UID1048832#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} is DeviceName \\.\DISPLAY3\Monitor0.

So I can found only two entries in Transcoded Image Cache.

cbucher commented 9 years ago

Please, try the last experimental version. I use IDesktopWallpaper to retrieve monitors' wallpaper (Win8).

davidknaack commented 9 years ago

That works great, correct images on every desktop.

Thanks for looking into it!

cbucher commented 9 years ago

You're welcome. By the way, you are the only person, which I know, with more than two monitors. If you can test all desktop wallpaper configurations (position/panoramic), that will help.

davidknaack commented 9 years ago

It looks like the mapping for Picture Position 'Span' is not quite right:

http://i.imgur.com/NweW19o.jpg

Windows has the top edge of the image up off the top of the viewport, while the ConsoleZ window has the image starting at the top of the screen.

The other picture position options are all working.

The background image option works unless I turn on the 'relative' option. In that case it looks like it's using the correct scaling options, but it's using the wallpaper images instead of the selected background image.

cbucher commented 9 years ago

@davidknaack you can try the last experimental version

davidknaack commented 9 years ago

That fixes the span issue!

cbucher commented 9 years ago

thx