mirror of
https://github.com/softinio/nix-config.git
synced 2026-01-31 23:16:54 -08:00
|
|
||
|---|---|---|
| .claude | ||
| programs | ||
| users | ||
| .stylua.toml | ||
| CLAUDE.md | ||
| config.nix | ||
| flake.lock | ||
| flake.nix | ||
| home.nix | ||
| LICENSE | ||
| nix-apps-activation.nix | ||
| README.md | ||
| remove-nix-apps.sh | ||
nix-config
My Nix Configuration for macOS using nix-darwin and home-manager.
Supports both Apple Silicon and Intel Macs, with multi-user support for shared machines.
Quick Start
# First time setup (after installing Nix)
nix run nix-darwin -- switch --flake ~/.config/nixpkgs#<config-name>
# Subsequent rebuilds
darwin-rebuild switch --flake ~/.config/nixpkgs#<config-name>
Available configurations: salarm3max (Apple Silicon), salarintel (Intel)
User Profiles
User-specific settings (name, email, etc.) are stored in users/*.nix files.
Example user profile (users/myusername.nix):
{
username = "myusername";
fullName = "My Full Name";
email = "me@example.com";
gitSigningKey = "~/.ssh/id_ed25519.pub"; # or null if not using signing
jujutsuBranchPrefix = "myprefix";
}
Then reference it in your machine configuration in flake.nix:
myMachine = mkDarwinConfig {
system = "aarch64-darwin";
hostname = "my-machine";
users = [ (import ./users/myusername.nix) ];
};
For shared machines with multiple users:
sharedMachine = mkDarwinConfig {
system = "aarch64-darwin";
hostname = "shared-machine";
users = [
(import ./users/user1.nix)
(import ./users/user2.nix)
];
};
Documentation
See CLAUDE.md for detailed documentation on:
- Repository architecture and structure
- Adding new programs
- Adding new machine configurations
- Common commands and aliases
- Customization options