57 lines
1.9 KiB
Nix
57 lines
1.9 KiB
Nix
{
|
|
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;
|
|
};
|
|
}
|