How to Change Desktop Wallpaper in Windows 10 Using Python 🖼️
Do you ever get bored looking at your computer's same old wallpaper every day? 😕 Let's change it up and make your desktop exciting! 🖥️
We're going to show you how to make a magic wallpaper changer using Python! 🐍✨ It's easy-peasy, and even a 5-year-old can do it! 🧒🎉
Ready? Let's go on an adventure! 🚀🌟
Prerequisites
Before we get started, make sure you have the following prerequisites
- Basic knowledge of Python programming language.
- Python installed on your computer (https://www.python.org/downloads/)
- An internet connection to fetch new wallpapers.
Setting Up the Project
Let's begin by setting up the project structure. Open your favorite code editor and create a new folder for the project. Inside the folder, create the following files
main.py
: This will be our main Python script.config.py
: Here, we'll store configurations for our wallpaper changer.wallpapers
folder: This folder will hold the downloaded wallpapers.
Install Required Libraries
We'll need the requests
library to fetch wallpapers from the internet. To install it, open your terminal or command prompt and run the following command
pip install requests
Import Necessary Modules
In the main.py
file, import the required modules
import os
import random
import requests
from config import WALLPAPER_DIR, WALLPAPER_RESOLUTION, UNSPLASH_ACCESS_KEY
Fetching a New Wallpaper
For this project, we'll use Unsplash, a popular stock photo website, to fetch wallpapers. You'll need to create a free developer account on Unsplash to obtain an API access key. Once you have the access key, add it to the config.py
file
# config.py
WALLPAPER_DIR = "wallpapers"
WALLPAPER_RESOLUTION = "1920x1080" # Change this to your screen resolution
UNSPLASH_ACCESS_KEY = "YOUR_UNSPLASH_ACCESS_KEY"
In the main.py
file, let's create a function to fetch a new wallpaper
def fetch_wallpaper():
url = f"https://api.unsplash.com/photos/random?query=wallpaper&orientation=landscape&featured=true&resolution={WALLPAPER_RESOLUTION}"
headers = {
"Accept-Version": "v1",
"Authorization": f"Client-ID {UNSPLASH_ACCESS_KEY}",
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()["urls"]["raw"]
else:
print("Failed to fetch wallpaper.")
return None
Downloading the Wallpaper
Now that we have the URL of the new wallpaper, let's download it and save it in the wallpapers
folder
def download_wallpaper(url, filename):
response = requests.get(url)
if response.status_code == 200:
with open(filename, "wb") as f:
f.write(response.content)
print(f"Wallpaper downloaded: {filename}")
else:
print("Failed to download wallpaper.")
Changing the Wallpaper
We will use a Python library called osascript
to change the wallpaper on macOS. For Windows, we'll use the ctypes
library. Add the following functions to the main.py
file
def set_wallpaper_macos(file_path):
os.system(f"osascript -e 'tell application \"Finder\" to set desktop picture to POSIX file \"{file_path}\"'")
def set_wallpaper_windows(file_path):
import ctypes
ctypes.windll.user32.SystemParametersInfoW(20, 0, file_path, 3)
Putting It All Together
Now, let's tie everything together in the main function
def main():
# Ensure the wallpaper directory exists
os.makedirs(WALLPAPER_DIR, exist_ok=True)
# Fetch a new wallpaper
wallpaper_url = fetch_wallpaper()
if wallpaper_url:
# Generate a random filename for the downloaded wallpaper
file_name = f"{random.randint(1, 100000)}.jpg"
file_path = os.path.join(WALLPAPER_DIR, file_name)
# Download the wallpaper
download_wallpaper(wallpaper_url, file_path)
# Set the wallpaper based on the operating system
if os.name == "posix": # macOS
set_wallpaper_macos(file_path)
elif os.name == "nt": # Windows
set_wallpaper_windows(file_path)
else:
print("Unsupported operating system.")
return
Automate the Process
To make sure your wallpaper changes daily, we'll use a scheduler to run our script automatically. One way to do this is by using the schedule
library. Install it by running: pip install schedule
Now, let's modify the main()
function to be called every day
import schedule
import time
def main():
# ... (Previous code here) ...
# Schedule the main function to run every day at a specific time
schedule.every().day.at("08:00").do(main)
while True:
schedule.run_pending()
time.sleep(1)
With this modification, your wallpaper will be changed daily at 8:00 AM. Feel free to adjust the time as per your preference.
Running the Wallpaper Changer
To run the wallpaper changer, simply execute the main.py
file using Python: python main.py
The script will run in the background and change your desktop wallpaper daily according to the schedule you set.
Conclusion
Yay! 🎉 You did it! 🙌 You made a magic wallpaper changer with Python! 🪄 Now, your computer will surprise you with new, cool wallpapers every day, all by itself! 😃 No more clicking or searching for wallpapers! 🖥️
To make your wallpaper changer even cooler, you can:
- 💼 Add more systems: Make it work on different types of computers, not just one!
- 🌐 More wallpapers: Find even more places to get amazing wallpapers from! The more, the merrier! 🖼️
- ❤️ Personal touch: Let your computer know what kind of wallpapers you like, and it can pick them just for you! 🥰
Have lots of fun trying new things and keep coding! 🚀 Your computer is now your wallpaper artist! 🎨 Enjoy your ever-changing desktop world! 🌟
You may also like
Creating a Desktop Notifier with Python
In this tutorial, we explore how to create a desktop notifier using ...
Continue readingTop Python GUI Libraries for Desktop Applications
This blog discusses the top Python GUI libraries for creating intera...
Continue readingPyQt Desktop Applications: Cross-Platform GUI Development
PyQt is a Python library that provides a set of bindings for the Qt ...
Continue reading