home-manager: Add nix.conf

This commit is contained in:
Jack O'Sullivan 2022-02-21 13:38:22 +00:00
parent 7180d265c4
commit a0901fecde
3 changed files with 17 additions and 1 deletions

View File

@ -15,6 +15,7 @@
hostname = "h.nul.ie";
sshOpts = [ "-4" "-p" "8022" ];
};
nix.config.cores = "16";
};
programs = {

View File

@ -9,6 +9,7 @@
{
my = {
deploy.enable = false;
nix.config.cores = "6";
};
programs = {

View File

@ -3,7 +3,7 @@ let
inherit (builtins) listToAttrs mapAttrs readFile;
inherit (lib)
optionalString nameValuePair concatMapStrings concatStringsSep optionalAttrs versionAtLeast
mkMerge mkIf mkDefault mkOption;
mapAttrsToList mkMerge mkIf mkDefault mkOption;
inherit (lib.hm) dag;
inherit (lib.my) mkOpt' dummyOption;
in
@ -19,6 +19,11 @@ in
shell = mkOpt' str null "User's shell (so NixOS or others can set it externally).";
fishCompletionsFrequency = mkOpt' (nullOr str) "daily" "How often to generate fish completions from manpages.";
nix = {
# TODO: Until https://github.com/nix-community/home-manager/issues/2324
config = mkOpt' (attrsOf str) { } "nix.conf options";
};
ssh = {
authKeys = {
literal = mkOpt' (listOf singleLineStr) [ ] "List of OpenSSH keys to allow";
@ -47,6 +52,11 @@ in
isStandalone = !(args ? osConfig);
shell = mkDefault "${config.programs.fish.package}/bin/fish";
nix.config = {
experimental-features = mkDefault "nix-command flakes ca-derivations";
max-jobs = mkDefault "auto";
};
};
home.file.".ssh/authorized_keys" = with config.my.ssh.authKeys;
@ -57,6 +67,10 @@ in
'';
};
xdg.configFile."nix/nix.conf" = mkIf (config.my.nix.config != { }) {
text = (concatStringsSep "\n" (mapAttrsToList (k: v: "${k} = ${v}") config.my.nix.config)) + "\n";
};
programs = {
# Even when enabled this will only be actually installed in standalone mode
# Note: `home-manager.path` is for telling home-manager is installed and setting it in NIX_PATH, which we should