This commit is contained in:
Matthew Bessette
2026-04-05 00:54:01 -04:00
parent 10da3b7da6
commit 273396aa99
3 changed files with 131 additions and 1 deletions

View File

@@ -0,0 +1,119 @@
{ config, pkgs, ... }: {
home.stateVersion = "23.11";
home.username = "mbessette";
home.homeDirectory = "/Users/mbessette";
home.packages = with pkgs; [];
programs.home-manager.enable = true;
# Enable direnv for automatic environment switching
programs.direnv = {
enable = true;
nix-direnv.enable = true; # Better Nix flakes integration with caching
};
# Managed VS Code Extensions (The "Clean" Way)
programs.vscode = {
enable = true;
profiles.default = {
userSettings = builtins.fromJSON (builtins.readFile ./config.vscode.settings.json);
extensions = with pkgs.vscode-marketplace; [
bbenoist.nix
eamodio.gitlens
github.copilot-chat
graphql.vscode-graphql-syntax
hashicorp.terraform
mechatroner.rainbow-csv
mermaidchart.vscode-mermaid-chart
redhat.vscode-xml
vscode-icons-team.vscode-icons
typescriptteam.native-preview
];
};
};
# Automatically load the 1Password agent in your shell
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh.enable = true;
oh-my-zsh.theme = "robbyrussell";
oh-my-zsh.plugins = [
"git"
"npm"
];
initContent = ''
export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock
# Auto-allow direnv for directories with flake.nix
auto_allow_direnv() {
if [[ -f flake.nix ]] && [[ ! -f .envrc ]]; then
echo "use flake" > .envrc
direnv allow
elif [[ -f flake.nix ]] && [[ -f .envrc ]]; then
direnv allow
fi
}
# Run auto-allow when changing directories
chpwd_functions+=(auto_allow_direnv)
'';
shellAliases = {
ll = "ls -l";
update = "sudo darwin-rebuild switch --flake ~/nixos#caesium";
dev = "nix develop -c $SHELL";
nixos = "code ~/nixos";
};
};
home.sessionVariables = {
# Points to the Homebrew location mentioned in your caveat
NPM_CONFIG_PREFIX = "/usr/local/Projects/.npm-global/.npm-global";
};
home.sessionPath = [
"/usr/local/Projects/.npm-global/bin"
];
home.file.".npmrc".text = ''
prefix=/usr/local/Projects/.npm-global/.npm-global
'' ;
home.file.".config/1Password/ssh/agent.toml".source = ./config.agent.toml;
programs.ssh = {
enable = true;
matchBlocks = {
"thiccdata.io" = {
hostname = "192.168.1.45";
user = "mbessette";
port = 2222;
};
"*" = {
extraOptions = {
"IdentityAgent" = "\"~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock\"";
};
};
};
};
programs.git = {
enable = true;
settings.user = {
name = "Matthew Bessette";
email = "bessette.matthew94@gmail.com";
};
settings.init.defaultBranch = "main";
# This creates ~/.config/git/ignore and sets core.excludesFile
ignores = [
];
};
}