about summary refs log tree commit diff
path: root/dotfiles.nix
blob: 8ba5f976f76ef242e010411be2a5287ba542b537 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Bundle configuration files into a derivation.
# I call this derivation dotfiles despite that not technically being true
# anymore ...

{ config, pkgs, ...}:

let dotfiles = pkgs.stdenv.mkDerivation {
  name = "tazjins-dotfiles";

  srcs = [
    ./dotfiles
  ];

  installPhase = ''
    mkdir -p $out/dotfiles
    cp ./* $out/dotfiles/
  '';
};
in {
  # /etc/ is a special place in NixOS!
  # Symlinks that need to be created there must be specified explicitly.
  environment.etc = {
    "i3/config" = {
      source = "${dotfiles}/dotfiles/i3.conf";
      # Setting a mode causes Nix to copy the file instead of symlinking it.
      # For i3 config in particular this is desirable because I want to be able
      # to modify and reload it before committing a change.
      mode = "0644";
    };
  };
}