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を​消す番かもしれない。