{ 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 ]; }; }