Files
nixos/Droidnix/generated/hyprland/decorations/rotating_wallpaper.nix
T
2026-03-17 16:29:59 +00:00

60 lines
2.5 KiB
Nix

{ lib, config, pkgs, flakeRoot, ... }:
let
# Define source and destination paths
source_path = "${flakeRoot}/assets/hyprland/wallpaperstuff";
destination_path = "${config.home.homeDirectory}/Droidnix/wallpaperstuff";
wallpaper_conf = "${flakeRoot}/assets/hyprland/wallpaperstuff/wallpaper.conf";
# Define the script in the let block
copy_wallpapers_script = ''
#!${pkgs.bash}/bin/bash
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."
exit 1
fi
# Create destination directory if it doesn't exist
mkdir -p "$DEST_DIR"
# Use rsync to copy files, overwriting symlinks and existing files
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."
'';
# Write the script to a file in the home directory
script_file_path = "${config.home.homeDirectory}/copy-wallpapers_debug.sh";
_ = builtins.trace (lib.concatStringsSep "\n" [
"=== Script saved to: ${script_file_path} ==="
"You can inspect it with: cat '${script_file_path}'"
]);
in {
options = {
wallpaper.enable = lib.mkEnableOption "Wallpaper setup";
};
config = lib.mkIf config.wallpaper.enable {
# Write the script to a file for inspection
home-manager.users.${config.home.username}.home.file."${script_file_path}".text = copy_wallpapers_script;
home-manager.users.${config.home.username}.home.file."${script_file_path}".executable = true;
# Use a script to copy all files from source to destination
home-manager.users.${config.home.username}.home.file."${flakeRoot}/assets/hyprland/scripts/copy-wallpapers.sh".text = copy_wallpapers_script;
home-manager.users.${config.home.username}.home.file."${flakeRoot}/assets/hyprland/scripts/copy-wallpapers.sh".executable = true;
# Run the script on activation
home-manager.users.${config.home.username}.home.activation.copy-wallpapers.script = ''
"${flakeRoot}/assets/hyprland/scripts/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;
};
}