Home manager applied to caesium

This commit is contained in:
2026-07-28 01:39:27 -04:00
parent cbf3d7bc38
commit ed7cce8ec4
6 changed files with 158 additions and 80 deletions
+6 -67
View File
@@ -1,32 +1,24 @@
{ config, inputs, pkgs, ... }: { { config, inputs, pkgs, ... }: {
home.stateVersion = "23.11";
home.username = "mbessette";
home.homeDirectory = "/home/mbessette";
home.packages = with pkgs; [];
programs.home-manager.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
claude-desktop
firefox firefox
wowup-cf wowup-cf
faugus-launcher faugus-launcher
ghostty
]; ];
services.flatpak = { services.flatpak = {
packages = [ packages = [
com.spotify.Client "com.spotify.Client"
com.discordapp.Discord "com.discordapp.Discord"
"flathub:app/com.anthropic.Claude/x86_64/stable"
]; ];
overrides = []; overrides = [];
}; };
programs.zsh.shellAliases = {
claude = "nix run github:sadjow/claude-code-nix";
};
# Managed VS Code Extensions (The "Clean" Way)
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs.vscode-fhs; package = pkgs.vscode-fhs;
@@ -38,24 +30,6 @@
}; };
}; };
# Automatically load the 1Password agent in your shell
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
initContent = ''
export SSH_AUTH_SOCK=~/.1password/agent.sock
'';
shellAliases = {
ll = "ls -l";
update = "sudo nixos-rebuild switch --flake ~/nixos#caesium";
nixos = "code ~/nixos";
};
};
home.sessionVariables = { home.sessionVariables = {
NPM_CONFIG_PREFIX = "/mnt/Projects/.npm-global/.npm-global"; NPM_CONFIG_PREFIX = "/mnt/Projects/.npm-global/.npm-global";
}; };
@@ -67,39 +41,4 @@
home.file.".npmrc".text = '' home.file.".npmrc".text = ''
prefix=/mnt/Projects/.npm-global/.npm-global prefix=/mnt/Projects/.npm-global/.npm-global
'' ; '' ;
home.file.".config/1Password/ssh/agent.toml".source = ./config.agent.toml;
# ~/.config (dotfiles)
xdg.enable = true;
xdg.configFile."ssh.conf".source = ./config.ssh.conf;
programs.ssh = {
enable = true;
enableDefaultConfig = false;
extraConfig = builtins.readFile ./config.ssh.conf;
matchBlocks = {
"*" = {
controlMaster = "auto";
controlPath = "~/.ssh/master-%r@%h:%p";
};
};
};
programs.git = {
enable = true;
signing.format = null;
settings.user = {
name = "Matthew Bessette";
email = "bessette.matthew94@gmail.com";
};
settings.init.defaultBranch = "main";
# This creates ~/.config/git/ignore and sets core.excludesFile
ignores = [
];
};
} }
+3 -1
View File
@@ -168,6 +168,8 @@
curl curl
python3 python3
nodejs_26 nodejs_26
home-manager
fastfetch
]; ];
programs.appimage = { programs.appimage = {
@@ -177,4 +179,4 @@
# --- SYSTEM VERSION --- # --- SYSTEM VERSION ---
system.stateVersion = "24.11"; # Or current stable version system.stateVersion = "24.11"; # Or current stable version
} }
-6
View File
@@ -1,6 +0,0 @@
[[ssh-keys]]
item = "1Password SSH Key" # The Title of the item in 1Password
# vault = "Work" # Optional: Specify the vault if names collide
[[ssh-keys]]
item = "Personal GitHub"
+20 -4
View File
@@ -58,6 +58,7 @@
let let
linuxSystem = "x86_64-linux"; linuxSystem = "x86_64-linux";
darwinSystem = "aarch64-darwin"; darwinSystem = "aarch64-darwin";
userConfigs = import ./variables.nix;
mkOverlays = sys: [ mkOverlays = sys: [
(final: prev: { (final: prev: {
unstable = import nixpkgsUnstable { unstable = import nixpkgsUnstable {
@@ -81,7 +82,6 @@
nixpkgs.overlays = mkOverlays linuxSystem; nixpkgs.overlays = mkOverlays linuxSystem;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
} }
nix-flatpak.nixosModules.nix-flatpak
./caesium.nixos.nix ./caesium.nixos.nix
]; ];
}; };
@@ -124,8 +124,14 @@
config.allowUnfree = true; config.allowUnfree = true;
overlays = mkOverlays linuxSystem; overlays = mkOverlays linuxSystem;
}; };
extraSpecialArgs = { inherit inputs; }; extraSpecialArgs = {
system = linuxSystem;
hostname = "caesium";
userConfig = userConfigs."mbessette";
inherit inputs;
};
modules = [ modules = [
nix-flatpak.homeManagerModules.nix-flatpak
./home.shared.nix ./home.shared.nix
./caesium.home.nix ./caesium.home.nix
]; ];
@@ -137,7 +143,12 @@
config.allowUnfree = true; config.allowUnfree = true;
overlays = mkOverlays darwinSystem; overlays = mkOverlays darwinSystem;
}; };
extraSpecialArgs = { inherit inputs; }; extraSpecialArgs = {
system = darwinSystem;
hostname = "hydrogen";
userConfig = userConfigs.mbessette;
inherit inputs;
};
modules = [ modules = [
./home.shared.nix ./home.shared.nix
./hydrogen.home.nix ./hydrogen.home.nix
@@ -151,7 +162,12 @@
config.allowUnfree = true; config.allowUnfree = true;
overlays = mkOverlays darwinSystem; overlays = mkOverlays darwinSystem;
}; };
extraSpecialArgs = { inherit inputs; }; extraSpecialArgs = {
system = darwinSystem;
hostname = "cleo-darwin";
userConfig = userConfigs."matthew.bessette";
inherit inputs;
};
modules = [ modules = [
./home.shared.nix ./home.shared.nix
./cleo.home.nix ./cleo.home.nix
+111 -2
View File
@@ -1,3 +1,112 @@
{ { pkgs, hostname, userConfig, ... }:
home.backupFileExtension = "before-nix"; let
onePassPath = if pkgs.stdenv.isDarwin
then "${userConfig.homeDirectory}/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
else "${userConfig.homeDirectory}/.1password/agent.sock";
ghosttyPkg = if pkgs.stdenv.isDarwin
then pkgs."ghostty-bin"
else pkgs.ghostty;
in {
home.stateVersion = "26.05";
home.username = userConfig.username;
home.homeDirectory = userConfig.homeDirectory;
home.sessionVariables.SSH_AUTH_SOCK = onePassPath;
xdg.enable = true;
xdg.configFile."ssh.conf".source = ./config.ssh.conf;
xdg.configFile."1Password/ssh/agent.toml".text = ''
[[ssh-keys]]
item = "${userConfig._1PassKeyName}"
vault = "${userConfig._1PassKeyVault}"
'';
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
initContent = ''
export SSH_AUTH_SOCK=~/.1password/agent.sock
'';
shellAliases = {
ll = "ls -l";
gst = "git status";
nix-update = "sudo nixos-rebuild switch --flake ~/nixos#${hostname}";
home-update = "home-manager switch --flake ~/nixos#${userConfig.username}@${hostname}";
};
};
programs.starship = {
enable = true;
enableZshIntegration = true;
# Optional custom settings (translates to ~/.config/starship.toml)
settings = {
# Line 1: ➜ folder git:(branch) [status]
format = "$character$directory$git_branch\${custom.git_dirty} ";
# Show current directory name only
directory = {
style = "bold cyan";
truncation_length = 1;
truncate_to_repo = false;
};
# git:(branch) styling
git_branch = {
format = "[git:\\([$branch](red)\\)](bold blue)";
};
# Bottom line prompt arrow
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
vicmd_symbol = "[](bold yellow)";
};
custom.git_dirty = {
when = "test -n \"$(git status --porcelain 2>/dev/null)\"";
format = " [](yellow)";
};
# Nix shell indicator module configuration
nix_shell = {
symbol = " ";
format = "via [$symbol$state]($style) ";
};
};
};
programs.ssh = {
enable = true;
enableDefaultConfig = false;
extraConfig = builtins.readFile ./config.ssh.conf;
settings = {
"*" = {
controlMaster = "auto";
controlPath = "~/.ssh/master-%r@%h:%p";
identityAgent = onePassPath;
};
};
};
programs.git = {
enable = true;
settings = {
user.name = userConfig.gitName;
user.email = userConfig.gitEmail;
init.defaultBranch = "main";
pull.rebase = false;
core.sshCommand = "ssh";
};
};
programs.ghostty = {
enable = true;
package = ghosttyPkg;
enableBashIntegration = true;
enableZshIntegration = true;
};
} }
+18
View File
@@ -0,0 +1,18 @@
{
mbessette = {
username = "mbessette";
homeDirectory = "/home/mbessette";
gitName = "Matthew Bessette";
gitEmail = "blade30912@gmail.com";
_1PassKeyName = "Personal SSH Key";
_1PassKeyVault = "Private";
};
"matthew.bessette" = {
username = "matthew.bessette";
homeDirectory = "/home/matthew.bessette";
gitName = "Matthew Bessette";
gitEmail = "matthew.bessette@hicleo.com";
_1PassKeyName = "Cleo SSH Key";
_1PassKeyVault = "Cleo";
};
}