{ pkgs, lib, config, ... }: let cfg = config.mods.terminal; in with lib; { options.mods.terminal.tools.enable = mkEnableOption "enables cli tools"; config = mkIf cfg.tools.enable { programs = builtins.listToAttrs (map (name: { name = name; value = { enable = true; } // optionalAttrs (builtins.hasAttr "enableZshIntegration" config.programs.${name}) { enableZshIntegration = mkIf cfg.zsh.enable true; }; }) [ "zellij" "fzf" "eza" "bat" "zoxide" "dircolors" "nix-index" "lazygit" "fd" "ripgrep" "bottom" "htop" "vifm" ]); home.packages = with pkgs; [ # libraries glow ueberzugpp # file managing trash-cli dua fdupes vifm # programs fend unzip ]; }; }