diff --git a/modules/programs/senpai.nix b/modules/programs/senpai.nix index 43837f0c8..36127f9f7 100644 --- a/modules/programs/senpai.nix +++ b/modules/programs/senpai.nix @@ -103,7 +103,34 @@ in } ]; home.packages = [ cfg.package ]; - xdg.configFile."senpai/senpai.scfg".text = lib.hm.generators.toSCFG { } cfg.config; + xdg.configFile."senpai/senpai.scfg".text = + let + attrsToDirectiveList = lib.mapAttrsToList ( + name: value: + { + inherit name; + } + // ( + if (builtins.typeOf value != "set") then + { + params = lib.toList value; + } + else + let + children = lib.filterAttrs (n: _: n != "_params") value; + in + ( + lib.optionalAttrs (value ? "_params") { + params = value._params; + } + // lib.optionalAttrs (children != { }) { + children = attrsToDirectiveList children; + } + ) + ) + ); + in + lib.hm.generators.toSCFG { } (attrsToDirectiveList cfg.config); }; meta.maintainers = [ lib.maintainers.malte-v ];