# file: wallpaper-copy.nix { lib, config, pkgs, flakeRoot, ... }: let sourceDir = "${flakeRoot}/assets/hyprland/wallpaperstuff"; # Determine target directory: use Home Manager homeDirectory if available, else $HOME targetDir = if lib.attrExists "home" config then "${config.home.homeDirectory}/Droidnix/wallpaperstuff" else "$HOME/Droidnix/wallpaperstuff"; in { options.wallpaper.enable = lib.mkEnableOption "Copy wallpaperstuff dir"; config = lib.mkIf config.wallpaper.enable { # System activation (runs on nixos-rebuild switch) system.activationScripts.copyWallpapers = { text = '' echo "=== Copying wallpaperstuff (system activation) ===" mkdir -p "${targetDir}" cp -rT "${sourceDir}" "${targetDir}" echo "Done." ''; deps = []; }; # Home Manager activation (runs when home-manager switch is executed) home-manager.users.${config.home.username ? config.home.username or "default"}?.home.activation.copyWallpapers = lib.mkIf (lib.attrExists "home" config) { description = "Copy wallpaperstuff to user home"; script = '' echo "=== Copying wallpaperstuff (home-manager activation) ===" mkdir -p "${targetDir}" cp -rT "${sourceDir}" "${targetDir}" echo "Done." ''; }; }; }