Skip to content

Creating custom themes

Timothy Johnson edited this page Oct 11, 2019 · 18 revisions

WinDynamicDesktop includes the Mojave dynamic desktop themes by default, and you can download community created themes here. If you want to use a different set of wallpaper images, follow the instructions below to create your own custom theme.

Image files

The images used by your theme can be any file format that is standard for Windows (JPEG, PNG, BMP, GIF, etc.). If you want to use a set of HEIC images (the format used by macOS for dynamic wallpapers), they need to be converted to a different format because HEIC is not natively supported by Windows. You can easily convert them to JPEG format with this online image converter.

Each of the images you want to use in your theme must have the same filename, except for a number to distinguish them (e.g., mojave_dynamic_1.jpeg, mojave_dynamic_2.jpeg, ... mojave_dynamic_16.jpeg). They should all be in the same folder, or they can also be bundled in a ZIP file and uploaded to the Internet if you want to make your theme publicly available.

Theme file

Theme files use the JSON format, which is human readable and easy to write. A nice online editor for JSON is available here, which validates the file as you type it.

The name of the JSON file must be the name of the theme, with any spaces replaced by underscores, plus the .json extension (e.g., Mojave_Desert.json). Sample theme files can be found here to see how they should be formatted. The following values are required in a theme file:

  • displayName (optional) - String containing the user friendly name of the theme (can contain spaces). If not present, the theme name will be derived from the JSON filename.
  • imageFilename - String containing the filename of each wallpaper image, with an asterisk (*) substituted for the image number (e.g., mojave_dynamic_*.jpeg).
  • imageCredits - String containing the name of the person or company that the images should be credited to (e.g., Apple, Bob Ross).
  • dayHighlight (optional) - Image number to show on left side of theme preview thumbnail
  • nightHighlight (optional) - Image number to show on right side of theme preview thumbnail
  • sunriseImageList - Array of numbers listing the image numbers to display throughout the sunrise period (from when the sun is 12 degrees below to 6 degrees above the horizon).
  • dayImageList - Array of numbers listing the image numbers to display throughout the day (between sunrise and sunset). They will display in the order you list them, each for the same length of time. If you have 12 images listed and there are 12 hours between sunrise and sunset, each image will show for an hour.
  • sunsetImageList - Array of numbers listing the image numbers to display throughout the sunset period (from when the sun is 6 degrees above to 12 degrees below the horizon).
  • nightImageList - Array of numbers listing the image numbers to display throughout the night (between sunset and sunrise). The behavior is identical to dayImageList which is described above.

Managing custom themes

After you have created your JSON file, open the theme manager in WinDynamicDesktop and click the "Import from file..." button. Select the file for your custom theme and you should now see it added to the list of themes. If you want to delete a custom theme, right click on it in the list of themes and select "Remove".

If you have created a custom theme and would like it to be added to the list of community created themes on GitHub, you can create an issue and start the title with "New Theme". Make sure to attach your theme file, and either upload a ZIP containing the image files or provide a link if the ZIP is hosted online. Also be sure to include a link for image credits so that proper attribution can be given.

Clone this wiki locally