Cross-platform dotfiles managed by chezmoi + mise.
Linux / macOS / WSL / Windows / Codespaces / Dev Container で、できるだけ同じ運用感を保つための dotfiles である。設定ファイルは chezmoi で管理し、開発ツールのバージョンは mise でそろえ、GitHub Copilot CLI 向けの指示・フック・スキルも同じリポジトリで管理する。
- 設定ファイルの配布:
chezmoiテンプレートで OS ごとの差分を吸収する - ツールバージョンの固定:
miseと lockfile で取得元と版をそろえる - Copilot CLI の共通設定: カスタム指示、フック、スキルを管理する
- 安全寄りの既定値:
gitleaksの pre-commit フックと Copilot Guard を組み込む
詳細は docs/architecture.md と docs/copilot-cli.md を参照。
| 環境 | セットアップ | 補足 |
|---|---|---|
| Linux / macOS / WSL | Linux / macOS / WSL | macOS は Apple Silicon のみ。WSL は初回 windowsUser 入力が必要 |
| GitHub Codespaces | GitHub Codespaces | 非対話セットアップのため一部設定を省略 |
| Dev Container (ローカル) | Dev Container | mise install --yes は起動後に手動実行 |
| Windows | Windows | copilot は DSC + winget で導入 |
git clone https://github.com/torumakabe/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh初回実行時に次を聞かれる。
- Windows username: WSL のみ。1Password の WSL 連携パスに使う
- Corp username: 任意。企業用 Git 設定に使う
mise install がレート制限で失敗した場合は docs/operations.md を参照。
GitHub の dotfiles リポジトリに登録すると自動適用される。
corpUser/windowsUserの入力は省略される- 1Password SSH エージェントが使えないため、コミット署名は自動で無効化する
参考: Codespaces docs
VS Code の Dotfiles 設定で次を指定する。
- Repository:
torumakabe/dotfiles - Install Command:
install.sh
コンテナ起動後に手動で実行する。
gh auth login
GITHUB_TOKEN=$(gh auth token) mise install --yesmise install は作成時にはスキップする。追加の注意点は docs/troubleshooting.md を参照。
このリポジトリ自体を Dev Container で開発する場合は .devcontainer/devcontainer.json を使う。構成の意図と起動後の手順は docs/operations.md を参照。
winget install twpayne.chezmoi
chezmoi init --apply torumakabe
winget configure -f "$(chezmoi source-path)\..\reference\windows\configuration.dsc.yaml"PowerShell Profile のローダー設定が未追加なら、初回のみ以下を実行する。
if (!(Test-Path $PROFILE)) { New-Item -Path $PROFILE -Type File -Force }
$line = '. "$env:USERPROFILE\PowerShell_profile.ps1"'
if (!(Select-String -Path $PROFILE -SimpleMatch $line -Quiet)) {
Add-Content -Path $PROFILE -Value $line
}残りのツールは mise で導入する。
gh auth login
$env:GITHUB_TOKEN = (gh auth token); mise install; $env:GITHUB_TOKEN = $nullcopilot は DSC 側で導入するため、Windows では mise の対象外である。
chezmoi 管理下のファイルはホーム側を直接編集せず、chezmoi edit かソース側の編集を使う。
chezmoi edit ~/.zshrc
chezmoi diff
chezmoi apply
chezmoi updatemise 管理ツールの更新や lockfile 再生成は docs/operations.md を参照。
docs/operations.md:miseの更新、lockfile 再生成、pre-commit フック管理、run_once_*の再実行docs/architecture.md: ディレクトリ構造、設計判断、プラットフォーム分岐、Copilot Guard の構成docs/copilot-cli.md: Copilot CLI の管理対象、フック、copilot-guardrails、監査ログdocs/troubleshooting.md: よくある失敗と復旧手順