Wallpaper Tool: Täglich frische Hintergrundbilder — automatisch
Download, Wechsel, Sammlung — alles per Script. Nie wieder das gleiche Wallpaper.
Python
Windows API
Unsplash
🚀 Jeden Tag ein neues Wallpaper. Automatisch. Kostenlos.
💰 Warum ein automatisches Wallpaper-Tool?
Der Desktop-Hintergrund ist das meistgesehene Bild am Arbeitsplatz. Abwechslung hält den Kopf frisch — und ein automatischer Wechsler sorgt dafür ohne einen Klick.
Automatischer Wechsel
Stündlich, täglich oder wöchentlich — konfigurierbarer Rhythmus für neue Hintergrundbilder.
Mehrere Quellen
Lädt von Unsplash, Pexels, Bing und lokalen Ordnern — automatische Skalierung auf Bildschirmgröße.
Kategorie-Filter
Nur Natur, nur Architektur, nur abstrakt — filtert nach Themen und Stimmungen.
Sammlung aufbauen
Speichert alle heruntergeladenen Wallpaper — baut über Zeit eine kuratierte Sammlung auf.
⚙️ So funktioniert's
📥
1. Download
Holt hochauflösende Bilder von Unsplash, Pexels oder Bing — mit Kategorie-Filter.
📐
2. Optimieren
Skaliert auf Bildschirmauflösung, optimiert Dateigröße, speichert im Wallpaper-Ordner.
🖥️
3. Setzen
Windows-API-Aufruf setzt das neue Wallpaper — Centered, Fill, Fit oder Stretch.
⏰
4. Task Scheduler
Als geplanter Task eingerichtet — läuft automatisch im Hintergrund.
💻 Technische Umsetzung
🐍 Wallpaper Manager
import requests
import ctypes
import os
import random
from pathlib import Path
from PIL import Image
class WallpaperManager:
def __init__(self, collection_dir: str = "~/Pictures/Wallpapers"):
self.collection_dir = os.path.expanduser(collection_dir)
os.makedirs(self.collection_dir, exist_ok=True)
self.sources = {
'unsplash': 'https://source.unsplash.com/1920x1080/',
'pexels': 'https://images.pexels.com/photos/'
}
def download_random(self, category: str = 'nature') -> str:
"""Lädt ein zufälliges Wallpaper von Unsplash"""
url = f"{self.sources['unsplash']}?{category}"
response = requests.get(url, allow_redirects=True)
if response.status_code == 200:
filename = f"wallpaper_{category}_{random.randint(1000,9999)}.jpg"
filepath = os.path.join(self.collection_dir, filename)
with open(filepath, 'wb') as f:
f.write(response.content)
# Optimiere für Bildschirm
self._optimize_for_screen(filepath)
return filepath
raise Exception(f"Download fehlgeschlagen: {response.status_code}")
def _optimize_for_screen(self, image_path: str) -> None:
"""Skaliert Bild auf Bildschirmgröße"""
screen_width = ctypes.windll.user32.GetSystemMetrics(0)
screen_height = ctypes.windll.user32.GetSystemMetrics(1)
img = Image.open(image_path)
img = img.resize(
(screen_width, screen_height),
Image.LANCZOS
)
img.save(image_path, 'JPEG', quality=90, optimize=True)
def set_wallpaper(self, image_path: str, style: str = 'fill') -> bool:
"""Setzt das Windows-Wallpaper"""
# Windows-API für Wallpaper
SPI_SETDESKWALLPAPER = 20
SPIF_UPDATEINIFILE = 0x01
SPIF_SENDCHANGE = 0x02
# Wandle Pfad in absoluten Windows-Pfad
abs_path = os.path.abspath(image_path)
result = ctypes.windll.user32.SystemParametersInfoW(
SPI_SETDESKWALLPAPER,
0,
abs_path,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE
)
if result:
print(f"✓ Wallpaper gesetzt: {os.path.basename(image_path)}")
return result
def get_collection(self) -> list:
"""Listet alle gespeicherten Wallpaper auf"""
wallpapers = []
for ext in ('*.jpg', '*.jpeg', '*.png'):
wallpapers.extend(Path(self.collection_dir).glob(ext))
return sorted(wallpapers, key=os.path.getmtime, reverse=True)
def set_random_from_collection(self) -> str:
"""Setzt ein zufälliges Wallpaper aus der Sammlung"""
wallpapers = self.get_collection()
if not wallpapers:
return self.download_random()
choice = random.choice(wallpapers)
self.set_wallpaper(str(choice))
return str(choice)
def daily_routine(self, categories: list = None) -> str:
"""Tägliche Routine: Download + Setzen"""
if categories is None:
categories = ['nature', 'architecture', 'travel', 'textures']
category = random.choice(categories)
try:
path = self.download_random(category)
self.set_wallpaper(path)
return path
except Exception as e:
# Fallback: Setze zufälliges aus Sammlung
return self.set_random_from_collection()
# Nutzung
manager = WallpaperManager()
# Einmalig: Neues Wallpaper holen und setzen
path = manager.daily_routine(categories=['nature', 'minimal'])
print(f"Neues Wallpaper: {path}")
# Bestehende Sammlung durchsuchen
print(f"{len(manager.get_collection())} Wallpaper in Sammlung")
🪟 Windows Task Scheduler Setup
# PowerShell: Täglichen Wallpaper-Wechsel einrichten
$Action = New-ScheduledTaskAction -Execute "python" `
-Argument "C:\wallpaper_manager\daily_wallpaper.py"
$Trigger = New-ScheduledTaskTrigger -Daily -At 9am
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" `
-LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Daily Wallpaper" `
-Action $Action -Trigger $Trigger -Principal $Principal `
-Description "Wechselt täglich das Desktop-Wallpaper"
⚡ In 1 Tag zum fertigen Wallpaper-Tool.
🚀 Gebaut mit Vibecoding
👴 Klassische Entwicklung
- 📋 1 Woche WinAPI recherchieren
- 💻 1–2 Wochen Implementierung
- 🧪 0.5 Wochen Testing
- ⏱️ Gesamt: 3 Wochen
🤖 Vibecoding-Ansatz
- 🗣️ 0.5 Tage Prompt
- ⚡ 0.5 Tage Code + Test
- ⏱️ Gesamt: 1 Tag
Frische Wallpaper — automatisiert für Ihr Team?
Mit Firmen-Branding, eigenen Quellen und zentraler Verwaltung. Jetzt unverbindlich anfragen.