Actions

Difference between revisions of "Multi Monitor Wallpaper Troubleshooting"

From Hobbyist Software

Line 4: Line 4:
  
 
# Wallpaper won't set for a screen
 
# Wallpaper won't set for a screen
# Wallpaper is lost on reboot
+
# Wallpaper is lost/broken when you attach or remove monitors
  
 
The bad news is that both of these relate to bugs in Mac OS itself.
 
The bad news is that both of these relate to bugs in Mac OS itself.
The good news is that there is generally a workaround
+
The good news is that there is an easy fix when this happens
  
 
=== Background ===
 
=== Background ===
Line 13: Line 13:
 
Setting the wallpaper is actually a [https://developer.apple.com/documentation/appkit/nsworkspace/1527228-setdesktopimageurl very simple command] in Mac OS. Essentially - I say 'set this image for screen N'
 
Setting the wallpaper is actually a [https://developer.apple.com/documentation/appkit/nsworkspace/1527228-setdesktopimageurl very simple command] in Mac OS. Essentially - I say 'set this image for screen N'
  
Once that is done - Multi Monitor Wallpaper has no part in 'keeping the wallpaper active', so when the wallpaper is 'lost' - that means that the operating system failed to properly save and restore the configuration.
+
Once that is done - Multi Monitor Wallpaper has no part in 'keeping the wallpaper active', so when the wallpaper is 'lost' - that means that the operating system failed to properly save and restore the configuration. In some cases, the system gets 'stuck' and stops allowing apps like Multi Monitor Wallpaper to set new wallpapers.
  
Similarly - there really isn't any way that Multi Monitor Wallpaper can set the image wrongly. This means that if some screen doesn't get set - It is simply that Multi Monitor Wallpaper is asking the operating system to set a wallpaper, and the operating system is failing to do so.
+
I have pinned down at least one way to reliably re-create this bug on my mac. What seems to happen is that the database where the system stores what image is applied for each screen/space gets corrupted.*
  
I have seen both of these issues from time to time on my own Mac, and I have submitted formal bug reports to Apple. Unfortunately these are intermittent bugs, and those are really hard for Apple to pin down and fix.
 
  
 
=== Workaround 1 ===
 
=== Workaround 1 ===
  
There is a workaround which seems to work in almost all cases.
+
The easy workaround is simply to delete the system database which stores the currently applied wallpapers. This is stored at
 +
''/Users/rob/Library/Application Support/Dock/desktoppicture.db
 +
''
 +
To find this file, open the finder, click on '''Menu/Go/Go to Folder'''
 +
paste in ''/Users/rob/Library/Application Support/Dock''
  
You can do this on all screens, or just the screens that are 'playing up'
+
This will show the relevant folder
  
# right click on the desktop and select 'change desktop background'
+
Now delete  ''desktoppicture.db''
# pick one of the standard Apple photos provided
 
# (this step may not be needed) Log out, reboot
 
# Log back in and set your wallpaper with Multi Monitor Wallpaper
 
  
My guess here is that somehow, the system configuration for wallpapers gets messed up - and using the Apple system to set the wallpaper resets it. This is just guesswork though.
+
This will reset all your spaces/desktops (though you won't immediately see the change in your currently visible workspace)
  
 +
Once you have done this, you can set your wallpapers with MMW again
  
=== Workaround 2 ===
 
 
Multi Monitor Wallpaper has an option in preferences to automatically re-apply the wallpaper when the app is launched, or when a user logs in.
 
 
To activate this, click on Menu/Multi Monitor Wallpaper/Preferences
 
 
(I suggest you try workaround 1 first)
 
  
 
=== Notes ===
 
=== Notes ===
  
From version 2.0, Multi Monitor Wallpaper always moves the wallpaper it applies to the main drive where the application data is stored.
 
This should fix a possible potential problem if the wallpaper was stored in a secondary drive which might not be available at the time the system restores the wallpaper
 
  
From version 2.0, by default Multi Monitor Wallpaper sets the wallpaper whenever you change spaces. This is the best workaround to make your wallpaper apply to all your spaces.
+
*I have reported this to Apple (and submitted a demonstration project and corrupted database).

Revision as of 19:27, 20 June 2019

Multi Monitor Wallpaper Troubleshooting

the most common problems are the following:

  1. Wallpaper won't set for a screen
  2. Wallpaper is lost/broken when you attach or remove monitors

The bad news is that both of these relate to bugs in Mac OS itself. The good news is that there is an easy fix when this happens

Background

Setting the wallpaper is actually a very simple command in Mac OS. Essentially - I say 'set this image for screen N'

Once that is done - Multi Monitor Wallpaper has no part in 'keeping the wallpaper active', so when the wallpaper is 'lost' - that means that the operating system failed to properly save and restore the configuration. In some cases, the system gets 'stuck' and stops allowing apps like Multi Monitor Wallpaper to set new wallpapers.

I have pinned down at least one way to reliably re-create this bug on my mac. What seems to happen is that the database where the system stores what image is applied for each screen/space gets corrupted.*


Workaround 1

The easy workaround is simply to delete the system database which stores the currently applied wallpapers. This is stored at

/Users/rob/Library/Application Support/Dock/desktoppicture.db

To find this file, open the finder, click on Menu/Go/Go to Folder paste in /Users/rob/Library/Application Support/Dock

This will show the relevant folder

Now delete desktoppicture.db

This will reset all your spaces/desktops (though you won't immediately see the change in your currently visible workspace)

Once you have done this, you can set your wallpapers with MMW again


Notes

  • I have reported this to Apple (and submitted a demonstration project and corrupted database).