ryoppippi's dotfiles, managed as a Nix flake: nix-darwin plus Home Manager on macOS, standalone Home Manager on Linux.
flake.nix— inputs only; the outputs are flake-parts modules undernix/flake/nix/flake/— flake-parts modules:apps/,hosts/,formatter.nix,pkgs.nixnix/mk-pkgs.nix— the overlaid nixpkgs instance shared byperSystemand the hostsnix/modules/home/— cross-platform Home Manager modules (packages, programs, dotfile symlinks)nix/modules/darwin/— macOS system settings, Homebrew, OmniWMnix/modules/linux/— Linux-only modulesnix/overlays/— custom packages, also exposed as flakepackagesnix/packages/node/— Node packages built with Nixfish/,nvim/,karabiner/— plain config, symlinked or generated into place by Home Manageragents/skills/,agents/shared/— skills and instruction fragments shared by Claude Code and Codexregistry/sources/— pinned external skill repositories
-
Install Nix:
curl -sSfL https://artifacts.nixos.org/nix-installer | sh -s -- install --enable-flakes -
Clone with ghq:
nix shell nixpkgs#ghq nixpkgs#git --command ghq get github.com/ryoppippi/dotfiles cd "$(nix shell nixpkgs#ghq --command ghq root)/github.com/ryoppippi/dotfiles"
-
Sign in to the Mac App Store (
open -a "App Store") somasAppscan install. -
Apply the configuration. This also installs Homebrew:
sudo xcodebuild -license accept nix --accept-flake-config run .#switch exec fish
curl --proto '=https' --tlsv1.2 -sSf -L https://install.nixos.org | sh -s -- install
nix shell nixpkgs#ghq nixpkgs#git --command ghq get github.com/ryoppippi/dotfiles
cd "$(nix shell nixpkgs#ghq --command ghq root)/github.com/ryoppippi/dotfiles"
nix run .#switchIf Nix hits the GitHub API rate limit, load a token into GITHUB_TOKEN from a
credential helper or password manager, then retry. Never paste the token into
the command line or commit it.
NIX_CONFIG="access-tokens = github.com=$GITHUB_TOKEN" \
nix --accept-flake-config run .#switchFlakes only see tracked, staged files, so git add changed paths before switching.
| Command | What it does |
|---|---|
nix run .#switch |
Build and apply the darwin (macOS) or Home Manager (Linux) config |
nix run .#build |
Build without applying |
nix run .#fmt |
Run treefmt (-- --fail-on-change is what CI runs) |
nix run .#update |
Update every flake input |
nix run .#update-ai-tools |
Update only the llm-agents input |
nix run .#update-node-packages |
Refresh nix/packages/node/ |
nix run .#skills-sources-lock |
Re-resolve the external skill pins in registry/sources/ |
nix run .#lazy2nix |
Regenerate Nix-served lazy.nvim plugin sources from the lock |
nix run .#nvim-restore |
Restore Neovim plugins from nvim/lazy-lock.json |
Scheduled GitHub Actions open PRs for flake inputs, overlays, node packages, and skill pins.