This script changes your wallpaper to most upvoted image of the day on /r/wallpaper or from any other subreddit.
Run it on startup for new wallpaper on every session.
Supported: Linux (gnome, kde, mate, lxde), Windows and OS X
Make sure you have Python3 installed and PATH variable set.
If you don't have pip
for Python:
sudo apt-get install python-pip
You will need modules requests
and praw
installed, which are in requirements.txt:
pip install -r requirements.txt
If you don't have pip
for Python:
pacman -S python-pip
or, with yay:
yay -S python-pip
Then just install the requirements.txt with:
pip install -r requirements.txt
Follow this guide to install pip
and configure PATH variable.
The rest is the same.
First, you'll need to configure the credentials.json file with your personal Reddit API. Your api_key will be the Reddit API secret and your client_id the first and smaller code:
Then, in the current project folder, run:
python change_wallpaper_reddit.py
If you wanna use other subreddit, include argument with the subreddit name:
python change_wallpaper_reddit.py --subreddit art
If you don't want to change your wallpaper daily, you can use hourly, weekly, monthly or yearly wallpaper too by adding one of the following arguments: hour
, week
, month
, year
to the script.
Example:
python change_wallpaper_reddit.py --time week
If you want to choose which wallpaper appears, you can sort posts by adding the arguments: hot
, top
, new
to the script.
Example:
python change_wallpaper_reddit.py --sort top
NSFW images are disabled by default, to enable them add --nsfw
.
On OS X, you can specify display number with option --display
. Use 0 for all display (default), 1 for main display and so on.
To change default location where image will be saved, use --output folder/subfolder
.
To make managment of the script simple, we can accomplish this using built-in Startup Applications.
Click on Add.
Note: you can use --subreddit
and --time
arguments here aswell.
We will be using Task Scheduler for this. You can find it in Windows search.
Once you open it, click on Create Basic Task
Follow the procedure.
In Add arguments
field type the location of the script. Example
"D:\change_wallpaper_reddit.py"
or
"D:\change_wallpaper_reddit.py" --subreddit art --time week
Look into using cronjobs on Linux or Task Scheduler on Windows for performing this.
Instead of writing arguments every time you run the script, you can also use configuration file which should be located at ~/.config/change_wallpaper_reddit.rc
.
Example of configuration file:
subreddit=art
time=day
sort=top