Skip to content

Mahmud-Mahi/WallpaperX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WallpaperX

WallpaperX is a smart wallpaper changer for XFCE that sets different wallpapers for each workspace and avoids repeating images until all have been used.


✨ Features

  • 🧩 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

📸 Preview

Workspace--1 preview1

Workspace--2 Preview

Workspace--3 demo


📦 Requirements

  • Linux + XFCE
  • xfconf-query and xfdesktop
  • Python 3 (only for script version)

🚀 Installation

1. Clone the repository

git clone https://github.com/Mahmud-Mahi/WallpaperX.git
cd WallpaperX

2. Run with sample wallpapers

python3 wallpaperx.py --dir ./Wallpapers

Or short:

python3 wallpaperx.py -d ./Wallpapers

Or, ⚡ Use the compiled file

chmod +x ./wallpaperx
./wallpaperx --dir ~/Pictures/Wallpapers

3. Use your own wallpapers

python3 wallpaperx.py --dir ~/Pictures/Wallpapers

Default folder (if not provided):

~/Pictures/Wallpapers

🔄 Automation (Run Daily)

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/.Xauthority

Create timer:

~/.config/systemd/user/wallpaperx.timer

[Timer]
OnCalendar=*-*-* 07:00:00
Persistent=true

[Install]
WantedBy=timers.target

Enable:

systemctl --user daemon-reload
systemctl --user enable --now wallpaperx.timer

🧠 How It Works

  • 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

📁 Project Structure

WallpaperX/
├── Wallpapers/
├── wallpaperx
├── wallpaperx.py
├── README.md
└── LICENSE

⚠️ Notes

  • XFCE only
  • Designed for laptop internal display (monitoreDP, LVDS, DSI)
  • External monitors are ignored

🔮 Future Development

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 .deb for easy installation

Contributions and ideas are welcome.


👤 Author

Mahmud Mahi


📜 License

MIT License

About

A smart XFCE wallpaper rotator with multi-workspace, multi-monitor, and no-repeat support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages