diff --git a/system/thompson-hardware.nix b/system/thompson-hardware.nix new file mode 100644 index 0000000..b5116b3 --- /dev/null +++ b/system/thompson-hardware.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "thunderbolt" "vmd" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + # NVidia stuff + hardware.nvidia.modesetting.enable = true; + services.xserver.videoDrivers = ["nvidia" ]; + + hardware.opengl.enable = true; + hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; + hardware.nvidia.prime = { + sync.enable = true; + nvidiaBusId = "PCI:1:0:0"; + intelBusId = "PCI:0:2:0"; + }; +} diff --git a/system/thompson.nix b/system/thompson.nix new file mode 100644 index 0000000..51bcff5 --- /dev/null +++ b/system/thompson.nix @@ -0,0 +1,22 @@ + +{ config, pkgs, inputs, ... }: + +let + nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' + export __NV_PRIME_RENDER_OFFLOAD=1 + export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 + export __GLX_VENDOR_LIBRARY_NAME=nvidia + export __VK_LAYER_NV_optimus=NVIDIA_only + exec "$@" + ''; +in +{ + imports = + [ + ./shared-configuration.nix + ./thompson-hardware.nix + ./filesystem.nix + ]; + + networking.hostName = "thompson"; +} diff --git a/users/tsv/thompson.nix b/users/tsv/thompson.nix new file mode 100644 index 0000000..9ae2340 --- /dev/null +++ b/users/tsv/thompson.nix @@ -0,0 +1,8 @@ +{ config, pkgs, ... }: + +{ + imports = + [ + ./home.nix + ]; +}