diff options
author | Vincent Ambo <tazjin@gmail.com> | 2017-10-20T21·22+0200 |
---|---|---|
committer | Vincent Ambo <tazjin@gmail.com> | 2017-10-20T22·05+0200 |
commit | 7fe75e01386f24385ae9ccc624e3d8561df8bcbb (patch) | |
tree | b72d47b17c2006a5f103da3e1c4d53552b35b26c /dotfiles.nix | |
parent | a8a9bf130048ec1c71ed44a3930da0bd13c626d8 (diff) |
feat(dotfiles): Begin controlling various dotfiles from Nix
Moves my i3 configuration into a nix derivation called 'tazjins-dotfiles'. A good step towards fully declarative system configuration!
Diffstat (limited to 'dotfiles.nix')
-rw-r--r-- | dotfiles.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/dotfiles.nix b/dotfiles.nix new file mode 100644 index 000000000000..8ba5f976f76e --- /dev/null +++ b/dotfiles.nix @@ -0,0 +1,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"; + }; + }; +} |