{ self, inputs, ... }: {
  flake.nixosModules.wallpapers = { pkgs, lib, config, ... }: {

    options.wallpaper-users = lib.mkOption {
      type = lib.types.listOf lib.types.str;
      default = [];
      description = "List of users to include wallpapers for";
    };

    options.wallpaper-destination = lib.mkOption {
      type = lib.types.str;
      default = "Pictures/Wallpapers";
      description = "Destination path for wallpapers";
    };

    config = {
      hjem = lib.mkIf (config.wallpaper-users != []) {
        users = lib.genAttrs config.wallpaper-users (username: {
          enable = true;
          files = {
            "${config.wallpaper-destination}".source = pkgs.runCommand "wallpapers" {} ''
              mkdir -p $out
              cp -r ${../../../assets/wallpapers}/* $out/
            '';
          };
        });
      };
    };
  };
}
