macOS環境の設定ファイルを管理するリポジトリ。シンボリックリンク方式で、実ファイルをこのリポジトリ内に置き、ホームディレクトリからリンクを張る。
dotfiles/
├── setup.sh # セットアップスクリプト(シンボリックリンク作成)
├── macos.sh # macOS設定の自動適用スクリプト
├── Brewfile # Homebrewパッケージ一覧
├── zsh/
│ ├── .zshrc # シェル設定(anyenv, direnv, PATH)
│ ├── .zprofile # ログインシェル設定(Homebrew)
│ └── .zshenv # 全シェル共通の環境変数
├── git/
│ └── .gitconfig # Gitのグローバル設定
├── nodenv/
│ └── default-packages # Node.jsインストール時に自動導入するnpmパッケージ
├── gh/
│ └── extensions # gh拡張機能一覧
├── claude/
│ ├── CLAUDE.md # グローバル指示
│ ├── settings.json # Claude Code設定
│ ├── skills/ # カスタムスキル
│ └── hooks/ # フック設定
└── docs/
└── tools/ # 開発ツールのドキュメント
調子が悪い場合や、新しいMacへ移行する前の既存Macの整理時に実施する。初期化後は「新しいマシンでのセットアップ」に従う。
参考: Macを消去して出荷時の設定にリセットする - Apple公式
- 重要なデータをバックアップする(Time Machineまたはクラウド・外付けディスクへ手動コピー)
- Raycast: Advanced → ExportでDropboxに設定ファイルをエクスポートする
- Apple IDをサインアウトする(システム設定 → Apple ID → サインアウト)
- Find My Macが有効な場合、サインアウトせずに初期化するとアクティベーションロックが残り、初期化後の再セットアップ時にApple IDとパスワードの入力が必要になる
- 「すべてのコンテンツと設定を消去」を使う場合はウィザードがサインアウトまで誘導するため、事前の手動対応は不要
- 売却・譲渡・貸与PCの返却時は必須(サインアウトしないと次の所有者がMacを使えなくなる)
- Bluetoothデバイスのペアリングを解除する
- 自分で再使用する場合は不要。Mac側のペアリング情報は初期化で消えるため、初期化後にデバイス側から再ペアリングすればよい
- 売却・譲渡・貸与PCの返却時は推奨(デバイス側に情報が残り、相手が同じデバイスを使っている場合に誤接続のリスクがある)
macOS 12 Monterey以降(Apple SiliconまたはT2チップ搭載Mac):
システム設定 → 一般 → 転送またはリセット → すべてのコンテンツと設定を消去
上記が使えない場合(復元モード):
- Apple Silicon: 電源ボタンを長押し → 「オプション」を選択
- Intel Mac: 再起動して
Command + Rを長押し
復元モード内で以下を実施する:
- Disk Utility → Macintosh HDを選択 → 消去(APFS形式)
- macOSを再インストール
- macOSのセットアップウィザードでWi-Fiの接続とApple IDのサインインを行う
- SafariでNotionにログインする(各種情報を参照するため)
- HHKBのMac用ドライバをインストールして設定する
- キーボード設定アシスタントは表示されない場合もある。表示された場合は指示に従う
- 外部ディスプレイとマウスを設定する(Macの詳細設定は後の手順で行うため、作業しやすくするための最小限の設定)
- システム設定 → ディスプレイ → 配置で外部モニターを主ディスプレイに設定する
- 解像度を変更する(27インチ4Kの場合は3008×1692)
- マウスを接続し、システム設定 → マウスで速度を最大に設定する
-
Command Line Toolsをインストールする
xcode-select --install
-
Homebrewをインストールする
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Apple Siliconの場合、インストール後に一時的にPATHを通す(.zprofileで永続化される) eval "$(/opt/homebrew/bin/brew shellenv)"
-
ディレクトリを作成してdotfilesをセットアップする
# 作業ディレクトリを作成する # MY: 個人リポジトリ / PROJECT: 案件リポジトリ / Screenshot: スクリーンショット保存先 mkdir -p ~/Documents/MY ~/Documents/PROJECT ~/Documents/Screenshot # dotfilesをクローンしてパッケージをインストールする(SSH設定前のためHTTPSを使用) git clone https://github.com/manabuyasuda/dotfiles ~/Documents/MY/dotfiles brew bundle install --file=~/Documents/MY/dotfiles/Brewfile --verbose cd ~/Documents/MY/dotfiles && ./setup.sh
brew bundle installが完了すると以下のように表示される:Homebrew Bundle complete! XX Brewfile dependencies now installed.アプリによってはパスワードを求められる場合がある。
AnkerWorkでエラーになる場合: ロックファイルが残っていると競合で失敗することがある。ロックファイルを削除して再実行する:
rm -f ~/Library/Caches/Homebrew/downloads/*AnkerWork*.incomplete brew bundle install --file=~/Documents/MY/dotfiles/Brewfile --verbose
setup.shは以下を実行する。何度実行しても安全(冪等)。- 既存ファイルを
~/.dotfiles_backup/にバックアップしてからシンボリックリンクを作成 - nodenv-default-packagesプラグインのインストールとdefault-packagesのリンク
gh/extensionsに記載されたgh拡張機能のインストール
- 既存ファイルを
-
SSH鍵を設定してGitHubに登録する
# 鍵を生成(-fは省略可能) ssh-keygen -t ed25519 -f ~/.ssh/<ファイル名> # macOSキーチェーンに登録(再起動後もパスフレーズ入力が不要になる) ssh-add --apple-use-keychain ~/.ssh/<ファイル名> # 公開鍵をクリップボードにコピーしてブラウザでGitHubに登録する pbcopy < ~/.ssh/<ファイル名>.pub open https://github.com/settings/ssh/new
~/.ssh/configに設定を追記する:cat >> ~/.ssh/config << 'EOF' Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/<ファイル名> EOF
接続を確認する:
ssh -T git@github.com
SSHが使えるようになったので、dotfilesのリモートURLをSSHに変更し、個人リポジトリをクローンする:
git -C ~/Documents/MY/dotfiles remote set-url origin git@github.com:manabuyasuda/dotfiles.git git clone git@github.com:manabuyasuda/manabuyasuda ~/Documents/MY/manabuyasuda
-
anyenvとnodenvをインストールする
anyenv install --init anyenv install nodenv exec $SHELL -l
最新LTSのバージョン番号を変数に格納して確認する(メジャーバージョンが偶数のものがLTS):
NODE_LTS=$(nodenv install --list | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | awk -F. 'int($1)%2==0' | tail -1) echo $NODE_LTS
表示されたバージョンをインストールしてデフォルトに設定する:
nodenv install $NODE_LTS nodenv global $NODE_LTS
Node.jsのインストールにより
default-packagesに記載されたグローバルnpmパッケージが自動導入される(@anthropic-ai/claude-codeを含む)。以降の手順はClaude Codeに委ねることができる。iTerm2(インストール済み)を開いて以下を実行する:
code ~/Documents/MY/dotfiles claudeClaude Codeが起動したら、以下のように依頼する:
README.mdの「新しいマシンでのセットアップ」を参照して、ステップ10以降を進めてください。
-
フォントをインストールする
Noto Sans JPはBrewfileからインストール済み。Source Code Proはコマンドで手動インストールする。
curl -LO https://github.com/adobe-fonts/source-code-pro/archive/release.zip unzip release.zip cp -a source-code-pro-release/TTF/* ~/Library/Fonts rm -rf release.zip source-code-pro-release
-
各アプリを設定する(Notionを参照)
brewでインストールしたアプリはFinderから1つずつ起動して設定を進める。アクセシビリティやファイルアクセスなど、セキュリティに関する許可を求められるため、1つずつ確認しながら進めるとわかりやすい。
-
macos.shを実行してシステム設定を一括適用する~/Documents/MY/dotfiles/macos.sh以下は手動で設定する:
一般 → ログイン項目(ログイン時に開く)
- AutoRaise、BetterTouchTool、CotEditor、Cursor、DeepL、Dropbox、Google Chrome、iTerm、MeetingBar、Notion、PopClip、Raycast、Slack、Sourcetree
コントロールセンター(メニューバー)
- Spotlight:メニューバーに表示しない
キーボード → キーボードショートカット
- Spotlight:すべてオフ(Raycastを使用するため)
- 入力ソース(前の入力ソースを選択):オフ
- 「次のウィンドウを操作対象にする…」を選択、ショートカットの表示をクリックしてから設定したいショートカットを入力する
キーボード → 入力ソース → 日本語
- 入力モード:英字にチェックを入れる
- タイプミスを修正:オフ
- Windows風のキー操作:オン
- 数字を全角入力:オフ
キーボード → 入力ソース → ABC を削除する
iCloud → iCloudに保存済み → すべて見る
- 写真:クリックして「このMacを同期」のチェックを外して「Macから削除」
-
Macを再起動する
ひととおりの設定が完了したら再起動する。システム設定の変更が反映され、アプリの許可ダイアログなどが表示される。
シンボリックリンク経由なので、~/.zshrc などを直接編集すればリポジトリ内のファイルが更新される。
cd ~/Documents/MY/dotfiles
git diff
git add -A && git commit -m "chore: 変更内容"brew bundle dump --file=~/Documents/MY/dotfiles/Brewfile --forceclaude/ ディレクトリ(skills/, hooks/)はディレクトリごとシンボリックリンクされているため、中にファイルを追加すると自動的にリポジトリに反映される。
keybindings.json など新しい個別ファイルを追加する場合は、claude/ に作成してから ./setup.sh を再実行する。
以下はdotfilesでは管理していない。新しいマシンでは手動インストールが必要。
- anyenv / nodenv — anyenvはBrewfileからインストール済み。初期化はステップ9を参照
- HHKB — Mac用ドライバを手動インストール。設定はステップ3を参照
- OpenVPN Connect — 公式サイトからインストール。設定はNotionを参照
- Automator(FFmpeg/ImageMagick連携) — 設定手順を参照。FFmpegとImageMagickはBrewfileからインストール済み
- VS Code 拡張機能 — GitHubアカウント同期で管理
.zprofileのHomebrewパス(/opt/homebrew)はApple Silicon専用。Intel Macでは異なる.gitconfigが参照する.gitignore_globalと.stCommitMsgは管理対象外