πŸ–Ό️ 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

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸ”₯ Advanced MP3 Music Player in Python | CustomTkinter + Pygame | Free Source Code

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)