From 4bc6e454d7693b2cb9b7219c0bb1464d64c1ee7a Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Tue, 11 Jul 2017 19:55:30 +0200 Subject: [PATCH] home-manager: add module This module is a module to install and configure the home-manager tool. By managing the home-manager tool through the Home Manager module system it will be installed/updated on configuration activation. (cherry picked from commit 7a18a0fb348393a4d4cb9aaff39626d63351edc3) --- modules/default.nix | 1 + modules/programs/home-manager.nix | 39 +++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 modules/programs/home-manager.nix diff --git a/modules/default.nix b/modules/default.nix index b14e38ac1..107aab0d2 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -19,6 +19,7 @@ let ./programs/firefox.nix ./programs/git.nix ./programs/gnome-terminal.nix + ./programs/home-manager.nix ./programs/info.nix ./programs/lesspipe.nix ./programs/ssh.nix diff --git a/modules/programs/home-manager.nix b/modules/programs/home-manager.nix new file mode 100644 index 000000000..09c662ac0 --- /dev/null +++ b/modules/programs/home-manager.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.programs.home-manager; + +in + +{ + options = { + programs.home-manager = { + enable = mkEnableOption "Home Manager"; + + modulesPath = mkOption { + type = types.nullOr types.str; + default = null; + example = "$HOME/devel/home-manager/modules"; + description = '' + The default path to use for Home Manager modules. If this + path does not exist then + $HOME/.config/nixpkgs/home-manager/modules + and $HOME/.nixpkgs/home-manager/modules + will be attempted. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + home.packages = [ + (import ../../home-manager { + inherit pkgs; + inherit (cfg) modulesPath; + }) + ]; + }; +}