98 lines
2.3 KiB
Nix
98 lines
2.3 KiB
Nix
{
|
|
lib,
|
|
hostname,
|
|
pkgs,
|
|
type,
|
|
modulesPath,
|
|
inputs,
|
|
config,
|
|
specialArgs,
|
|
username,
|
|
...
|
|
}:
|
|
{
|
|
imports = builtins.concatLists [
|
|
# Common options for all machines.
|
|
[
|
|
(modulesPath + "/installer/scan/not-detected.nix")
|
|
./modules/bootloaders/systemd-boot.nix
|
|
./modules/programs/zsh.nix
|
|
./modules/hardware/networking.nix
|
|
./modules/security.nix
|
|
./modules/users.nix
|
|
]
|
|
# Options for desktops.
|
|
(lib.optionals (type == "desktop") [
|
|
./modules/hardware/audio.nix
|
|
./modules/hardware/bluetooth.nix
|
|
./modules/programs/getty.nix
|
|
./modules/programs/hyprland.nix
|
|
./modules/programs/hyprlock.nix
|
|
./modules/stylix.nix
|
|
])
|
|
# Options for specific hostnames.
|
|
(lib.optionals (hostname == "nemesis") [
|
|
./hw-nemesis.nix
|
|
./modules/hardware/nvidia.nix
|
|
./modules/hardware/cpu_amd.nix
|
|
])
|
|
];
|
|
|
|
boot = {
|
|
loader = {
|
|
timeout = 5;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
kernelPackages = pkgs.linuxPackages_latest;
|
|
initrd.availableKernelModules = [
|
|
"nvme"
|
|
"xhci_pci"
|
|
"ahci"
|
|
"usbhid"
|
|
"usb_storage"
|
|
"sd_mod"
|
|
];
|
|
};
|
|
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
extraSpecialArgs = specialArgs;
|
|
};
|
|
|
|
system.stateVersion = "24.11";
|
|
|
|
users.mutableUsers = false; # Always reset users on system activation
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
nix = {
|
|
settings.experimental-features = [
|
|
"nix-command"
|
|
"flakes"
|
|
"pipe-operators"
|
|
];
|
|
|
|
# Add binary caches to avoid having to compile them
|
|
settings = {
|
|
substituters = [
|
|
"https://hyprland.cachix.org"
|
|
"https://cuda-maintainers.cachix.org"
|
|
"https://nix-community.cachix.org"
|
|
"https://nvf.cachix.org"
|
|
"https://yazi.cachix.org"
|
|
];
|
|
trusted-public-keys = [
|
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
"nvf.cachix.org-1:GMQWiUhZ6ux9D5CvFFMwnc2nFrUHTeGaXRlVBXo+naI="
|
|
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
|
|
];
|
|
};
|
|
};
|
|
|
|
time.timeZone = "Asia/Singapore";
|
|
|
|
i18n.defaultLocale = "en_SG.UTF-8";
|
|
|
|
}
|