{ povSelf, config, lib, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options = { enable = { type = types.bool; default = false; }; avoid = { type = types.listOf types.str; default = [ ]; }; prefer = { type = types.listOf types.str; default = [ ]; }; }; config = lib.mkIf cfg.enable { services.earlyoom = { enable = true; enableNotifications = true; extraArgs = [ "--ignore-root-user" ] ++ (lib.optionals (cfg.avoid != [ ]) [ "--avoid" "(^|/)(${lib.concatStringsSep "|" cfg.avoid})$" ]) ++ (lib.optionals (cfg.prefer != [ ]) [ "--prefer" "(^|/)(${lib.concatStringsSep "|" cfg.prefer})$" ]); }; }; }