{ config, lib, pkgs, ... }: let exaPackage = pkgs.exa.override { gitSupport = false; }; in { programs.exa = { enable = true; package = exaPackage; }; programs.zsh.shellAliases = let defaultArgs = "--icons --classify --group-directories-first --all"; bin = "${exaPackage}/bin/exa ${defaultArgs}"; in lib.mkIf config.programs.zsh.enable { ls = "${bin} --oneline"; lt = "${bin} --tree --level=3"; ll = "${bin} --long --header"; }; 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 d2 # text to diagram gnumake libnotify # tool to send notifications via cli nixpkgs-fmt # nix formatter nil # nix lsp server docker-compose ]; }