37 lines
1.1 KiB
Nix
Executable File
37 lines
1.1 KiB
Nix
Executable File
{
|
|
lib,
|
|
pkgs,
|
|
namespace,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
inherit (lib.${namespace}) mkOpt;
|
|
|
|
# Default fallback wallpaper (included in the system)
|
|
defaultWallpaper = pkgs.runCommand "default-wallpaper" { } ''
|
|
mkdir -p $out
|
|
cp ${pkgs.nixos-artwork.wallpapers.nineish-dark-gray}/share/backgrounds/nixos/nix-wallpaper-nineish-dark-gray.png $out/default.jpg
|
|
'';
|
|
in
|
|
{
|
|
options.${namespace}.wallpaper = {
|
|
enable = mkEnableOption "shared wallpaper management (download, symlink, and boot integration)";
|
|
|
|
source = mkOpt (types.enum [
|
|
"bing"
|
|
"nasa"
|
|
]) "bing" "Source for the wallpaper (bing or nasa)";
|
|
|
|
path = mkOpt types.path "/var/lib/wallpapers/current.jpg" "Path to the active wallpaper file";
|
|
|
|
dir = mkOpt types.path "/var/lib/wallpapers" "Directory where wallpapers are stored";
|
|
|
|
defaultWallpaper = mkOpt types.path "${defaultWallpaper}/default.jpg" "Default fallback wallpaper";
|
|
|
|
reloadCommand =
|
|
mkOpt (types.nullOr types.str) null
|
|
"Optional shell command run after downloading a new wallpaper to notify the desktop environment. If null, no reload command is run.";
|
|
};
|
|
}
|