[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92760":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":27,"discoverSource":28},92760,"dotfiles","kunchenguid\u002Fdotfiles","kunchenguid","Kun's dotfiles for agentic engineering","",null,"Nix",122,63,2,1,0,17,47.12,"MIT No Attribution",false,"main",true,[],"2026-07-22 04:02:07","# dotfiles\n\nWatch the walkthrough: https:\u002F\u002Fyoutu.be\u002F5N-okeDdIuI\n\nMy personal Mac setup, managed with nix-darwin and home-manager.\nOne repo, one command, and a fresh Mac ends up configured the same way every time.\n\n## Contributing \u002F Using This Repo\n\nThese are my personal dotfiles, shared publicly so people can read them, learn from them, and fork them freely.\nFeature requests and pull requests are not accepted here, and PRs are auto-closed.\nIf you find a bug, please open a GitHub Issue using the bug report template.\n\n## What you get\n\nRunning the switch builds:\n\n- System settings (dark mode, key repeat, dock, Finder, trackpad)\n- Homebrew apps (casks and CLI tools)\n- Nix user packages (ripgrep, fd, fzf, jq, lazygit, Neovim, Hack Nerd Font)\n- Shell (zsh, aliases, starship prompt)\n- Editor (Neovim config with the rose-pine moon theme)\n- Terminal (WezTerm config with the rose-pine moon theme)\n- Agent configs (Claude, Codex, opencode all share one AGENTS.md)\n\n## Prerequisites\n\n- Apple Silicon Mac, by default.\n- Intel Mac: change one line.\n  In `configuration.nix`, set `nixpkgs.hostPlatform = \"x86_64-darwin\";` (the comment right there tells you the same thing).\n\n## Fresh-machine setup\n\nOn a brand new Mac, from a bare clone of this repo:\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fkunchenguid\u002Fdotfiles.git\ncd dotfiles\n```\n\nBefore you run it: review \"Make it yours\" below.\nChange the host label or CPU architecture if needed, and read the Homebrew cleanup warning.\n`bootstrap.sh` applies the config to your machine, so do this first.\n\n```sh\n.\u002Fbootstrap.sh\n```\n\n`bootstrap.sh` does four things, in order:\n\n1. Installs Determinate Nix, if it isn't already installed.\n2. Symlinks this repo to `~\u002F.dotfiles`.\n   This has to happen before the first build, because `home.nix` points at config files through `~\u002F.dotfiles`.\n3. Checks the `user` configured in `flake.nix` against your actual macOS username, and offers to fix it for you if they differ.\n4. Runs the first `darwin-rebuild switch`.\n   It fetches the `darwin-rebuild` tool from the nix-darwin 26.05 release branch, then applies this repo's locked flake config.\n\nAfter that, `darwin-rebuild` exists and you're on the normal workflow below.\n\n### Validate without applying\n\nOnce Nix is installed (`bootstrap.sh` step 1 handles that), you can check that the config builds without touching your system - handy when you have edited something:\n\n```sh\nnix flake check --no-build\nnix build .#darwinConfigurations.mac.system --dry-run\n```\n\nIf you renamed the host label in \"Make it yours\", substitute your label for `mac` in these commands.\n\n## Daily use\n\nEdit the config files in place, then apply:\n\n```sh\n.\u002Frebuild.sh\n```\n\nThat's it.\nNo separate build-and-copy step.\n\n## Make it yours\n\nThis repo is mine.\nIf you clone it, review these before you run `bootstrap.sh`:\n\n- **Username**: run `.\u002Fbootstrap.sh` (it detects your macOS username and offers to set it) OR change the single `user = \"kunchen\"` line in `flake.nix`.\n  Everything else (`configuration.nix`, `home.nix`, home directory paths) is threaded from that one variable.\n- **Host label** `\"mac\"`, in three places: `flake.nix` (the `darwinConfigurations.\"mac\"` name), `rebuild.sh:5` (the `#mac` at the end of the flake reference), and `bootstrap.sh`'s first-switch command (also `#mac`).\n  All three have to match.\n- **CPU architecture**, `hostPlatform` in `configuration.nix` (see Prerequisites above).\n\n**Git identity:** this config deliberately does not set your git name or email.\nGit will stop your first commit and tell you to set them (`git config --global user.name \"Your Name\"` and `git config --global user.email you@example.com`).\nIf you'd rather manage that declaratively, add this back to `home.nix` with your own identity:\n\n```nix\nprograms.git = {\n  enable = true;\n  settings.user = {\n    name = \"Your Name\";\n    email = \"you@example.com\";\n  };\n};\n```\n\n**Homebrew cleanup warning:** `configuration.nix` sets `homebrew.onActivation.cleanup = \"zap\"`.\nThat means every time you switch, Homebrew removes any package or cask on your machine that isn't listed in the `brews` and `casks` arrays in `configuration.nix`.\nIf you already have Homebrew stuff installed that isn't in that list, the first switch will uninstall it.\nRead through `brews` and `casks` before you run `bootstrap.sh` or `rebuild.sh` for the first time, and add anything you want to keep.\n\n**About `herdr`:** it's in the `brews` list.\nIt's a real public Homebrew formula (`brew info herdr` finds it in homebrew-core, no tap needed), so it will install fine.\nIf you don't use it, just remove it from `brews` in your copy.\n\n**Heads-up:**\n\n- `home\u002FAGENTS.md` is my personal agent policy, and `home.nix` installs it for Claude, Codex, and opencode.\n  If you clone this repo, you'd silently inherit my agent instructions - edit or delete `home\u002FAGENTS.md` if you don't want that.\n- The `cc` and `co` shell aliases in `home.nix` are high-agency shortcuts: `claude --dangerously-skip-permissions` and `codex --full-auto`.\n  They're convenient for me, but know what they do before you use them.\n\n## Repo tour\n\n- `flake.nix` - the entry point.\n  Wires up nixpkgs, nix-darwin, home-manager, and nix-homebrew, and declares the `mac` machine.\n- `configuration.nix` - system-level config: macOS defaults, Homebrew.\n- `home.nix` - user-level config: shell, packages, prompt, and the symlinks described below.\n- `rebuild.sh` - re-applies the config after the first switch.\n  Run this every time you make a change.\n- `home\u002F` - the actual config files that get symlinked into place (Neovim, WezTerm, herdr, Claude settings, the shared `AGENTS.md`).\n\n## How the symlinks work\n\nThe files under `home\u002F` are the real files - editing them here is editing your live config, no rebuild needed to see the change in your editor.\n`home.nix` uses `mkOutOfStoreSymlink` to point paths like `~\u002F.config\u002Fnvim` straight at `home\u002F.config\u002Fnvim` in this repo, so the two never drift out of sync.\nYou only run `.\u002Frebuild.sh` when you change something that isn't just a symlinked file, like a package list or a system default.\n\n## Notes\n\nThe first time you launch `nvim`, it bootstraps [lazy.nvim](https:\u002F\u002Fgithub.com\u002Ffolke\u002Flazy.nvim) by cloning plugins from GitHub.\nThat needs network access once; after that it's offline.\nNeovim and WezTerm both use the rose-pine moon theme.\nNeovim keeps italics off and uses a transparent background on macOS, Windows, and WSL so it matches the terminal setup.\n\n## License\n\nThis repo is licensed under MIT No Attribution.\nSee `LICENSE`.\n","这是一个基于 Nix 的 macOS 系统配置管理项目，用于自动化部署个人开发环境。核心功能包括通过 nix-darwin 和 home-manager 统一管理系统设置、Homebrew 应用、Nix 用户软件包（如 Neovim、fzf、lazygit）、zsh 与 Starship 终端环境、WezTerm 和 Neovim 主题配置，以及 AI 编程代理（Claude、Codex 等）的统一接入规范。技术特点是声明式配置、可复现构建、单命令初始化与增量更新。适用于 Apple Silicon Mac 开发者快速重建一致、可维护的本地开发环境，尤其适合偏好 Nix 生态与 agentic 工作流的技术用户。","2026-07-10 02:30:22","CREATED_QUERY"]