bsamiee/parametric_forge

My Nix based repo for NixOS/Darwin configuration, dotfiles, and more

2 stars0 forksUpdated Jan 12, 2026
npx skills add bsamiee/parametric_forge

README

Parametric Forge

Nix Flake Home Manager nixpkgs Bridge Host Secrets License

Parametric Forge is a deterministic macOS workspace built with Nix flakes, nix-darwin, and Home Manager. It targets computational design (Rhino/Grasshopper/BIM), heavy media, and modern development stacks with reproducible tooling, tuned defaults, and strict XDG hygiene.

At a glance
  • Scope: One flake drives macOS defaults, GUI apps, CLI tools, fonts, overlays (Yazi + sqlean), and cache policy.
  • Secrets: 1Password-backed secrets + SSH keep credentials out of the repo; GitHub CLI stays writable.
  • Terminal mesh: WezTerm → Zellij → Yazi with Neovim remote control, Starship, Atuin, fzf-tab, and carapace.
  • Toolchains: Python 3.13 (uv/ruff/mypy), Node (fnm + pnpm), Lua + LSPs, SQLite/duckdb with sqlean/spatialite/vec, dotnet 8 for Rhino.
  • Assets: CAD/BIM/media formats stay versionable via LFS defaults; ffmpeg/imagemagick tuned for previews.

Layout

.
├── flake.nix / flake.lock          # Inputs/outputs, overlay export, devshell, formatter
├── hosts/
│   └── darwin/default.nix          # MacBook host: nix-darwin + nix-homebrew + Home Manager
├── modules/
│   ├── common/                     # Nix daemon perf/cache + Cachix post-build hook
│   ├── darwin/                     # macOS defaults, fonts, homebrew taps/brews/casks/whalebrew
│   └── home/                       # Home Manager: XDG, env, aliases, programs, scripts, assets
│       ├── assets/                 # ASCII + carbon sources/renders
│       ├── environments/           # Session vars for shell/languages/media/secrets/containers
│       ├── programs/               # Apps (wezterm/zellij/yazi), shell-tools, git-tools, nix-tools, zsh
│       ├── scripts/                # Integration wrappers (nvim/zellij/yazi)
│       └── xdg.nix                 # XDG base dirs + scaffolding
├── overlays/                       # Upstream Yazi overlay passthrough + custom sqlean
└── .archive/                       # Retired configs kept for reference

Quick Start

  1. Install Nix (Determinate):
    curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
    
  2. Sign into 1Password CLI:
    op signin <account>
    
  3. Clone:
    git clone https://github.com/bsamiee/Parametric_Forge.git ~/Parametric_Forge
    
  4. Apply mac host:
    nix run nix-darwin -- switch --flake ~/Parametric_Forge#macbook
    
  5. Rebuild after edits:
    darwin-rebuild switch --flake ~/Parametric_Forge#macbook
    

Secrets + SSH

  • Secret references: modules/home/environments/secrets.nix; template written by modules/home/xdg.nix to ~/.config/op/env.template.
  • Invocation: op run --env-file ~/.config/op/env.template -- <command> keeps secrets out of git.
  • SSH agent: modules/home/programs/shell-tools/ssh.nix points to ~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock.
  • GitHub CLI: stays writable because ~/.config/gh is unmanaged by Home Manager.

Terminal Mesh (WezTerm ↔ Zellij ↔ Yazi ↔ Neovim)

  • WezTerm: Lua modules (modules/home/programs/apps/wezterm) split appearance/keys/mouse/behavior/integration; auto-attaches to Zellij sessions.
  • Zellij: modules/home/programs/apps/zellij ships Dracula palette, layouts, and zjstatus; one color map reused by theme and plugins.
  • Yazi: modules/home/programs/apps/yazi themed to match; wrapper scripts (modules/home/scripts/integration/zellij) set EDITOR=forge-edit.sh so Yazi hands edits to Neovim.
    • forge-edit.sh uses per-session nvr sockets; WezTerm focuses the adjacent pane before sending files.
  • Shell:

...

Read full README

Publisher

bsamieebsamiee

Statistics

Stars2
Forks0
Open Issues0
CreatedAug 25, 2025