nix settings: unify for NixOS and nix-darwin

moved into a common module
mainline
Trolli Schmittlauch 2024-04-07 02:09:46 +02:00
parent 4976cea39d
commit f08a7540ef
4 changed files with 42 additions and 22 deletions

View File

@ -13,6 +13,7 @@ in
imports = [
./packages.nix
./nitrokey.nix
./nix-settings.nix
];
services.davfs2.enable = true;
@ -221,27 +222,7 @@ in
# Enable all sysrq functions (useful to recover from some issues):
boot.kernel.sysctl."kernel.sysrq" = 1; # NixOS default: 16 (only the sync command)
nix = {
# expose all flake inputs through nix Path and registry
registry = (lib.mapAttrs (_: value: { flake = value; }) inputs) // {
nixpkgs.flake = inputs.nixpkgs;
};
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
# keep build-time deps around for offline-rebuilding
settings = {
# keep around all inputs necessary for offline-rebuilding the system
keep-outputs = true;
keep-derivations = true;
trusted-users = [ "spiollinux" ];
experimental-features = [
"nix-command"
"flakes"
"repl-flake"
];
# use all cores for building
cores = 0;
};
};
nix.settings.trusted-users = [ "spiollinux" ];
# override tmpdir for daemon
#systemd.services.nix-daemon.environment.TMPDIR = "/var/tmp";

34
common/nix-settings.nix Normal file
View File

@ -0,0 +1,34 @@
# needs to be kept compatible to both NixOS and nix-darwin
{
config,
pkgs,
lib,
...
}:
let
inputs = config.inputInjection.flake-inputs;
unstable = inputs.nixos-unstable;
in
{
nix = {
# expose all flake inputs through nix Path and registry
registry = (lib.mapAttrs (_: value: { flake = value; }) inputs) // {
nixpkgs.flake = inputs.nixpkgs;
};
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
};
nix.settings = builtins.mapAttrs (_: lib.mkDefault) {
# keep around all inputs necessary for offline-rebuilding the system
keep-outputs = true;
keep-derivations = true;
trusted-users = [ "spiollinux" ];
experimental-features = [
"nix-command"
"flakes"
"repl-flake"
];
# use all cores for building
cores = 0;
};
}

View File

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{
imports = [ ../common/nix-settings.nix ];
nix.settings.trusted-users = [ "os" ];
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [ pkgs.vim ];

View File

@ -112,7 +112,10 @@
];
};
darwinConfigurations."OS-MacBook-Pro" = nix-darwin.lib.darwinSystem {
modules = [ ./darwin/configuration.nix ];
modules = [
./darwin/configuration.nix
inputInjection
];
};
homeConfigurations = {
spiollinux-desktop = mkHomeManager "desktop" "spiollinux" systems.x86_64-linux;