Skip to content

An easy to deploy dynamic wallpaper picker for Self Service

License

Notifications You must be signed in to change notification settings

acodega/wallpappr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d6de701 · Mar 19, 2025

History

15 Commits
Mar 12, 2025
Mar 12, 2025
Mar 19, 2025
Mar 17, 2025
Mar 12, 2025

Repository files navigation

wallpappr

wallpappr-demo.mp4

Demo wallpaper courtesy of Basic Apple Guy

TODO

  • Add support for variety of image file types. (PNG, JPG, HEIC)
  • Add support for using image URLs instead of local files. (A feature of desktoppr)
  • Add support for changing the wallpaper back to default without OS specific filenames.

An easy to deploy dynamic wallpaper chooser for Self Service

Wallpappr uses swiftDialog and desktoppr to let a user change their wallpaper from a displayed collection of your organization wallpapers.

This gives you an easy to deploy and maintain method to provide multiple branded or themed wallpapers through Self Service.

From a local folder path, Wallpappr dynamically generates the list of wallpaper file paths and each wallpaper's friendly name to display. You simply need to deploy your wallpapers to /Library/Application Support/YourOrg/wallpapers and the script handles the rest. This is especially useful when you are deploying new seasonal or event wallpapers often.

Using sip, Wallpappr automatically handles generating the preview file (yourwallpaper-preview.png) if it doesn't exist. Otherwise, if swiftDialog loads full resolution images, it has to shrink them to display correctly and that causes a visual delay in the dialog box launching. When deploying a new wallpaper, only the full resolution image needs to be installed.

Wallpappr generates each wallpaper's "friendly name" two ways. It will use the kMDItemDescription file attribute when available, if not it tries to make a friendly name from the file name. Ex: contoso-blue-waves.png would become "Contoso Blue Waves". It also works if there are spaces or underscores between words.

Why use kMDItemDescription? Sometimes the friendly name you want doesn't make sense as a file name. contoso-nyc-headquarters.png would become Contoso Nyc Headquarters, instead of capitalizing NYC. Needing to use non alphanumeric characters (&, #, $) would also complicate things.

kMDItemDescription can be set by running xattr -w com.apple.metadata:kMDItemDescription '"Contoso Sales & Marketing $1M Club!"' /path/to/wallpaper.png. You must use single and double quotes.

As written, Wallpappr is designed to be used with Jamf but it can be adapted for other MDM. In fact, the only Jamf-specific commands are the pre-checks (to install swiftDialog, desktoppr, your wallpaper) and the Jamf command while exiting to update the device's inventory information.

About

An easy to deploy dynamic wallpaper picker for Self Service

Resources

License

Stars

Watchers

Forks

Languages