🦬
GNU StowでDotfilesを管理するのが簡単だよ
先日ホームディレクトリにあるzsh用コンフィグファイルなどの隠しファイル、通称DotfilesをGitHubでバックアップ&管理し始めたのですが、つい先ほど.config
ディレクトリも管理できるようになったので簡単に共有します。
注意
- 筆者はmacOSを使用しています。
- 記事を書く練習と学習用メモを見られる前提で書く練習に最適と思い投稿しています。お目汚し申し訳ございません。
シンボリックリンクを作るのにGNU Stow が簡単
まずはディレクトリ構成図をご覧ください。
ディレクトリ構成図
~/Dotfiles main* ⇡ ❯ tree -L 3 -a -I ".git" 19:21:33
.
├── .gitignore
├── README.md
├── config
│ └── .config
│ ├── chezmoi
│ ├── iterm2
│ ├── karabiner
│ ├── kitty
│ ├── linearmouse
│ ├── lvim
│ ├── menus
│ ├── neofetch
│ ├── nvim
│ ├── planetscale
│ ├── raycast
│ ├── skhd
│ ├── tmux
│ └── yabai
├── others
│ ├── .bash_history
│ ├── .gitconfig
│ ├── .iterm2_shell_integration.zsh
│ ├── .lesshst
│ ├── .p10k.zsh
│ ├── .viminfo
│ └── .zshenv
├── tmux.png
└── zsh
├── .p10k.zsh
├── .zcompdump
├── .zprofile
├── .zsh_history
├── .zshenv
├── .zshrc
└── plugins
20 directories, 16 files
GNU Stowを使うとこれらディレクトリ・ファイルのシンボリックリンクを簡単にホームディレクトリに配置できます。Homebrewを使ってインストールできます。コマンド詳細はstow --help
でご確認ください。
stow -d ~/Dotfiles -t ~ config others
このコマンドで、Dotfiles
ディレクトリから、config
およびothers
ディレクトリそれぞれの中の全てのディレクトリまたはファイルのシンボリックリンクを作成してホームディレクトリに配置します。config
内には.config
ディレクトリがあるので、.config
内のディレクトリが散らばることもありません。
ここで、zsh
内のファイルは.zshenv
内で、~/Dotfiles/zsh
にPATHを通しています。そのため、.zshなんちゃら
で溢れることもありません。
SHELL_SESSIONS_DISABLE=1
export ZDOTDIR="${HOME}/Dotfiles/zsh"
これだけです。ご覧のようにchezmoi をインストールした痕跡がありますが、シンボリックリンクとGNU Stowが便利すぎて使わなくなってしまいました。
まとめと余談
これより簡単なのないよ、って話です。もっといい案がございましたらコメントをいただけると幸いです。皆さんもぜひGNU Stowをダウンロードしてみてください。
筆者はLunarvimを使っているのですが、今のところluaファイルの設定をミスって壊れてもgit reset
はおろかstash
にもbranch
にもお世話になっていません。バックアップ要員です。
ご覧いただき、ありがとうございました。
Discussion