{ config, pkgs, lib, flakeRoot, ... }: let username = config.defaultUser or "henrov"; homeDir = "/home/${username}"; wallpaperDst = "${homeDir}/Wallpapers"; scriptSrc = "${flakeRoot}/assets/traveldroid/Wallpapers/set-wallpapers-per-workspace.sh"; in { ############################ # Packages ############################ environment.systemPackages = with pkgs; [ swww waypaper jq ]; ############################ # Copy Wallpapers and Script ############################ systemd.user.services.copyWallpapers = { description = "Copy Wallpapers and script to home"; after = [ "network.target" ]; serviceConfig.Type = "oneshot"; serviceConfig.ExecStart = '' mkdir -p ${wallpaperDst} cp -r ${flakeRoot}/assets/traveldroid/Wallpapers/* ${wallpaperDst}/ chown -R ${username}:${username} ${wallpaperDst} chmod +x ${wallpaperDst}/set-wallpapers-per-workspace.sh ''; enable = true; }; ############################ # Auto-run script at login ############################ systemd.user.services.wallpaperPerWorkspace = { description = "Set wallpapers per workspace on login"; after = [ "copyWallpapers.service" ]; wants = [ "copyWallpapers.service" ]; serviceConfig.Type = "oneshot"; serviceConfig.ExecStart = "${wallpaperDst}/set-wallpapers-per-workspace.sh"; enable = true; }; }