# wallpapergen
A CLI tool for generating gradient wallpapers.
[**View samples**](#samples)
## Installation
If you don't have Rust, follow the installation instructions [here][rust].
Run the following command to install wallpapergen:
```sh
cargo install wallpapergen
```
## Usage
Run the following command to view help:
```sh
wallpapergen --help
```
If the command isn't found, you will need to add `~/.cargo/bin` to your path.
```sh
echo 'export PATH=$PATH:~/.cargo/bin' >> ~/.bashrc
source ~/.bashrc
```
*If you're using zsh, replace `~/.bashrc` with `~/.zshrc`.*
## Examples
Here is the command used to generate the samples seen below:
```sh
wallpapergen -W 825 -H 350 \
-c '#f2cdcd' \
-c '#f5c2e7' \
-c '#cba6f7' \
-c '#f38ba8' \
-c '#eba0ac' \
-c '#fab387' \
-c '#f9e2af' \
-c '#a6e3a1' \
-c '#94e2d5' \
-c '#89dceb' \
-c '#74c7ec' \
-c '#89b4fa' \
-c '#b4befe'
```
(These colors are from [catppuccin][catppuccin])
## Issues
This project is *very early* and may be buggy. Please file an issue if you have
a problem.
### Troubleshooting
* Output paths passed in quotes may fail, prefer `-o ~/example.png` over `-o
'~/example.png'` when possible.
* Wallpapers generated within 1ms of each other will overwrite if no output path
is specified. This occurs because the default filename includes the time in
milliseconds.
## Window manager integration
This program will print the path of the output file before it exits, so you can
use `xargs` to pipe it to your wallpaper program. Here's my personal script:
``` sh
wallpapergen -o ~/.wallpaper.png \
-W 3440 \
-H 1440 \
-c '#f2cdcd' \
-c '#f5c2e7' \
-c '#cba6f7' \
-c '#f38ba8' \
-c '#eba0ac' \
-c '#fab387' \
-c '#f9e2af' \
-c '#a6e3a1' \
-c '#94e2d5' \
-c '#89dceb' \
-c '#74c7ec' \
-c '#89b4fa' \
-c '#b4befe' \
| xargs -I{} swww img {} \
--transition-type 'grow' \
--transition-speed '20' \
--transition-fps '100' \
--transition-pos 0.5,0.5
```
Unnecessary, but it removes the need to repeat the output file path without
using a variable.
## Samples
![Wallpaper sample 1](https://github.com/fr33zing/wallpapergen/blob/main/examples/1.png?raw=true)
![Wallpaper sample 2](https://github.com/fr33zing/wallpapergen/blob/main/examples/2.png?raw=true)
![Wallpaper sample 3](https://github.com/fr33zing/wallpapergen/blob/main/examples/3.png?raw=true)
![Wallpaper sample 4](https://github.com/fr33zing/wallpapergen/blob/main/examples/4.png?raw=true)
[rust]:
[catppuccin]: