A Rust-based wallpaper manager for Linux/UNIX systems that fetches wallpapers from Wallhaven.
To get started with rust-paper, first install it:
cargo install rust-paperRun rust-paper once to initialize config directory and files.
Configuration files are stored in different locations depending on your operating system:
- Linux:
~/.config/rust-paper/config.toml - macOS:
~/Library/Application Support/rs.rust-paper/config.toml
save_location = "/Users/abhaythakur/Pictures/wall"
integrity = true
api_key = "your_wallhaven_api_key_here"
max_concurrent_downloads = 10
timeout = 30
retry_count = 3save_location: The directory where wallpapers will be savedintegrity: If set totrue, SHA256 checksums will be used for integrity verificationapi_key(optional): Wallhaven API key for higher rate limits and access to new featuresmax_concurrent_downloads: Maximum number of simultaneous downloads (default: 10)timeout: HTTP request timeout in seconds (default: 30)retry_count: Number of retry attempts for failed requests (default: 3)
wallpaper.lock: This file is used for integrity checks whenintegrityis set totrue.wallpapers.lst: This file stores the IDs of the wallpapers from Wallhaven. An example of its content is shown below:
p9pzk9
x6m3gl
gpl8d3
5gqmg7
qzp8dr
yx3kok
85pgqk
3lgk6y
kx6yqm
o5ww39
o5m9xm
l8rloq
l8o2op
7pmgv9
To use advanced features like search, user settings, and collections, you need a Wallhaven API key:
- Visit Wallhaven.cc and create an account
- Go to Settings → API and generate your API key
- Add it to your config file or set as environment variable:
export WALLHAVEN_API_KEY="your_api_key_here"Once configured, you can run the application to download and manage wallpapers seamlessly.
rust-paper <COMMAND>sync- Sync all wallpapers in your list
rust-paper syncadd- Add new wallpapers to your list
rust-paper add 7pmgv9,l8o2op
# Or
rust-paper add 7pmgv9 l8o2op
# Or with URLs
rust-paper add https://wallhaven.cc/w/7pmgv9 https://wallhaven.cc/w/l8o2opremove- Remove wallpapers from your list
rust-paper remove 7pmgv9 l8o2oplist- List all tracked wallpapers with download status
rust-paper listclean- Remove downloaded wallpapers not in your list
rust-paper cleaninfo- Show detailed information about a wallpaper (works with or without API key)
rust-paper info 7pmgv9search- Search and download wallpapers by query or color
# Search by query
rust-paper search --query "anime +city" --download
# Search by color
rust-paper search --colors 722f37 --download
# Random wallpaper
rust-paper search --query "" --sorting RANDOM --downloadNote: The --download flag saves wallpapers to save_location from your config, using the Wallhaven ID as the filename.
tag-info- Get tag information
rust-paper tag-info 15user-settings- Show your Wallhaven account settings
rust-paper user-settingsuser-collections- Show user collections
rust-paper user-collectionshelp- Print help message
rust-paper helpFor detailed information about API features, see API_INTEGRATION.md.
-h, --helpPrint help
Contributions are welcome! Feel free to submit issues or pull requests.
This project is licensed under the MIT License. See the LICENSE file for more details.