MyDocs

Devbox+chezmoiで環境構築

nix で全て完結させようと思ったけど、大変だったので困るまでは Devbox + chezmoi の組み合わせで行くことにする。

Devboxのインストール

install手順

~ ❯ curl -fsSL https://get.jetify.com/devbox | bash

nixのインストール

devbox add のタイミングでインストールされるみたいだけど、以前 nix をインストール、アンインストールしてたせいで謎のエラーでハマった。ということでインストールし直した。

オフィシャル からコピペした。

~ ❯ sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install)

chezmoiのインストール

~ ❯ devbox global add chezmoi

chezmoiのセットアップ

既に dotfiles があるため、github のユーザネームを指定。

~ ❯ chezmoi init ritarock

~/.local/share/chezmoi に dotfiles の中身がクローンされる。

dotfile群をaddしていく

この際、もう使ってない設定ファイル (fish とか) は管理しないようにする。 ひとまず、この辺を add する。

~ ❯ chezmoi add ~/.zshrc
~ ❯ chezmoi add ~/.config/zsh
~ ❯ chezmoi add ~/.config/ghostty/config
~ ❯ chezmoi add ~/.config/git/config
~ ❯ chezmoi add ~/.config/sheldon/plugins.toml
~ ❯ chezmoi add ~/.vimrc
~ ❯ chezmoi add ~/.vim/colors/molokai.vim
~ ❯ chezmoi add ~/.tmux.conf
~ ❯ chezmoi add ~/.config/starship.toml

変更の適用

--dry-run をつければドライランできる。

~ ❯ chezmoi apply --dry-run --verbose

Devboxの設定

試しに neovim をインストールしてみる。

NixOS Searchneovim を探してみる。

~ ❯ devbox global add neovim

global にインストールしたものは ~/.local/share/devbox/global/default/devbox.json で管理される。 なので、 ~/.local/share/devbox/global/default/devbox.jsonchezmoi で管理すれば良い。

global で管理されているパッケージは devbox global install で一括インストールできる。

brewからdevboxへ移行

まずは brew から削除せずに devbox でインストールしていく。

~ ❯ devbox global add jq
~ ❯ which jq
/Users/osakiryota/.local/share/devbox/global/default/.devbox/nix/profile/default/bin/jq

動作に問題なければ削除する。これを全パッケージでやる。

~ ❯ brew uninstall jq

caskの管理

nix 使えば何とかなるみたいだけどそこまで頑張りたくないので、cask に関しては brew のままでいく。 chezmoi のスクリプトを使う。

run_onchange_brew_install.sh.tmpl を作る。 run_onchange_ から始まるスクリプトは変更があったタイミングで chezmoi apply で実行される。

#!/bin/bash

brew install --cask \
    brave-browser \
    claude-code \
    discord \
    ghostty \
    godot \
    google-chrome \
    google-japanese-ime \
    mapture \
    notion \
    obsidian \
    postman \
    raycast \
    renpy \
    shotcut \
    visual-studio-code \
    zoom

最低限はこれで良さそう。あとは、PC の環境によってインストールするものの切り替えができるようになれば一旦OK。 https://github.com/ritarock/dotfiles