homeman
This commit is contained in:
119
caesium.home.nix
119
caesium.home.nix
@@ -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 = [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
./caesium.hardware.nix # Crucial: Imports your UUIDs
|
./caesium.hardware.nix # Crucial: Imports your UUIDs
|
||||||
];
|
];
|
||||||
|
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
@@ -96,7 +97,8 @@
|
|||||||
git
|
git
|
||||||
wget
|
wget
|
||||||
curl
|
curl
|
||||||
bottles
|
bottles
|
||||||
|
_1password-gui
|
||||||
];
|
];
|
||||||
|
|
||||||
# --- SYSTEM VERSION ---
|
# --- SYSTEM VERSION ---
|
||||||
|
|||||||
@@ -67,6 +67,15 @@
|
|||||||
{
|
{
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
}
|
}
|
||||||
|
# The Home Manager NixOS module
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
|
home-manager.users."mbessette" = import ./caesium.home.nix;
|
||||||
|
home-manager.backupFileExtension = "before-nix";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user