Bored seeing the same wallpapers every day? This article will show you how to set new wallpapers using Styli.sh on Linux automatically.
More often than not, we get bored with our current desktop wallpaper as time passes. So if you ever needed a way to automate changing your desktop wallpaper on Linux, this might be the right article.
Automatically switching wallpapers is probably the best way to keep your desktop fresh and full of surprises. Of course, many apps can help you do this, but is it worth using an application for such an easy task?
What is Styli.sh
Styli.sh is a Bash script that you can run on Linux to automatically find new wallpapers, downloading and switching them from Unsplash and various subreddits.
It is about a hundred lines of a shell script that uses
wget to go and grab the wallpapers and download them to your machine. As you know,
wget is a command-line download utility for Linux.
How to Install Styli.sh
Since it is just a Bash script, you don’t need to install any packages or dependencies. You only need to have
git installed on your machine.
To install Styli.sh it’s a single line of a copy and pastes in the terminal. So all you need to do is to clone the Styli.sh GitHub repo.
git clone https://github.com/thevinter/styli.sh
How to Use Styli.sh
Styli.sh works out of the box with all popular Linux desktop environments. KDE, GNOME, Xfce, and Sway are natively supported.
Go into the
To change your wallpaper by using
styli.sh run the appropriate command on the terminal to apply a random wallpaper from Unsplash:
Specify a Desired Width or Height
By default, Styli.sh will set a random wallpaper with the resolution 1920×1080 px, but you can set custom width and height using the
-w (width) and
-h (height) flags.
For example, to set a wallpaper with a resolution 1920×1200 px, the command would be:
./styli.sh -w 1920 -h 1200
Set a Wallpaper Based on a Search Term
You can use the
-s option, which will perform an image search based on your search term. For multi-word search terms, enclose the words in double-quotes.
For example, if you want to set a wallpaper showing an ocean sunset, type:
./styli.sh -s "ocean sunset"
Or you can search by a single word, in which case the quotes are not required.
./styli.sh -s birds
Automatically Change Wallpaper Every Hour via A Crontab
Cron is a scheduling daemon that executes tasks in the background at specified intervals. For example, using it, you can change your desktop wallpaper automatically.
To change the wallpaper every hour, launch the following command:
Now add the following to the opened file:
Save the file and exit. Make sure you replace
/path/to/script/ with your actual path where your
styli.sh script is located.
This tells cron to set a random wallpaper every hour by running
styli.sh script. To customize or change this behavior, make sure to use the appropriate flags as per your requirements.
Nice to have an alternative to HydraPaper!
How does Styli.sh handle dual monitor situation?
If you use KDE,this is a moot point. The standard wallpaper has a slideshow. It can time changes up to about 12 hrs. Just point it to your png and jpg mix graphic dir.