$${\color{red}Waytrogen \space \color{lightblue}- \space \color{orange}Wallpaper\space setter\space for\space wayland}$$
X11 nitrogen. Written purely in the Rust 🦀 programming language.
- Recursive and lightning fast file searching
- Can load thousands of wallpapers with ease
- Supports images, GIFs and videos
- Supports external scripts when changing wallpapers
- Can list full wallpaper state in JSON format
- Fully supports:
hyprpaper(hyprland - png, jpeg, webp, jxl)swaybg(sway - png, jpeg, tiff, tga, gif)mpvpaper(any video/image format with mpv config)awww(jpeg, png, gif, pnm, tga, tiff, webp, bmp, farbfeld with transitions)glsapper(similar to mpvpaper but with lower memory usage)
- Install required wallpaper changer(s) based on your needs:
hyprpaperfor Hyprlandswaybgfor Swaympvpaperfor video supportawwwfor transition effectsgslapperfor video support with lower memory usage
- Install
waytrogen:
- Launch via terminal:
waytrogen - Restore previous wallpapers:
waytrogen --restoreorwaytrogen -r - List current state in JSON:
waytrogen --listorwaytrogen -l - Use external script:
waytrogen --external_scriptorwaytrogen -e- Script receives: monitor, wallpaper path, complete state
- Overrides
config.jsonexecutable_scriptproperty.
- Cycle to the next wallpaper:
waytrogen --nextorwaytrogen -n
On NixOS, you can use the provided flake.nix to compile and install from source. Just simply clone the repository using:
git clone https://github.com/nikolaizombie1/waytrogen.git && cd waytrogenFor those who would like to build from source on other distributions, the following dependencies are required:
- sqlite3 version 3.42 or greater
- openssl version 3.0 or greater
- meson version 1.2 or greater
- ninja version 1.10 or greater
- cargo version 1.75 or greater
On Arch use the following command to install the required build dependencies:
sudo pacman -S gtk4 sqlite openssl rust meson ninjaOn Ubuntu use the following command to install the required build dependencies:
sudo apt install openssl sqlite3 meson ninja cargoThen clone the repository using:
git clone https://github.com/nikolaizombie1/waytrogen.git && cd waytrogenConfigure meson and build using:
meson setup builddir --prefix=/usr && meson compile -C builddirIf you would like to install to your system, use:
meson install -C builddirAll help is welcome and appreciated for waytrogen. If you would like to contribute to waytrogen follow these steps:
- Create a fork of
waytrogenby clicking theforkbutton on the top of the github repository. - Clone your fork waytrogen:
git clone https://github.com/YOUR_USERNAME/waytrogen.git && cd waytrogen- Create a branch who's name describe the changes you would like to do. Please be descriptive, do not use titles such as:
update-readmeorfix-bug
git switch --create descriptive-branch-name main- Perform the changes you like to do.
-
If you would like to do code changes, follow these steps:
- Install
waytrogeneither from source. On NixOS, add the following snippet to yourconfiguration.nix
programs.direnv = { enable = true; nix-direnv.enable = true; };
If the nix flake is not loading in properly, run
direnv allowin the root of the repository to enable the flake.- Perform the changes you would like to do on
waytrogen. - Compile and run
waytrogenwith the new changes using the following based on the distribution:
- If on
NixOSsimply run:
nix build && nix run- On any other distribution, run:
cargo run --release
- Repeat steps 3 and 4 until you are satisfied with your changes.
- Install
-
- Run
cargo clippyand make sure there are no suggestions. - Format the project using
cargo fmt --all - Create a commit who's message describes your changes in slightly more detail.
- Go to your fork and create a pull request for
nikolaizombie1:waytrogenon the main branch. If needed, go into detail what do your changes do in the description of the pull request.
Logo shape from Inconify Tabler atom.
