Find a file
Salar Rahmanian 03d7c3cc6d
Merge pull request #24 from softinio/softinio-push-vmxukyxqzsmo
updates to nixvim, remove wezterm (🥲) and other tweaks
2026-01-26 23:37:33 -08:00
.claude update to nixvim scala metals and copilot configs 2025-10-11 15:12:52 -07:00
programs nixvim: make splits to be retro green line as separator 2026-01-25 23:56:48 -08:00
users Support multiple users on same machine 2026-01-25 19:34:27 -08:00
.stylua.toml Added stylua and reformated lua files 2021-07-15 08:19:22 -07:00
CLAUDE.md Support multiple users on same machine 2026-01-25 19:34:27 -08:00
config.nix run nixfmt on repo 2024-05-18 11:31:35 -07:00
flake.lock Flake update and related changes 2026-01-24 09:40:25 -08:00
flake.nix Support multiple users on same machine 2026-01-25 19:34:27 -08:00
home.nix nixvim: correction to conform to run formatter after save to resolve scalafmt timeout 2026-01-25 19:56:33 -08:00
LICENSE Create LICENSE 2021-08-26 18:09:35 -07:00
nix-apps-activation.nix add nix activate script 2026-01-05 23:27:28 -08:00
README.md Support multiple users on same machine 2026-01-25 19:34:27 -08:00
remove-nix-apps.sh add nix activate script 2026-01-05 23:27:28 -08:00

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