{ lib, config, pkgs, flakeRoot, ... }: let # Define source and destination paths script_path = "${flakeRoot}/assets/hyprland/scripts"; source_path = "${flakeRoot}/assets/hyprland/wallpaperstuff"; destination_path = "${config.home.homeDirectory}/Droidnix/wallpaperstuff"; wallpaper_conf = "${flakeRoot}/assets/hyprland/wallpaperstuff/wallpaper.conf"; in { options = { wallpaper.enable = lib.mkEnableOption "Wallpaper setup"; }; config = lib.mkIf config.wallpaper.enable { # Use a script to copy all files from source to destination home-manager.users.${config.home.username}.home.file."${script_path}/copy-wallpapers.sh".text = '' #!${pkgs.bash}/bin/bash #cp -r "${source_path}"/* "${destination_path}/" set -euo pipefail # Source and destination directories SOURCE_DIR="${source_path}" DEST_DIR="${destination_path}" # Check if source directory exists if [ ! -d "$SOURCE_DIR" ]; then echo "Error: Source directory $SOURCE_DIR does not exist." fi # Use rsync to copy files, overwriting symlinks and existing files # --no-group --no-owner preserves your user ownership rsync -av --no-group --no-owner "$SOURCE_DIR/" "$DEST_DIR/" echo "Config files copied from $SOURCE_DIR to $DEST_DIR. Symlinks replaced with editable files." ''; home-manager.users.${config.home.username}.home.file."${script_path}/copy-wallpapers.sh".executable = true; # Run the script on activation home-manager.users.${config.home.username}.home.activation.copy-wallpapers.script = '' "${script_path}/copy-wallpapers.sh" ''; # Install wpaperd home-manager.users.${config.home.username}.home.packages = [ pkgs.wpaperd ]; # Configure wpaperd home-manager.users.${config.home.username}.home.file."${config.home.homeDirectory}/.config/wpaperd/config.toml".text = builtins.readFile wallpaper_conf; }; }