Welcome to the Wallpaper CLI Tool! This tool allows you to fetch and set beautiful wallpapers from various sources like Pexels, Unsplash, NASA APOD, and Reddit. You can also generate custom wallpapers using Stable Diffusion. The tool is designed to be user-friendly and highly customizable.
- Wall CLI in action
- Samples of fetched and Generated Wallpapers
- Folder Structure
- Features
- API Keys
- Installation
- Usage
- Example Use Case
- Contributing
- License
--> Video Explanation:
--> For Non-techies(Normal Users):
--> For Techies:
1.) Query - Scenary
2.) Query - Spirituality
3.) Query - Ganga Arti
4.) Query - Mountains
wallpaper-cli-tool/
├── src/
| |---wallpapers/
| | |-- nature.jpg
| | |-- sea.png
| | |-- sea2.png
│ ├── generator.py # Custom wallpaper generation using Stable Diffusion
│ ├── main.py # Main entry point for CLI
│ ├── nasa_apod_api.py # Fetch wallpapers from NASA APOD
│ ├── pexels_api.py # Fetch wallpapers from Pexels
│ ├── reddit_api.py # Fetch wallpapers from Reddit
│ ├── tui.py # Terminal User Interface
│ ├── tui_style.css # Styles for TUI
│ ├── unsplash_api.py # Fetch wallpapers from Unsplash
│ └── wallpaper_setter.py # Set and manage wallpapers
├── requirements.txt # Project dependencies
├── wallpaper_history.txt # History of wallpapers
└── test images/ # Test images used in the project for referance
└── Wallpapers/ # Project Wallpapers for reference
└── README.md # Project documentation
✨ - Fetch wallpapers from multiple sources: Pexels, Unsplash, NASA APOD, and Reddit.
✨ - Terminal User Interface (TUI) for easy interaction. for normal PC or windows users
✨ - Generate custom wallpapers using Stable Diffusion.
✨ - Set wallpapers directly from the command line.
✨ - Maintain a history of wallpapers.
✨ - Fetch Previous and Next Wallpapers
✨ - Set custom resolution for wallpapers , according to your adaptive rate of windows for ex: 124×124 etc.
To use this tool, you need to set up API keys for the various services. Here are the steps to obtain and set the API keys:
first of all create an ``.env`` file at the root of your project
-
Pexels API Key:
- Sign up at Pexels.
- Go to your profile and find the API key.
- Set the API key in your environment variables:
export PEXELS_API_KEY='your_pexels_api_key'
-
Unsplash API Key:
- Sign up at Unsplash.
- Create a new application to get the API key.
- Set the API key in your environment variables:
export UNSPLASH_API_KEY='your_unsplash_api_key'
-
NASA APOD API Key:
- Sign up at NASA API.
- Get the API key for APOD.
- Set the API key in your environment variables:
export NASA_API_KEY='your_nasa_api_key'
-
Reddit API Key:
- Create an application at Reddit Apps.
- Get the client ID and secret.
- Set the API key in your environment variables:
export REDDIT_CLIENT_ID='your_reddit_client_id' export REDDIT_SECRET='your_reddit_secret'
- Clone the repository:
git clone https://github.com/Blacksujit/WallCLI.git
cd wallpaper-cli-tool
- Install the required dependencies:
pip install -r requirements.txt
You can install the package directly from PyPI:
-> Visit For pypi project:
pip install wallpaper-cli-tool
For Package Installation Steps:
just u have to put ->>wallpaper-cli-tool instead of python main.py in commands
for example:
wallpaper-cli-tool --set-wallpaper "A beautiful sunset" --source reddit
python src/tui.pyUse the TUI to select predefined queries, enter custom queries, and fetch wallpapers.
🫴 navigate to:
cd src
🫴 Fetch and set a wallpaper from Pexels:
python main.py --set-wallpaper "hindu Spirituality" --orientation "landscape" --resolution "1920x1080" --monitor 0🫴 Set Wallpaper from Various Sources like Reddit , unsplash , Nasa apod:
python main.py --set-wallpaper "A beautiful sunset" --source redditpython main.py --set-wallpaper "A beautiful sunset" --source unsplashjust in case of setting the wallpaers from nasa apod u have to specify the date instead of the query so it works on the geolocation engine , so it works as random sattelite wallpaper API
python main.py --set-wallpaper "2022-03-12" --source nasa🫴 Set Previous used wallpaper:
python main.py --previous 2 --monitor 0🫴 Generate a custom wallpaper:
python main.py --source custom --query "a beautiful sunset" --resolution "1024x1024"🫴 Retrive the wallpaper History:
python main.py --list-historyImagine you want to refresh your desktop wallpaper every day with a new image of nature. You can set up a cron job (on Unix-based systems) or a scheduled task (on Windows) to run the following command daily:
python src/main.py --source pexels --query "nature" --orientation "landscape" --resolution "1920x1080"This will automatically fetch a new nature wallpaper from Pexels and set it as your desktop background.
Contributions are welcome! Please fork the repository and submit a pull request.
This project is licensed under the MIT License.
Enjoy your new wallpapers!!!






