Macの環境をdotfilesでセットアップしてみた改
以前以下のブログで公開したMac用のdotfilesを色々改良してみたので、改良版として本記事で公開する。
なおdotfilesとは、ホームディレクトリに存在するドット(.)から始まる設定ファイル群の事を指す。
dotfiles の中身
$ tree
.
├── .bin
│ ├── .Brewfile
│ ├── .bash_profile
│ ├── .bashrc
│ ├── .gitconfig
│ ├── .gitignore_global
│ ├── brew.sh
│ ├── defaults.sh
│ ├── init.sh
│ └── link.sh
├── .github
│ └── workflows
│ └── main.yml
├── Makefile
├── README.md
├── raycast
│ └── Raycast.rayconfig
└── vscode
├── extensions
├── settings.json
└── sync.sh
dotfilesの詳細は、以下のGitHubのURLに上げている。
以下ではセットアップ用スクリプト、及びソフトウェア用設定ファイルに分けて解説する。
セットアップ用スクリプト
本項目では、Macにのdotfilesに格納されているファイルを用いてセットアップする際に使用するスクリプトについて説明する。
セットアップ自動化スクリプト(Makefile)
本dotfilesのルートディレクトリでmake
コマンドを叩く事で、Makefile
に記載のあるスクリプトが全て実行され、セットアップを自動で実施する。
なおmake init
、make link
、make defaults
、make brew
コマンドにより、各々のスクリプト(init.sh
, link.sh
, brew.sh
, defaults.sh
)を個別で実行できる。
初期設定スクリプト(.bin/init.sh)
init.sh
は、Macで一番最初に実行するべき初期設定を実施する。
本dotfilesでは、zshからbashへの切り替え、及びXcodeとbrewのインストールを実行する。
シンボリックリンク作成スクリプト(.bin/link.sh)
link.sh
は、ホームディレクトリに対してドットから始める設定ファイルのシンボリックリンクを作成する。
なお.git
や.github
、.DS_store
といったシンボリックリンクの作成の必要がないファイルについては、あらかじめ除外する。
追加コマンド/アプリ導入スクリプト(.bin/brew.sh)
brew.sh
は、Macに追加で必要なコマンドツールやデスクトップアプリをインストールする。
追加で必要なコマンド及びアプリを.Brewfile
に予め記載した上で、このスクリプトを実行すると一括インストールが可能。
.Brewfile
には、追加したいコマンド及びアプリを一覧で記載する。
Mac 環境設定スクリプト(.bin/defaults.sh)
defaults.sh
は、Mac自体の環境設定を操作する。
なお一部のdefaultsコマンドは、実行後にPC再起動が必要となるため注意。
本ファイルで記載しているdefaultsコマンドについては、主に以下の記事を参考にしている。
テスト自動化スクリプト(.github/workflows/main.yml)
main.yml
には、GitHub Actionsを用いて、Githubリポジトリにpushした際、自動で処理されるテストの内容を記載する。
本dotfilesではMacOSにおけるmake
コマンドのテストのみ実施しているが、他のコマンドを追記してテストする事も可能。
ソフトウェア設定ファイル
以下では、ソフトウェアの設定が記載されているファイルについて説明する。
Bash 設定ファイル(.bin/.bash_profile & .bin/.bashrc)
.bash_profile
及び.bashrc
には、ターミナルで使用するBashの設定が記載されている。
.bash_profile
には、主に環境変数を設定するexport
や、補完定義を設定するcomplete
/souce
を記載している。
対して、.bashrc
には主にターミナルで用いるコマンド群を、引数を持たないalias
と、引数を持つfunction
に分けて記載している。
.bash_profile
と.bashrc
の使い分け方は好みの問題なので、どちらに記載しても構わない。
Git 設定ファイル(.bin/.gitconfig & .bin/.gitignore_global)
.gitconfig
には、Gitの設定が記載されている。
もしEメールがそのまま書かれている場合は、以下を参考にコミットメールアドレスを別で設定すると良い。
.gitignore_global
には、Gitによる追跡から除外するファイルが記載されている。
GitHub公式から、.gitignoreのテンプレートがサービス毎に提供されているので、参考にしながら自分用にカスタマイズすると良さげ。
VSCode 設定ファイル(editor/配下)
settings.json
にはVSCode自体の設定が記載されている。
対してextension
には、VSCode拡張機能の名称が記載されており、どのvscode拡張機能が導入されているかを一目で確認できる。
そしてsync.sh
を実行する事で、settings.json
のシンボリックリンクの作成、及びextensions
に記載されている拡張機能のインストールを合わせて実施できる。
ちなみに.bashrc
に記載されている以下のコマンドで、現在VSCodeに導入されている拡張機能を上記のextensions
のように一覧で出力できる。
alias vle='code --list-extensions'
Raycast 設定ファイル(raycast/配下)
Raycast.rayconfig
にはRaycastの設定が記載されており、RaycastのImport機能で取り込み可能。
(バイナリファイルのためファイル内容は記載しない)
Importのやり方は以下を参照。
dotfilesを始めよう
万が一自身のPCに何かが起きた際の設定のバックアップになるので、ぜひ簡単なdotfilesを作ってみてほしい。
またスクリプトを作成する事でBashを学べたり、GitHubリポジトリにバックアップとしてアップロードする事でGitの勉強にもなるので、エンジニア初心者がこの辺りの技術を学ぶにはちょうど良い教材な気もする。
Discussion