Option to choose from a set of background images.

New Contributor III

Currently we force the background image via Config Profile > Restrictions > Functionality. 

What is being requested is for users to have the ability to choose their own background image from a select approved few of images. I cant find a good way to do this.

I can push the images down to the computers. Ive thought about having a Self Service link which would... place a .plist on the mac. Have a smart group that would search for that plist and then move the computer to a specific group. and have different config profile for each .plist and corresponding images... 

But I havent been able to get this to work properly and its so cumbersome. If a user tries to go back and forth between images, its constantly running a  recon and move the device to a different smart group and theres a lag. And its inconsistent. 


So- Does anyone have a way to allow users to choose from a set of images for their background, while also making sure they can ONLY have one of those images. (so, not just adding images to the macs and allowing users to choose between our images and the preloaded mac images.)




New Contributor III

You could use a command line utility like desktoppr to accomplish this almost immediately from within Self Service.
Setup required:

Install desktoppr utility on machines
  • Put approved background images in consistent location (/Library/Application Support/Company/Desktop/Backgrounds)

In Self Service, set up the policy to do the following:

  • Set the location of the background image in a plist file located in a consistent location (/Library/Application Support/Company/Desktop/com.company.desktop.plist)
  • Instruct desktoppr utility to use the proper background file

So for example setup a policy as either a script or even File&Processes entry that calls something like this:


desktoppath=(defaults write “/Library/Application Support/Company/Desktop/com.company.desktop.plist” "path" "/Library/Application Support/Company/Desktop/Backgrounds/Background1.jpg”);/usr/local/bin/desktoppr “$desktoppath”


You could expand this further by using outset and having a login-every script that calls:


desktoppath=(defaults read “/Library/Application Support/Company/Desktop/com.company.desktop.plist” "path");/usr/local/bin/desktoppr “$desktoppath”


Howard Griffith--Endpoint Systems Engineer--Eastern Washington University