{"id":44443623,"url":"https://github.com/mikesplain/dotfiles","last_synced_at":"2026-02-12T15:12:01.616Z","repository":{"id":14400082,"uuid":"76493339","full_name":"mikesplain/dotfiles","owner":"mikesplain","description":"My dotfiles","archived":false,"fork":false,"pushed_at":"2026-02-02T14:01:09.000Z","size":8190,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-02T15:53:42.982Z","etag":null,"topics":["brew","dotfiles","machine"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikesplain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-12-14T20:13:20.000Z","updated_at":"2026-02-02T14:01:17.000Z","dependencies_parsed_at":"2025-12-29T08:06:25.277Z","dependency_job_id":null,"html_url":"https://github.com/mikesplain/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mikesplain/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikesplain","download_url":"https://codeload.github.com/mikesplain/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29369649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brew","dotfiles","machine"],"created_at":"2026-02-12T15:11:59.434Z","updated_at":"2026-02-12T15:12:01.610Z","avatar_url":"https://github.com/mikesplain.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mike Splain's Nix Dotfiles\n\n[![Nix Test](https://github.com/mikesplain/dotfiles/actions/workflows/nix-test.yaml/badge.svg)](https://github.com/mikesplain/dotfiles/actions/workflows/nix-test.yaml)\n\nOpinionated `nix-darwin` and Home Manager configuration for bringing a clean macOS install up to a reproducible workstation in one rebuild.\n\n## Quick Start\n\n1. Install Nix on macOS (if it is not already installed):\n\n   ```bash\n   sh \u003c(curl -L https://nixos.org/nix/install)\n   ```\n\n2. Clone the dotfiles and enter the repository:\n\n   ```bash\n   git clone https://github.com/mikesplain/dotfiles.git ~/.dotfiles\n   cd ~/.dotfiles\n   ```\n\n3. Perform the first system activation with the same command CI runs:\n\n   ```bash\n   nix run nix-darwin/master#darwin-rebuild --extra-experimental-features \"nix-command flakes\" -- switch --flake .\n   ```\n\n4. For day-to-day updates after the initial activation:\n\n   ```bash\n   darwin-rebuild switch --flake .\n   ```\n\n5. Drop into the development shell whenever you need project tooling (`nixfmt`, `prettier`, git hooks, etc.):\n\n   ```bash\n   nix develop\n   ```\n\nFor first-time setups, `./bootstrap.sh` installs basic prerequisites before the Nix rebuild, while the flake handles all macOS and user configuration on subsequent runs.\n\n## Project Layout\n\n```\nflake.nix             # Single entry point wiring hosts, Home Manager, and shared inputs\nflake.lock            # Pinned flake inputs\ndarwin/               # macOS (nix-darwin) modules\n  default.nix         # Base host configuration\n  homebrew.nix        # Brew taps/casks (kept OS-specific)\nhome/                 # Home Manager modules (per-user programs, services, dotfiles)\n  default.nix         # Aggregates user-level modules\n  git.nix             # Git configuration and templates\n  programs.nix        # CLI and application enablement\n  shell.nix           # Shell environment (zsh, completions)\n  tmux.nix            # Tmux defaults and theme\ntemplates/            # Reusable text assets (gitconfig templates, placeholder secrets)\ndevshell.nix          # Development shell definition for contributors\nbootstrap.sh          # Convenience script for bootstrapping fresh machines\n```\n\n## Everyday Commands\n\n- `darwin-rebuild switch --flake .` — Apply configuration changes to the current machine.\n- `nix develop` — Enter the dev shell with formatters and pre-commit hooks configured.\n- `pre-commit run --all-files` — Lint and format Nix and text assets to match CI.\n- `nix flake update` — Refresh inputs and rewrite `flake.lock` when bumping dependencies.\n\n## Validation \u0026 Testing\n\n- Run `darwin-rebuild switch --flake .` (or the CI command from Quick Start) after edits to confirm the macOS build succeeds.\n- Use `nix flake check` to evaluate Home Manager modules on both `aarch64-darwin` and `x86_64-darwin`.\n- Source the interactive shell with `zsh -vc \"source ~/.zshrc\"` to ensure the login environment stays clean.\n\n## Troubleshooting\n\n### Reinstall mount error\n\nIf you hit a mount error while reinstalling Nix, ensure `/sbin` is on your `PATH`:\n\n```bash\nexport PATH=\"/sbin:${PATH}\"\nsh \u003c(curl -L https://nixos.org/nix/install)\n```\n\n## Uninstallation\n\n```bash\n# Ensure nixpkgs is configured\nnix-channel --add https://nixos.org/channels/nixpkgs-unstable\nnix-channel --update\n\n# Remove the nix-darwin configuration (may require multiple runs)\nnix --extra-experimental-features \"nix-command flakes\" run nix-darwin#darwin-uninstaller\n\n# Uninstall Nix itself\n/nix/nix-installer uninstall\n\n# Troubleshoot any disk access issues\n/usr/sbin/diskutil\n/bin/launchctl\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikesplain%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikesplain%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikesplain%2Fdotfiles/lists"}