2023-11-18 02:57:07 +00:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
2023-12-10 15:56:40 +00:00
|
|
|
inputs,
|
2023-11-18 02:57:07 +00:00
|
|
|
...
|
|
|
|
}: {
|
2023-10-16 08:26:06 +00:00
|
|
|
imports = [
|
2023-12-16 08:58:10 +00:00
|
|
|
./hardening
|
2023-11-17 05:38:25 +00:00
|
|
|
./nix
|
|
|
|
./packages
|
2023-12-10 15:56:40 +00:00
|
|
|
|
|
|
|
# Flake modules
|
2023-12-15 18:40:41 +00:00
|
|
|
inputs.self.nixosModules.default
|
2023-12-10 15:56:40 +00:00
|
|
|
inputs.disko.nixosModules.disko
|
|
|
|
inputs.home-manager.nixosModules.home-manager
|
|
|
|
inputs.impermanence.nixosModules.impermanence
|
|
|
|
inputs.lanzaboote.nixosModules.lanzaboote
|
|
|
|
inputs.sops-nix.nixosModules.sops
|
|
|
|
];
|
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
users.mutableUsers = false;
|
|
|
|
home-manager = {
|
|
|
|
useGlobalPkgs = true;
|
|
|
|
useUserPackages = true;
|
|
|
|
extraSpecialArgs = {inherit inputs;}; # ??? isnt specialArgs imported by default ???
|
|
|
|
};
|
2023-10-16 08:26:06 +00:00
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
### Boot
|
2023-11-20 12:21:34 +00:00
|
|
|
boot.initrd.systemd.enable = true;
|
2023-12-16 08:58:10 +00:00
|
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
boot.loader.systemd-boot = {
|
|
|
|
enable = lib.mkDefault true; # mkDefault for Lanzaboote
|
|
|
|
editor = false; # Disabled for security
|
|
|
|
### Utilities
|
|
|
|
#netbootxyz.enable = true;
|
|
|
|
#memtest86.enable = true;
|
2023-11-20 12:21:34 +00:00
|
|
|
};
|
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
### Default Programs
|
2023-11-20 12:21:34 +00:00
|
|
|
environment.defaultPackages = [];
|
2023-12-16 08:58:10 +00:00
|
|
|
programs.dconf.enable = true;
|
|
|
|
programs.nano.enable = false; # make sure to add another editor and set the $EDITOR variable
|
|
|
|
programs.neovim = {
|
|
|
|
enable = true;
|
|
|
|
viAlias = true;
|
|
|
|
vimAlias = true;
|
|
|
|
defaultEditor = true;
|
2023-09-19 00:17:43 +00:00
|
|
|
};
|
2023-12-16 08:58:10 +00:00
|
|
|
services.openssh = {
|
|
|
|
enable = true;
|
|
|
|
settings.PermitRootLogin = "no";
|
|
|
|
settings.PasswordAuthentication = false;
|
|
|
|
};
|
|
|
|
services.getty.greetingLine = let
|
|
|
|
inherit (config.system) nixos;
|
|
|
|
in ''
|
|
|
|
NixOS ${nixos.label} ${nixos.codeName} (\m) - \l
|
|
|
|
${lib.strings.optionalString (builtins.elem "nvidia" config.services.xserver.videoDrivers)
|
|
|
|
"--my-next-gpu-wont-be-nvidia"}
|
|
|
|
${lib.strings.optionalString (builtins.elem "amdgpu" config.boot.initrd.kernelModules)
|
|
|
|
"[ 5.996722] amdgpu 0000:67:00.0: Fatal error during GPU init"}
|
|
|
|
'';
|
2023-09-19 00:17:43 +00:00
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
### WORKAROUND: Revert to NVIDIA version 470.223.02 due to performance issues in version 545.29.06,
|
|
|
|
# this shouldn't affect non-nvidia machines.
|
2023-12-16 08:32:13 +00:00
|
|
|
nixpkgs.config.nvidia.acceptLicense = true;
|
|
|
|
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
### https://wiki.archlinux.org/title/Sysctl#Improving_performance
|
|
|
|
boot.kernelModules = ["tcp_bbr"];
|
|
|
|
boot.kernel.sysctl = {
|
|
|
|
"net.ipv4.tcp_fastopen" = "3";
|
2023-10-15 00:51:56 +00:00
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
"net.ipv4.tcp_keepalive_time" = "80";
|
|
|
|
"net.ipv4.tcp_keepalive_intvl" = "10";
|
|
|
|
"net.ipv4.tcp_keepalive_probes" = "6";
|
|
|
|
"net.ipv4.tcp_mtu_probing" = "1";
|
2023-10-15 00:51:56 +00:00
|
|
|
|
2023-12-16 08:58:10 +00:00
|
|
|
"net.core.default_qdisc" = "cake";
|
|
|
|
"net.ipv4.tcp_congestion_control" = "bbr";
|
2023-09-19 00:17:43 +00:00
|
|
|
};
|
|
|
|
}
|