Files
nixos/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix
T
2026-04-29 14:58:48 +02:00

85 lines
2.7 KiB
Nix

# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
{ lib, config, pkgs, flakeRoot, ... }:
let
username = config.defaultUser or "henrov";
homeDir = "/home/${username}";
wallpaperSrc = "${flakeRoot}/assets/traveldroid/Wallpapers";
wallpaperDst = "${homeDir}/Wallpapers";
sysName = "awww";
assetPath = "${flakeRoot}/generated/.config/${sysName}";
randoScript = "${homeDir}/.config/${sysName}/scripts/randomizeWallpapers.sh";
in
{
# Make bash available
environment.systemPackages = [
pkgs.bash
pkgs.rsync
pkgs.jq
pkgs.awww
pkgs.waypaper pkgs.socat ];
# Create the copy script using Home Manager, following Waybar style
# This can not be done using a prepared script
home-manager.users = {
${username} = {
home.activation.MakeWallpaperMutable = {
after = [ "writeBoundary" ];
before = [];
data = ''
rm -rf $HOME/.config/${sysName}
mkdir -p $HOME/.config/${sysName}
cp -r ${assetPath}/* $HOME/.config/${sysName}/
chmod -R u+w $HOME/.config/${sysName}/
find $HOME/.config/${sysName}/ -name "*.sh" -exec chmod +x {} \;
'';
};
home.file = {
"copy-wallpapers.sh" = {
text = ''
#!/run/current-system/sw/bin/bash
set -euo pipefail
echo "Running as $(whoami)"
echo "Copying wallpapers from ${wallpaperSrc} to ${wallpaperDst} ..."
if [ ! -d "${wallpaperSrc}" ]; then
echo "ERROR: ${wallpaperSrc} does not exist"
exit 1
fi
mkdir -p "${wallpaperDst}"
# Simple copy, overwrite everything
cp -r "${wallpaperSrc}/." "${wallpaperDst}/"
# Fix permissions
chmod -R u+rwx "${wallpaperDst}"
echo "Done copying wallpapers."
'';
executable = true;
force = true;
};
};
};
};
# User service to run the script that copies the Wallpaperstuff
systemd.user.services.copyWallpapers = {
description = "Copy wallpapers from repo to ~/Wallpapers";
serviceConfig = {
Type = "oneshot";
ExecStart = "${homeDir}/copy-wallpapers.sh";
Restart = "no";
WorkingDirectory = homeDir;
};
wantedBy = [ "default.target" ];
};
# User service to randomize wallpapers
systemd.user.services.randomizeWallpapers = {
description = "Randomize wallpapers in ~/Wallpapers/pictures";
serviceConfig = {
Type = "oneshot";
ExecStart = "${randoScript}";
Restart = "no";
WorkingDirectory = homeDir;
};
wantedBy = [ "default.target" ];
};
}