47 lines
1.1 KiB
Nix
47 lines
1.1 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
let
|
|
wallpaperSource = "${config.home.homeDirectory}/.config/wpaperd-source"; # or flakeRoot path
|
|
wallpaperTarget = "${config.home.homeDirectory}/.config/wpaperd";
|
|
in
|
|
{
|
|
home.packages = [ pkgs.wpaperd ];
|
|
|
|
home.file.".config/wpaperd/wallpaper.conf".source = "${wallpaperSource}/wallpaper.conf";
|
|
|
|
home.activation.copyWpaperd = lib.homeManager.activationScript {
|
|
name = "copy-wpaperd";
|
|
text = ''
|
|
echo "=== Copying wpaperd source to ${wallpaperTarget} ==="
|
|
mkdir -p "${wallpaperTarget}"
|
|
cp -rT "${wallpaperSource}" "${wallpaperTarget}"
|
|
echo "Done."
|
|
'';
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
WPAPERD_CONFIG = "${wallpaperTarget}/wallpaper.conf";
|
|
};
|
|
|
|
# User-level service
|
|
home.file.".config/systemd/user/wpaperd.service".text = ''
|
|
[Unit]
|
|
Description=wpaperd wallpaper daemon
|
|
After=default.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=${pkgs.wpaperd}/bin/wpaperd --config ${wallpaperTarget}/wallpaper.conf
|
|
Restart=on-failure
|
|
RestartSec=1
|
|
|
|
[Install]
|
|
WantedBy=default.target
|
|
'';
|
|
}
|