nixnew/modules/core/default.nix

95 lines
2.3 KiB
Nix

{ inputs, lib, pkgs, ... }: {
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"osu-lazer-bin"
"unrar"
"steam"
"steam-original"
"corefonts"
"vista-fonts"
"steam-unwrapped"
];
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
"electron-28.3.3"
"electron-27.3.11"
];
documentation = {
enable = true;
doc.enable = true;
info.enable = true;
man.enable = true;
dev.enable = true;
};
environment.systemPackages = with pkgs; [
man-pages
man-pages-posix
];
nix = {
settings = {
# hardlink duplicate files in the nix store
auto-optimise-store = true;
};
extraOptions = ''
experimental-features = nix-command flakes
# keep intermediary deps alive (no redownloading to rebuild after gc)
keep-outputs = true
keep-derivations = true
builders-use-substitutes = true
'';
# flake registries are used by the new nix commands.
# this binds the nixpkgs registry to the one in `flake.nix`.
registry = {
nixpkgs.flake = inputs.nixpkgs;
stable.flake = inputs.stable;
};
# the nix path is used to discover channels for the old nix commands.
# this binds the nix path to the channels following `flake.nix` declared below.
nixPath = [
"nixpkgs=/etc/nix/inputs/nixpkgs"
"stable=/etc/nix/inputs/stable"
];
distributedBuilds = true;
buildMachines = [ {
hostName = "192.168.2.1";
system = "x86_64-linux";
protocol = "ssh-ng";
supportedFeatures = [ "big-parallel" "kvm" "nixos-test" "benchmark" ];
speedFactor = 100;
maxJobs = 16;
sshUser = "nix-remote-build";
sshKey = "/root/.ssh/id_build_server";
} ];
};
# add entries for `nixPath` above.
environment.etc = {
"nix/inputs/nixpkgs".source = inputs.nixpkgs.outPath;
"nix/inputs/stable".source = inputs.stable.outPath;
};
# allow processes to request scheduling priority
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
}