Initial: Nix flake reproducing MacBook capabilities on x86_64 NixOS
- pi coding agent (from sscoble/pi-mono Forgejo mirror) - qmd vault search (via bunx @tobilu/qmd) - zsh + oh-my-zsh + developer tooling - home-manager config for sscoble user - Forgejo Action to check pi version drift daily
This commit is contained in:
commit
8155b9b64c
5 changed files with 461 additions and 0 deletions
69
README.md
Normal file
69
README.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# 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)
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue