Kreezcraft

The Last Wallpaper Script You’ll Ever Need for Linux

Tired of juggling different tools to manage your desktop background across various Linux environments? Here’s a one-stop solution.

One of the joys of Linux is the freedom to choose your Desktop Environment (DE). You might run GNOME on your laptop, KDE Plasma on your gaming rig, and XFCE on an older machine. But this freedom comes with a small annoyance: managing simple things like a rotating wallpaper often requires a different tool or command for each DE.

I wanted a single, smart script that could handle it all. A “set it and forget it” utility that just works, no matter where I run it. Today, I’m sharing that script with you.

What Makes It Different?

This isn’t just another script that calls a single command. It’s a full-featured command-line tool designed for ease of use and reliability.

  • Truly Universal: It automatically detects your DE (GNOME, KDE Plasma, Cinnamon, XFCE, MATE) and uses the correct commands.
  • Automatic Setup: Just run the script. It guides you through a one-time setup, configures your folders, and creates a systemd timer to automate everything. No cron knowledge needed.
  • Flexible Control: Manage multiple folders, choose recursive scanning, set your preferred image style (`zoom`, `scaled`, etc.), and change the rotation frequency with simple, memorable commands.
  • Zero Dependencies: It’s a pure Python script that uses only the standard library. No need to install anything from pip.

Getting Started in Under a Minute

The setup is designed to be painless.

Step 1: Get the Script

The project is open-source and hosted on GitLab. The best way to get it is by cloning the repository. This ensures you have the script, the README, and the changelog all in one place.

# Clone the repository
git clone https://gitlab.com/kreezxil/Linux-DE-Wallpaper-Manager.git

# Navigate into the new directory
cd Linux-DE-Wallpaper-Manager

# Move the script to your local bin and rename it for easy access
mkdir -p ~/.local/bin
mv set_wallpaper.py ~/.local/bin/wallpaper

Step 2: Run the Setup

That’s it. Just run the command. The script will detect it’s the first run and launch the interactive setup.

wallpaper

It will walk you through adding your picture folders and setting a schedule. From then on, your desktop background will change automatically.

Full Control When You Want It

Need to make a change? The script provides simple flags to manage your configuration without needing to edit files manually.

# Set a specific image right now
wallpaper /path/to/favorite.jpg

# Add a new folder to the rotation
wallpaper --add-folder ~/Pictures/New_Wallpapers/

# Change how often the wallpaper rotates (e.g., every 90 minutes)
wallpaper --set-frequency 1:30

# See all your options
wallpaper --help

This project was a fun exercise in creating a truly user-friendly and robust command-line tool. It solves a personal annoyance, and I hope it can make your multi-DE Linux experience a little more seamless, too. Give it a try!