Files
dotfiles/nix/home.nix

104 lines
2.3 KiB
Nix

{ 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";
}
];
};
}