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.
<meta http-equiv="content-type" content="text/html; charset=utf-8">git clone https://github.com/thevinter/styli.sh
Code language: PHP (php)
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 styli.sh
directory:
cd styli.sh
Code language: CSS (css)
To change your wallpaper by using styli.sh
run the appropriate command on the terminal to apply a random wallpaper from Unsplash:
KDE
./styli.sh -k
GNOME
<meta http-equiv="content-type" content="text/html; charset=utf-8">./styli.sh -g
Code language: HTML, XML (xml)
Xfce
<meta http-equiv="content-type" content="text/html; charset=utf-8">./styli.sh -x
Code language: HTML, XML (xml)
Sway
<meta http-equiv="content-type" content="text/html; charset=utf-8">./styli.sh -y
Code language: HTML, XML (xml)
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"
Code language: JavaScript (javascript)
Or you can search by a single word, in which case the quotes are not required.
<meta http-equiv="content-type" content="text/html; charset=utf-8">./styli.sh -s birds
Code language: HTML, XML (xml)
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:
crontab -e
Now add the following to the opened file:
@hourly /path/to/script/styli.sh
Code language: CSS (css)
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.