niri-tag/module.nix
2025-06-20 01:14:51 +10:00

44 lines
846 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" ];
serviceConfig = {
Type = "notify";
Restart = "always";
ExecStart = "${getExe cfg.package}";
PrivateTmp = true;
};
};
environment.systemPackages = [ cfg.package ];
};
}