{ lib, ... }: let wofiAssets = ../../../assets/system/conf/wofi; wofiFiles = builtins.readDir wofiAssets; wofiConfs = lib.genAttrs (builtins.attrNames wofiFiles) (name: { src = "${wofiAssets}/${name}"; }); enableWofi = true; # toggle on/off in { options.enableWofi = lib.mkEnableOption "Enable Wofi terminal launcher"; # Everything is wrapped safely in config config = lib.mkIf enableWofi { # Just symbolic references to files, no pkgs or recursive config programs.wofi = { enable = true; assetsDir = wofiAssets; files = wofiConfs; }; }; }