Newer
Older
# This is the entry point for my NixOS configuration.
{ lib, config, pkgs, ... }:
let
installResult = builtins.fromJSON (builtins.readFile (path + "/install-result.json"));
dotfilesConfig = import (path + "/dotfiles.nix");
layerImports = map (l: ./layers + "/${l}.nix") dotfilesConfig.layers;
in
imports = [
./modules
(path + "/configuration.nix")
] ++ layerImports ++ (lib.lists.optional (!isIso) (path + "/hardware-configuration.nix"));
nixpkgs.config = {
packageOverrides = ( import ./pkgs ) { inherit lib config; } ;
};
# Pin channel in nix path
nix.nixPath = [ "nixpkgs=${channel}" ];
# Default hostname ist machine directory name
networking.hostName = lib.mkDefault name;
} // (lib.attrsets.optionalAttrs (!isIso) {
# Bootloader
boot.loader.systemd-boot.enable = (installResult.bootloader == "efi");
boot.loader.efi.canTouchEfiVariables = (installResult.bootloader == "efi");
boot.loader.grub.enable = (installResult.bootloader == "bios");
boot.loader.grub.device = installResult.installedBlockDevice;
boot.initrd.luks.devices = if installResult.luks then {
cryptvol = {
device = "/dev/disk/by-uuid/" + installResult.luksPartitionUuid;
allowDiscards = true;
};
} else {};