πΌ️ Auto Wallpaper Changer Python GUI – FuzzuTech
Demo :
Click Video πππ
πΉ Description :
Auto Wallpaper Changer GUI built in Python using customtkinter. Set intervals, select folders, and change your desktop look automatically! Hacker mode on.
πΉ Features :
-
Fully Offline Python GUI
-
Customtkinter with dark mode
-
Real-time interval control
-
Hacker-style tool
-
Great for developers and minimalists
-
Free, open-source feel
-
Beginner-friendly project
Code :
import os
import random
import ctypes
import threading
import time
import customtkinter as ctk
from tkinter import filedialog, messagebox
# Set GUI theme
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
class WallpaperChangerApp(ctk.CTk):
def __init__(self):
super().__init__()
self.title("πΌ️ Auto Wallpaper Changer - FuzzuTech")
self.geometry("500x350")
self.resizable(False, False)
self.wallpaper_folder = ""
self.is_running = False
self.interval = ctk.IntVar(value=10)
# ========== UI ELEMENTS ==========
self.folder_label = ctk.CTkLabel(self, text="No folder selected", font=("Arial", 16))
self.folder_label.pack(pady=10)
self.browse_btn = ctk.CTkButton(self, text="π Browse Wallpaper Folder", command=self.browse_folder)
self.browse_btn.pack(pady=10)
self.interval_label = ctk.CTkLabel(self, text="Change every 10 seconds")
self.interval_label.pack(pady=5)
self.slider = ctk.CTkSlider(self, from_=5, to=60, number_of_steps=11, variable=self.interval, command=self.update_slider_label)
self.slider.pack(pady=5)
self.toggle_btn = ctk.CTkButton(self, text="▶️ Start Auto Mode", command=self.toggle_wallpaper_loop)
self.toggle_btn.pack(pady=20)
self.status_label = ctk.CTkLabel(self, text="Status: Idle", text_color="gray")
self.status_label.pack(pady=5)
def browse_folder(self):
folder = filedialog.askdirectory()
if folder:
self.wallpaper_folder = folder
self.folder_label.configure(text=f"π {os.path.basename(folder)} selected")
def update_slider_label(self, value):
self.interval_label.configure(text=f"Change every {int(value)} seconds")
def toggle_wallpaper_loop(self):
if not self.wallpaper_folder:
messagebox.showwarning("No Folder", "Please select a folder first.")
return
if not self.is_running:
self.is_running = True
self.toggle_btn.configure(text="⏹️ Stop Auto Mode")
self.status_label.configure(text="Status: Running...", text_color="green")
threading.Thread(target=self.wallpaper_loop, daemon=True).start()
else:
self.is_running = False
self.toggle_btn.configure(text="▶️ Start Auto Mode")
self.status_label.configure(text="Status: Stopped", text_color="red")
def wallpaper_loop(self):
while self.is_running:
self.set_random_wallpaper()
time.sleep(self.interval.get())
def set_random_wallpaper(self):
try:
images = [
f for f in os.listdir(self.wallpaper_folder)
if f.lower().endswith(('.jpg', '.jpeg', '.png'))
]
if not images:
messagebox.showerror("No Images", "No valid images found in the folder.")
self.toggle_wallpaper_loop()
return
image_file = os.path.join(self.wallpaper_folder, random.choice(images))
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, image_file, 3)
except Exception as e:
print("Error setting wallpaper:", e)
self.status_label.configure(text="Error setting wallpaper", text_color="red")
# Run the app
if __name__ == "__main__":
app = WallpaperChangerApp()
app.mainloop()
Comments
Post a Comment