This commit is contained in:
Matthew Bessette
2026-03-11 14:12:05 -04:00
parent a3d6b1bb1c
commit b7f268e6de
8 changed files with 38 additions and 4 deletions

View File

@@ -1,55 +0,0 @@
{ pkgs, ... }: {
nixpkgs.config.allowUnfree = true;
ids.gids.nixbld = 350;
security.pam.services.sudo_local.touchIdAuth = true;
# 1Password SSH Socket
environment.variables.SSH_AUTH_SOCK = "~/Library/Group Containers/2BU8OCWD5C.com.1password/t/agent.sock";
# Set vim as default editor
environment.variables.EDITOR = "vim";
environment.variables.VISUAL = "vim";
environment.variables.GIT_EDITOR = "vim";
# Add Homebrew to PATH
environment.systemPath = [ "/opt/homebrew/bin" "/opt/homebrew/sbin" ];
# Biome config
environment.etc."biome.json".source = ../../config/biome.json;
system.primaryUser = "matthew.bessette";
users.users."matthew.bessette" = {
name = "matthew.bessette";
home = "/Users/matthew.bessette";
};
# Homebrew for Casks and specific binaries
# In a nix-darwin setup, Homebrew packages are not actually stored inside the Nix store.
# Instead, nix-darwin acts as a manager that triggers the standard Homebrew installation
# process on your macOS system.
homebrew = {
enable = true;
onActivation.cleanup = "uninstall";
onActivation.autoUpdate = true;
onActivation.upgrade = true;
taps = [ "bufbuild/buf" "jacobjohansen/tap" ];
brews = [
"biome"
"jacobjohansen/tap/rds-auth-proxy"
];
casks = [
"android-commandlinetools"
"android-platform-tools"
"bruno"
"kopiaui"
"libreoffice"
"signal"
"spotify"
"yubico-yubikey-manager"
"zoom"
];
};
nix.settings.experimental-features = "nix-command flakes";
system.stateVersion = 4;
}

View File

@@ -1,131 +0,0 @@
{ config, pkgs, ... }: {
home.stateVersion = "23.11";
home.username = "matthew.bessette";
home.homeDirectory = "/Users/matthew.bessette";
home.packages = with pkgs; [
# Dev Specs
python3
pipenv
nodejs_22
yarn
jdk17
# DB
postgresql_16 # pgdump/restore
# CLI Tools from your Brewfile
xz
ffmpeg
earthly
awscli2
buf
];
# 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-extensions; [
# graphql.vscode-graphql
biomejs.biome
bbenoist.nix
dbaeumer.vscode-eslint
eamodio.gitlens
esbenp.prettier-vscode
graphql.vscode-graphql-syntax
hashicorp.terraform
mechatroner.rainbow-csv
# mermaidchart.vscode-mermaid-chart
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
redhat.vscode-xml
# 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/2BU8OCWD5C.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#cleo-darwin";
laws = "aws --endpoint=http://localhost:4566";
dev = "nix develop -c $SHELL";
nixos = "code ~/nixos";
};
};
home.sessionVariables = {
# Points to the Homebrew location mentioned in your caveat
ANDROID_HOME = "/opt/homebrew/share/android-commandlinetools";
JAVA_HOME = "${pkgs.jdk17}";
NPM_CONFIG_PREFIX = "${config.home.homeDirectory}/.npm-global";
};
home.sessionPath = [
"${config.home.homeDirectory}/.npm-global/bin"
];
home.file.".npmrc".text = ''
prefix=${config.home.homeDirectory}/.npm-global
'' ;
programs.git = {
enable = true;
settings.user = {
name = "Matthew Bessette";
email = "matthew.bessette@hicleo.com";
};
settings.init.defaultBranch = "main";
# This creates ~/.config/git/ignore and sets core.excludesFile
ignores = [
"biome.json"
"flake.lock"
"flake.nix"
".DS_Store"
".direnv"
".envrc"
];
};
}