Nix flake reproducing MacBook software capabilities for x86_64 NixOS laptops
Find a file
2026-05-12 20:15:41 -07:00
.forgejo/workflows Initial: Nix flake reproducing MacBook capabilities on x86_64 NixOS 2026-05-12 20:13:50 -07:00
home Add neovim, enrich user packages and nvim config 2026-05-12 20:15:41 -07:00
modules Add neovim, enrich user packages and nvim config 2026-05-12 20:15:41 -07:00
flake.nix Initial: Nix flake reproducing MacBook capabilities on x86_64 NixOS 2026-05-12 20:13:50 -07:00
README.md Initial: Nix flake reproducing MacBook capabilities on x86_64 NixOS 2026-05-12 20:13:50 -07:00

Scobleclaw Laptop Config

Nix flake that reproduces MacBook software capabilities on an x86_64 NixOS laptop.

What it installs

Tool Purpose Source
pi Coding agent (TUI) sscoble/pi-mono (Forgejo mirror of badlogic/pi-mono)
qmd Vault search @tobilu/qmd (npm, wrapped via bunx)
git Version control nixpkgs
nodejs JavaScript runtime nixpkgs
bun Fast JS runtime + bundler nixpkgs
zsh Shell (+ oh-my-zsh, autosuggestions, syntax highlighting) nixpkgs
python3 + uv Python tooling nixpkgs
docker Containers nixpkgs
tailscale Mesh VPN nixpkgs
ripgrep, fd, jq, bat, eza, delta Modern CLI tools nixpkgs
tmux Terminal multiplexer nixpkgs
nerd fonts JetBrains Mono, Fira Code nixpkgs

First-time setup (new laptop)

# 1. Install NixOS (minimal ISO)
# 2. Clone this repo
git clone https://os.scoble.me/forgejo/sscoble/laptop-config.git ~/laptop-config

# 3. First build (this will fail — copy the npmDepsHash from error output)
nix build ~/laptop-config#pi-coding-agent

# 4. Edit flake.nix: set npmDepsHash to the value from step 3

# 5. Rebuild system
sudo nixos-rebuild switch --flake ~/laptop-config#laptop

# 6. Restore personal configs
# Copy from backup:
#   ~/.pi/agent/SYSTEM.md
#   ~/.pi/agent/models.json
#   ~/.pi/agent/mcp.json
#   ~/.pi/agent/settings.json
#   ~/.ssh/id_ed25519

Updating pi

The pi-mono repo is mirrored from upstream and syncs every 24h.

# Force a mirror sync (on n97-mini)
ssh n97-mini 'sudo -u forgejo forgejo admin repo sync --config /var/lib/forgejo/custom/conf/app.ini sscoble/pi-mono'

Repo structure

laptop-config/
├── flake.nix           # Main entry: overlay, nixosConfig, devShell
├── modules/
│   └── laptop.nix      # NixOS system module (packages, shell, fonts, SSH)
├── home/
│   └── sscoble.nix     # home-manager user config (git, tools, pi dirs)
└── README.md

Forgejo Actions

An action keeps pi up to date — when upstream badlogic/pi-mono releases a new tag, the Forgejo mirror picks it up automatically. A scheduled workflow in this repo checks for tag drift daily.