{ lib, config, pkgs, flakeRoot, home-manager, ... }: let programName = "wofi"; username = config.defaultUser or "henrov"; assetPath = "${flakeRoot}/assets/traveldroid/conf/${programName}"; # Read all files in the asset directory if it exists assetFiles = if builtins.pathExists assetPath then builtins.attrNames (builtins.readDir assetPath) else []; # Convert files to Home Manager xdg config entries wofiFiles = lib.genAttrs assetFiles (f: { name = ".config/${programName}/${f}"; value = { source = "${assetPath}/${f}"; }; }); in { # Install Wofi via system packages environment.systemPackages = [ pkgs.wofi ]; # Home Manager configuration _module.args.hmUsers = { ${username} = { home.packages = [ pkgs.wofi ]; # Deploy all files to ~/.config/wofi/ home.file = lib.mkMerge wofiFiles; }; }; }