{ pkgs, config, lib, ... }: with lib; { options.components.terminal.direnv.enable = mkOption { type = lib.types.bool; default = config.components.terminal.enable; }; config = mkIf (config.components.terminal.direnv.enable) { environment.systemPackages = [ pkgs.direnv ]; home-manager.users.mainUser.programs.direnv.enable = true; programs.zsh.interactiveShellInit = '' eval "$(${pkgs.direnv}/bin/direnv hook zsh)" ''; programs.bash.interactiveShellInit = '' eval "$(${pkgs.direnv}/bin/direnv hook bash)" ''; }; }