Skip to content

nikolaizombie1/waytrogen

Repository files navigation

Sparkles $${\color{red}Waytrogen \space \color{lightblue}- \space \color{orange}Wallpaper\space setter\space for\space wayland}$$ Sparkles


A GUI wallpaper setter for Wayland that is a spiritual successor for the minimalistic wallpaper changer for X11 nitrogen. Written purely in the Rust 🦀 programming language.

Features

  • 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)

Installation

  1. Install required wallpaper changer(s) based on your needs:
    • hyprpaper for Hyprland
    • swaybg for Sway
    • mpvpaper for video support
    • awww for transition effects
    • gslapper for video support with lower memory usage
  2. Install waytrogen:
    • Arch Linux: Available on AUR
    • NixOS: Available on Nixpkgs
    • Debian, Ubuntu,Linux-Mint, etc. - Get the latest .deb in our releases.
    • Fedora: Enable COPR Repository sudo dnf copr enable nikolaizombie1/waytrogen and install sudo dnf install waytrogen

Usage

  • Launch via terminal: waytrogen
  • Restore previous wallpapers: waytrogen --restore or waytrogen -r
  • List current state in JSON: waytrogen --list or waytrogen -l
  • Use external script: waytrogen --external_script or waytrogen -e
    • Script receives: monitor, wallpaper path, complete state
    • Overrides config.json executable_script property.
  • Cycle to the next wallpaper: waytrogen --next or waytrogen -n

Building from source

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 waytrogen

For 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 ninja

On Ubuntu use the following command to install the required build dependencies:

sudo apt install openssl sqlite3 meson ninja cargo

Then clone the repository using:

git clone https://github.com/nikolaizombie1/waytrogen.git && cd waytrogen

Configure meson and build using:

meson setup builddir --prefix=/usr && meson compile -C builddir

If you would like to install to your system, use:

meson install -C builddir

Contribution

All help is welcome and appreciated for waytrogen. If you would like to contribute to waytrogen follow these steps:

  1. Create a fork of waytrogen by clicking the fork button on the top of the github repository.
  2. Clone your fork waytrogen:
git clone https://github.com/YOUR_USERNAME/waytrogen.git && cd waytrogen
  1. Create a branch who's name describe the changes you would like to do. Please be descriptive, do not use titles such as: update-readme or fix-bug
git switch --create descriptive-branch-name main
  1. Perform the changes you like to do.
    • If you would like to do code changes, follow these steps:

      1. Install waytrogen either from source. On NixOS, add the following snippet to your configuration.nix
      programs.direnv = {
      enable = true;
      nix-direnv.enable = true;
      };

      If the nix flake is not loading in properly, run direnv allow in the root of the repository to enable the flake.

      1. Perform the changes you would like to do on waytrogen.
      2. Compile and run waytrogen with the new changes using the following based on the distribution:
      • If on NixOS simply run:
      nix build && nix run
      • On any other distribution, run:
      cargo run --release
      1. Repeat steps 3 and 4 until you are satisfied with your changes.
  2. Run cargo clippy and make sure there are no suggestions.
  3. Format the project using cargo fmt --all
  4. Create a commit who's message describes your changes in slightly more detail.
  5. Go to your fork and create a pull request for nikolaizombie1:waytrogen on the main branch. If needed, go into detail what do your changes do in the description of the pull request.

Credits

Logo shape from Inconify Tabler atom.

About

A lightning fast wallpaper setter for Wayland

Topics

Resources

License

Stars

169 stars

Watchers

3 watching

Forks

Packages

 
 
 

Contributors