one flake containing all of my nixos configs
{
  config,
  lib,
  pkgs,
  ...
}: let
  cfg = config.programs.wallpaperd;
in {
  config = lib.mkIf cfg.enable {
    home.packages = with pkgs; [
      wpaperd
    ];

    wayland.windowManager.hyprland.settings.exec-once =
      if cfg.enableHyprlandIntegration
      then [
        "${pkgs.wpaperd}/bin/wpaperd"
      ]
      else [];

    # by default rotate, on laptop display dont rotate to reduce battery impact
    xdg.configFile."wpaperd/wallpaper.toml".text = ''
      [default]
      path = "${../wallpapers}"
      duration = "5m"
      sorting = "ascending"
      apply-shadow = true

      [eDP-1]
      path = "${../wallpapers}/05_nix-wallpaper-gear.png"
      apply-shadow = true
    '';
  };

  options.programs.wallpaperd = {
    enable = lib.mkEnableOption "Enable my dotfiles configured wallpaperd module.";
    enableHyprlandIntegration = lib.mkEnableOption "Enable the hyprland integration via hyprland exec-once.";
  };
}