2025-01-25 05:44:26 +00:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
2025-03-06 20:45:49 +00:00
|
|
|
}:
|
|
|
|
let
|
2025-01-25 05:44:26 +00:00
|
|
|
cfg = config.alqueva.programs.swaybg;
|
|
|
|
inherit (lib) types;
|
2025-03-06 20:45:49 +00:00
|
|
|
in
|
|
|
|
{
|
2025-01-25 05:44:26 +00:00
|
|
|
options.alqueva.programs.swaybg = {
|
|
|
|
enable = lib.mkEnableOption "swaybg";
|
2025-03-06 20:45:49 +00:00
|
|
|
package = lib.mkPackageOption pkgs "swaybg" { };
|
2025-01-25 05:44:26 +00:00
|
|
|
wallpaper = lib.mkOption {
|
|
|
|
default = "";
|
|
|
|
description = "The wallpaper you want to use with swaybg.";
|
2025-03-06 20:45:49 +00:00
|
|
|
type = types.oneOf [
|
|
|
|
types.str
|
|
|
|
types.package
|
|
|
|
types.path
|
|
|
|
];
|
2025-01-25 05:44:26 +00:00
|
|
|
};
|
|
|
|
mode = lib.mkOption {
|
|
|
|
default = "fill";
|
|
|
|
description = "How you want the wallpaper to be displayed.";
|
|
|
|
type = types.str;
|
|
|
|
};
|
|
|
|
extraServiceConfig = {
|
2025-03-06 20:45:49 +00:00
|
|
|
default = { };
|
2025-01-25 05:44:26 +00:00
|
|
|
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;
|
|
|
|
|
2025-03-06 20:45:49 +00:00
|
|
|
wantedBy = [ "graphical-session.target" ];
|
|
|
|
after = [ "graphical-session-pre.target" ];
|
|
|
|
partOf = [ "graphical-session.target" ];
|
2025-01-25 05:44:26 +00:00
|
|
|
|
|
|
|
serviceConfig = {
|
2025-01-30 01:15:23 +00:00
|
|
|
ExecStart = "${lib.getExe' cfg.package "swaybg"} -i ${cfg.wallpaper} -m ${cfg.mode}";
|
2025-01-25 05:44:26 +00:00
|
|
|
Restart = "always";
|
|
|
|
RestartSec = "5";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|