WallpaperX is a smart wallpaper changer for XFCE that sets different wallpapers for each workspace and avoids repeating images until all have been used.
- 🧩 Different wallpaper for each workspace
- 🔁 No-repeat system (uses all images before repeating)
- 🖥️ Works with XFCE (
xfconf-query) - ⚡ Lightweight and fast
- 🤖 Supports automation with systemd
- Linux + XFCE
xfconf-queryandxfdesktop- Python 3 (only for script version)
git clone https://github.com/Mahmud-Mahi/WallpaperX.git
cd WallpaperXpython3 wallpaperx.py --dir ./WallpapersOr short:
python3 wallpaperx.py -d ./WallpapersOr, ⚡ Use the compiled file
chmod +x ./wallpaperx
./wallpaperx --dir ~/Pictures/Wallpaperspython3 wallpaperx.py --dir ~/Pictures/WallpapersDefault folder (if not provided):
~/Pictures/Wallpapers
Create service:
~/.config/systemd/user/wallpaperx.service
[Unit]
Description=WallpaperX
[Service]
Type=oneshot
ExecStart=/path/to/wallpaperx --dir /path/to/wallpapers
Environment=DISPLAY=:0
Environment=XAUTHORITY=%h/.XauthorityCreate timer:
~/.config/systemd/user/wallpaperx.timer
[Timer]
OnCalendar=*-*-* 07:00:00
Persistent=true
[Install]
WantedBy=timers.targetEnable:
systemctl --user daemon-reload
systemctl --user enable --now wallpaperx.timer- Detects XFCE workspace wallpaper paths
- Picks unused images randomly
- Applies one wallpaper per workspace
- Stores history in
~/.cache/wallpaperx_history.txt - Resets automatically when all images are used
WallpaperX/
├── Wallpapers/
├── wallpaperx
├── wallpaperx.py
├── README.md
└── LICENSE
- XFCE only
- Designed for laptop internal display (
monitoreDP,LVDS,DSI) - External monitors are ignored
Planned improvements for WallpaperX:
- 🎯 Support for external monitors (multi-monitor setups)
- 🎨 Per-workspace themes (different categories of wallpapers)
- 🧠 Smarter selection modes (cycle, time-based, etc.)
- ⚙️ Command-line options for better control
- 🖥️ Simple GUI for easier usage
- 📦 Packaging as a
.debfor easy installation
Contributions and ideas are welcome.
MIT License


