{ config, pkgs, lib, ... }: { home.username = "ttm"; home.homeDirectory = if lib.strings.hasInfix "darwin" pkgs.system then /Users/ttm else /home/ttm; home.stateVersion = "22.05"; # Let Home Manager install and manage itself. programs.home-manager.enable = true; # Enable integration with generic Linux OSs targets.genericLinux.enable = pkgs.stdenv.isLinux; home.packages = with pkgs; [ # Defined in Xonsh overlay xonsh_with_plugins # Jump to directories zoxide # Better cat bat # Better find fd # Better df duf htop fzf ncdu ripgrep tmux kitty nodePackages.pyright coreutils zstd fira-code ]; programs.direnv.enable = true; programs.direnv.nix-direnv.enable = true; programs.direnv.stdlib = '' # From https://github.com/direnv/direnv/wiki/Customizing-cache-location : ''${XDG_CACHE_HOME:=$HOME/.cache} declare -A direnv_layout_dirs direnv_layout_dir() { echo "''${direnv_layout_dirs[$PWD]:=$( local path="''${PWD//[^a-zA-Z0-9]/-}" echo "$XDG_CACHE_HOME/direnv/layouts/''${path:1}" )}" } ''; programs.emacs.enable = true; programs.emacs.package = pkgs.emacs28NativeComp; programs.emacs.extraPackages = epkgs: [ epkgs.vterm ]; fonts.fontconfig.enable = true; programs.git = { enable = true; aliases = { lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; }; extraConfig = { user.name = "Tim McCarthy"; user.email = "thoomfish@gmail.com"; color.ui = true; init.defaultBranch = "main"; push.default = "simple"; pull.rebase = true; transfer.fsckobjects = true; credential.helper = "store"; }; ignores = [ ".DS_Store" ".projectile" ".idea" "*.sw?" "*.pyc" ".#*" ".nrepl-port" ".rebel_readline_history" ".auctex-auto" "*.synctex.gz" ".ccls-cache" ".lein-repl-history" "ompile_commands.json" "*.egg-info" ".envrc" ".vscode" ".direnv" ".ipynb_checkpoints" "nfer-out" ".cache" ]; includes = [ { condition = "gitdir/i:~/SRI/"; contents.user.email = "tim.mccarthy@sri.com"; } ]; }; }