Chameleon is an open source program that can change your desktop wallpaper automatically based on the time, weather
Do you keep switching your desktop wallpaper? I do, just to keep things interesting especially if I really like a game, book, movie, etc. There are a few programs which can do the task for you like WinDynamicDesktop. Want some additional options? Chameleon delivers those.
A chameleon changes its color to match its environment, and the aptly-named desktop program kind of works like that.Â Chameleon is quite easy to get started with. It has a bunch of "Change by" options, which are sort of the trigger conditions for switching the wallpaper.
The first option is "None", which is only useful when you want to pause the program. The next setting is battery, and obviously this one is only useful for laptop users. The program will change the wallpaper when the battery level changes in increments of 10% (or decreases) starting from 0 (not that your computer will stay on at zero). So that is 0-9%, 10-19%, and so on until 90 to 99%, and finally 100%. So, if your laptop is on full charge the program will change the wallpaper that you've assigned to the 100% mark, when it drops even by 1% it will switch to the next wallpaper.
Chameleon supports the following image formats: PNG, BMP, JPG, JPEG and GIF. Click on the Change Image button in the Battery tab, to set the wallpaper of your choice. When you are happy with the settings, click on the run button to send Chameleon to the system tray where it will run in the background, and change the background automatically.
The Time option changes the desktop background once every hour. You can use different pictures, or use it to work like macOS' Dynamic Desktop, which changes the wallpaper based on the time. So, if you have a set of pictures of the same landscape taken at different hours of the day, you can use Chameleon to have your Dynamic Desktop background. The images I have used here are stock photos taken from Pexels. Set a background to be swapped at different times in Chameleon', click on the run button and you're good to go.
Note: Chameleon doesn't retain the wallpaper if you leave some images blank. Say for example, you set a background for the first image (e.g. 12 PM), then skipped the second one, but set a wallpaper for a different time (3rd or 4th, etc), the program will not use the 1st image as the wallpaper when it reaches the condition for the 2nd background (e.g. 1PM). Instead, it switches the wallpaper to a solid color (black) background.
So, if I have two dynamic wallpapers, I have to set the program to use the same background for every hour between the actual change. That is pretty annoying. A simple setting for "don't change image until a specific time" would've been convenient.
Chameleon can also switch wallpapers based on the current Weather Condition, Wind Speed, Temperature, Humidity and Heat Index. The program uses NOAA's National Weather Service to pull the data. The problem is this only works for users in North America, so if you're from a different region there is no way to use the weather settings.
Click on the Settings button at the top of the application's window, and then select the first drop-down menu to set a State. Chameleon will list all available stations in the second menu, from which you can pick your city. Hit the Go button to fetch the weather data.
Once it gets the weather info, you can set up the different wallpapers for the conditions, it's the same as the Time setting except instead of changing the image by the hour, you have to set a different picture for a change in the temperature, wind speed, or other parameter that you specify. Mouse over the program's tray icon to view a tooltip that displays the weather data.
I couldn't find a way to use metric units, even though NOAA supports Celsius. The other thing that I was slightly disappointed with is that the program doesn't come with its own wallpapers, but having control over the customization options is more important. I would've liked an option to select a folder and randomize wallpapers, but maybe I'm nitpicking here.
Chameleon is an open source program, it is not portable. The program is written in Pascal.