{ config, lib, ... }: { config = lib.mkMerge [ (lib.mkIf config.homeconfig.ags.enable { home.file = let dir = "ags"; in builtins.mapAttrs ( n: v: { source = v.value; target = v.name; }) ( builtins.mapAttrs ( _name: _value: { name = ".config/${dir}/${_name}"; value = ./${dir}/${_name}; } ) (builtins.readDir ./${dir}) ); }) (lib.mkIf config.homeconfig.hyprland.enable { home.file = let dir = "Wallpaper"; in builtins.mapAttrs ( n: v: { source = v.value; target = v.name; }) ( builtins.mapAttrs ( _name: _value: { name = ".config/${dir}/${_name}"; value = ./${dir}/${_name}; } ) (builtins.readDir ./${dir}) ); }) (lib.mkIf config.homeconfig.hyprland.enable { home.file = let dir = "Wallpaper"; in builtins.mapAttrs ( n: v: { source = v.value; target = v.name; }) ( builtins.mapAttrs ( _name: _value: { name = ".config/${dir}/${_name}"; value = ./${dir}/${_name}; } ) (builtins.readDir ./${dir}) ); }) (lib.mkIf config.homeconfig.swaylock.enable { home.file = let dir = "swaylock"; in builtins.mapAttrs ( n: v: { source = v.value; target = v.name; }) ( builtins.mapAttrs ( _name: _value: { name = ".config/${dir}/${_name}"; value = ./${dir}/${_name}; } ) (builtins.readDir ./${dir}) ); }) (lib.mkIf config.homeconfig.wal.enable { home.file = let dir = "wal"; in builtins.mapAttrs ( n: v: { source = v.value; target = v.name; }) ( builtins.mapAttrs ( _name: _value: { name = ".config/${dir}/${_name}"; value = ./${dir}/${_name}; } ) (builtins.readDir ./${dir}) ); }) ]; }