Skip to content

Repository files navigation

dotfiles

スクリーンショット 2026-07-16 20 56 37

Personal macOS configuration managed with nix-darwin and Home Manager.

Included configurations

  • Zsh and Oh My Zsh
  • Git
  • Ghostty
  • Starship
  • JankyBorders
  • herdr
  • Zed
  • Neovim

Architecture

  • nix-darwin manages Nix settings and imports the modules under nix/darwin/.
  • nix-homebrew manages the Homebrew installation and trust for the required third-party formulae.
  • Home Manager manages Zsh, Oh My Zsh, Git, Neovim, Starship, and application settings under nix/home/.
  • GitHub CLI and ripgrep are installed from Nix.
  • Homebrew remains responsible for macOS-specific utilities, GUI applications, fonts, Codex, and Claude Code.
  • Home Manager generates application configuration files from the Nix modules.
  • Large Zed theme data is kept separately under assets/zed/themes/.
  • Zed and Ghostty are installed as Homebrew casks; their settings remain managed by Home Manager.
  • Nix garbage collection removes generations older than 30 days every Sunday.
  • GitHub Actions checks formatting and builds the macOS configuration on pushes and pull requests.
  • A weekly workflow updates flake.lock, verifies the result, and opens a pull request.
  • Existing files are preserved once with the .hm-backup-20260724 suffix during migration.

GNU Stow and the old standalone Brewfile bootstrap are no longer used.

Layout

nix/
├── darwin/    # System packages and Homebrew declarations
└── home/      # Shell, CLI, and application settings

assets/
└── zed/themes/  # Zed theme JSON assets

.github/workflows/
├── check.yml              # Format, flake, and macOS build checks
└── update-flake-lock.yml  # Weekly verified dependency update PR

Setup

Nix and Homebrew must already be installed.

git clone https://github.com/kobadaidesu/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

After the first installation, apply changes with:

sudo darwin-rebuild switch \
  --flake "path:$HOME/dotfiles#KobayashinoMacBook-Pro"

Update pinned inputs explicitly:

nix flake update --flake ~/dotfiles

Local-only data

Authentication credentials, API keys, application logs, session history, and generated databases are intentionally not tracked.

About

macos, nix, zed, herdr

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages