niri-tag/module.nix

46 lines
918 B
Nix

{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
mkEnableOption
mkPackageOption
mkIf
getExe
;
name = "Niri Tag Manager";
in
{
options.services.niri-tag = {
enable = mkEnableOption name;
package = mkPackageOption pkgs name {
nullable = true;
default = "niri-tag";
};
};
config =
let
cfg = config.services.niri-tag;
in
mkIf (cfg.enable) {
systemd.user.services.niri-tag = {
enable = true;
description = name;
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
after = [ "niri.service" ];
wants = [ "niri.service" ];
serviceConfig = {
Type = "notify";
Restart = "always";
ExecStart = "${getExe cfg.package}";
PrivateTmp = true;
};
};
environment.systemPackages = [ cfg.package ];
};
}