{ config, lib, pkgs, ... }: let exaPackage = pkgs.exa.override { gitSupport = false; }; defaultArgs = "--icons --classify"; bin = "${exaPackage}/bin/exa ${defaultArgs}"; in { programs.exa = { enable = true; package = exaPackage; }; programs.zsh.shellAliases = lib.mkIf config.programs.zsh.enable rec { ls = "${bin} --oneline"; la = "${ls} --all"; lt = "${bin} --tree --level=3"; ll = "${bin} --long --header"; lla = "${ll} --all"; }; programs.direnv = { enable = true; nix-direnv.enable = true; }; programs.zoxide = { enable = true; enableZshIntegration = config.programs.zsh.enable; }; home.packages = with pkgs; [ # tools xh # friendly and fast tool for sending HTTP requests fd # a simple, fast and user-friendly alternative to find bat # a cat clone with syntax highlighting and git integration ripgrep # a fuzzy finder vnetod # a tool to change env sections nixpkgs-fmt # nix formatter nil # nix lsp server docker-compose ]; }