1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.services.inputplumber;
10in
11{
12 options.services.inputplumber = {
13 enable = lib.mkEnableOption "InputPlumber";
14 package = lib.mkPackageOption pkgs "inputplumber" { };
15 };
16
17 config = lib.mkIf cfg.enable {
18 environment.systemPackages = [ cfg.package ];
19
20 systemd.services.inputplumber = {
21 description = "InputPlumber Service";
22 wantedBy = [ "multi-user.target" ];
23 environment = {
24 XDG_DATA_DIRS = "/run/current-system/sw/share";
25 };
26 restartIfChanged = true;
27
28 serviceConfig = {
29 ExecStart = "${lib.getExe cfg.package}";
30 Restart = "on-failure";
31 RestartSec = "5";
32 };
33 };
34 };
35
36 meta.maintainers = with lib.maintainers; [ shadowapex ];
37}