alqueva/hosts/shared/swaybg.nix

46 lines
1.2 KiB
Nix
Raw Normal View History

{
config,
lib,
pkgs,
...
}: let
cfg = config.alqueva.programs.swaybg;
inherit (lib) types;
in {
options.alqueva.programs.swaybg = {
enable = lib.mkEnableOption "swaybg";
package = lib.mkPackageOption pkgs "swaybg" {};
wallpaper = lib.mkOption {
default = "";
description = "The wallpaper you want to use with swaybg.";
type = types.oneOf [types.str types.package types.path];
};
mode = lib.mkOption {
default = "fill";
description = "How you want the wallpaper to be displayed.";
type = types.str;
};
extraServiceConfig = {
default = {};
description = "Extra settings you want to apply to the systemd service.";
type = types.attrsOf types.anything;
};
};
config = lib.mkIf cfg.enable {
systemd.user.services.swaybg = {
inherit (cfg.package.meta) description;
wantedBy = ["graphical-session.target"];
after = ["graphical-session-pre.target"];
partOf = ["graphical-session.target"];
serviceConfig = {
2025-01-30 01:15:23 +00:00
ExecStart = "${lib.getExe' cfg.package "swaybg"} -i ${cfg.wallpaper} -m ${cfg.mode}";
Restart = "always";
RestartSec = "5";
};
};
};
}