48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
![]() |
{
|
||
|
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"];
|
||
|
|
||
|
script = lib.getExe' cfg.package "swaybg";
|
||
|
scriptArgs = "-i ${cfg.wallpaper} -m ${cfg.mode}";
|
||
|
|
||
|
serviceConfig = {
|
||
|
Restart = "always";
|
||
|
RestartSec = "5";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|