🗾
みんなが使えるMacOS用dotfiles「YAMATO」を作っている話
みんなが使えるMacOS用dotfilesを作っている話
はじめに
今回は私が「みんなが使えるMacOS用dotfiles」を目指して作っている「YAMATO」というプロジェクトについて紹介します
作ろうと思ったきっかけ
個人のDotfilesの更新を放置しすぎた
- ここ2年ほど、Dotfilesの更新を放置してしまっていました
- その間にツールの乗り換えがいろいろありました
- bash(自作プロンプト) -> zsh(starship prompt)
- Docker Desktop -> docker(cli)+ Colima + lazydocker
- asdf -> mise
- 差分が大きく、PCを買い替えた際にも大変だなと思い、dotfilesを作り(直し)始めました
Omakubがリリースされていた
- 先人たちのdotfilesたちを調べていたら、DHH氏がOmakubというUbuntuをいい感じにセットアップするスクリプトを作っていました
- これに影響を受け、
dotfiles以外の名前をつけて
、いろんな人が使える
dotfilesを新しく作ろうと思いました
命名
Macのセットアップスクリプト=Macの最初の一歩というのを
日本の始まり=大和(やまと)
になぞらえて命名しました。
作っていて困ったこと
問題:こだわりがない人しか使えない
- 初期のYAMATOは自分のおすすめの設定を入れるだけのスクリプトでした
- しかし、MacOSはいろんな人が使っていて、各ツールには好みがあります。
- また、ツールによっては私のおすすめをインストールすることによって環境が壊れてしまう可能性もあります
- 例:Docker Desktopの入っている環境にColima等のDocker deamon系のライブラリをインストールするなど(試していませんが予期せぬ動きをしそう)
対策:ツールをおまかせ・自分で選んでインストール双方できるようにした
- omakaseオプションでおまかせ、interactiveやpresetオプションで対話やファイル指定によって自分でツールを選んでインストール可能にしました
- 詳細は #オプションに書きました
現在の仕様
実行コマンド
curl -L https://raw.githubusercontent.com/politive/yamato/main/boot.sh | bash
オプション
- おすすめセットアップ(
--omakase
)- 私のおすすめをインストールします
- yamato.ymlに設定値がまとまっています
- 対話モード(
--interactive
)- どのツールを入れるか、対話形式で選べます
- プリセット(
--preset <file>
)- YAMLファイルを指定して好きなツールを選択できます
-
yamato.yml をコピーして自分用の設定ファイルを作り、
--preset
で指定できます
- ログの詳細表示(
--verbose
)- デフォルトではインストール(brew install時など)のログを表示していないため、詳細なログを見たい場合に使います
- ドライラン(
--dryrun
)- 実際にはインストールせず、何が実行されるかだけを表示します
現時点での課題(今後やりたいこと)
- 一部のツールしか {omakase, interactive, preset} オプションに対応していない
- 対応済み: Docker系ライブラリ, ターミナルアプリ, ブラウザアプリ
- 未対応: 上記以外
- もっといろんなライブラリをオプションを使ってインストールできるようにしたい
- みなさんがどんなツールを使っているか知りたいので、ぜひGitHub Issuesで教えてください!
- みなさんが自作のスクリプトを追加できるようにしたい
- 例
-
source /path/to/overrides/exec.sh
のように呼び出す処理を入れておく - overrides配下は好きにコミットしてもらう
-
- フォークしてカスタムしやすいようにしたい
- 例
- ディレクトリ構造をもう少し見やすいものにしたい
終わりに
YAMATOは始まったばかりのプロジェクトです。応援よろしくお願いします...!
Discussion