Nixのhome-managerでnvimのsymlinkを貼る

はじめに

最近、macbookを新調した輪ごむです。

新しいPCを手に入れて最初にやる作業といえば、環境構築です。

macbookの開発環境を復元するために必要なステップは、ざっくりと以下のとおりです。

  1. nixをインストール
  2. vimの設定をまとめたdotvimと、それ以外の設定をまとめたdotfilesレポジトリをclone
  3. 主にguiツール目的でbrewをインストール
  4. nvimのプラグインを動かすためにdenoをインストール
  5. dotfileshome-manager switch --flake .#MacBookProを実行
  6. dotfilesbrew bundleを実行
  7. dotvimの設定を~/.configにsymlinkするために、sh mklink.shを実行

列挙してみると、以外とステップがありますね。

今回、環境構築をしていると、7. のdotvimに移動してmklink.shを実行するのは面倒だなということに気が付きました。せっかくNixとhome-managerを導入してるなら、mklinkも自動でしてほしいよなぁ。。と思いました。

当初、dotfiles内じゃなくてとは別のgitレポジトリのdotvimで管理しているので、symlinkを貼るのは難しいだろうと勝手に考えていました。しかし、調べたところ可能そうだったので、試したところうまくいきました!!

やったこと

home-managerに以下を追記するといけます。

1234567891011
  xdg.configFile."nvim" = {
    source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotvim/nvim";
  };

  xdg.configFile."nvim-sub" = {
    source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotvim/nvim-sub";
  };

  xdg.configFile."vim" = {
    source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dotvim/vim";
  };

おわりに

これでdotvimからひとつ、shファイルを削除できましたとさ。
めでたし。めでたし。

つぎは、nix bundleを消す番かもしれない。