9550595502
This simplifies the code a bit and avoids using experimental Flake functionality. If Flakes become stable before NixOS 22.11 then we can consider having nmd and nmt as Flake inputs. Maybe could then also avoid the need for flake-compat.
76 lines
2.5 KiB
Nix
76 lines
2.5 KiB
Nix
{
|
|
description = "Home Manager for Nix";
|
|
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
inputs.utils.url = "github:numtide/flake-utils";
|
|
|
|
outputs = { self, nixpkgs, utils, ... }:
|
|
{
|
|
nixosModules = rec {
|
|
home-manager = import ./nixos;
|
|
default = home-manager;
|
|
};
|
|
# deprecated in Nix 2.8
|
|
nixosModule = self.nixosModules.default;
|
|
|
|
darwinModules = rec {
|
|
home-manager = import ./nix-darwin;
|
|
default = home-manager;
|
|
};
|
|
# unofficial; deprecated in Nix 2.8
|
|
darwinModule = self.darwinModules.default;
|
|
|
|
lib = {
|
|
hm = import ./modules/lib { lib = nixpkgs.lib; };
|
|
homeManagerConfiguration = { modules ? [ ], pkgs, lib ? pkgs.lib
|
|
, extraSpecialArgs ? { }, check ? true
|
|
# Deprecated:
|
|
, configuration ? null, extraModules ? null, stateVersion ? null
|
|
, username ? null, homeDirectory ? null, system ? null }@args:
|
|
let
|
|
throwForRemovedArg = v:
|
|
lib.throwIf (v != null) ''
|
|
The 'homeManagerConfiguration' arguments
|
|
|
|
- 'configuration',
|
|
- 'username',
|
|
- 'homeDirectory'
|
|
- 'stateVersion',
|
|
- 'extraModules', and
|
|
- 'system'
|
|
|
|
have been removed. Instead use the arguments 'pkgs' and
|
|
'modules'. See the 22.11 release notes for more.
|
|
'';
|
|
|
|
throwForRemovedArgs = throwForRemovedArg configuration # \
|
|
throwForRemovedArg username # \
|
|
throwForRemovedArg homeDirectory # \
|
|
throwForRemovedArg stateVersion # \
|
|
throwForRemovedArg extraModules # \
|
|
throwForRemovedArg system;
|
|
in throwForRemovedArgs (import ./modules {
|
|
inherit pkgs lib check extraSpecialArgs;
|
|
configuration = { ... }: {
|
|
imports = modules;
|
|
nixpkgs = { inherit (pkgs) config overlays; };
|
|
};
|
|
});
|
|
};
|
|
} // utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
docs = import ./docs { inherit pkgs; };
|
|
in {
|
|
packages = rec {
|
|
home-manager = pkgs.callPackage ./home-manager { };
|
|
docs-html = docs.manual.html;
|
|
docs-manpages = docs.manPages;
|
|
docs-json = docs.options.json;
|
|
default = home-manager;
|
|
};
|
|
# deprecated in Nix 2.7
|
|
defaultPackage = self.packages.${system}.default;
|
|
});
|
|
}
|