From 2e39984d14749a24b4f75c6ea886a0caa4341302 Mon Sep 17 00:00:00 2001 From: John Ogle Date: Sun, 17 Aug 2025 15:24:05 -0700 Subject: [PATCH] [zix790prors] Add new machine --- flake.nix | 12 +++ machines/zix790prors/configuration.nix | 82 +++++++++++++++++++ .../zix790prors/hardware-configuration.nix | 57 +++++++++++++ 3 files changed, 151 insertions(+) create mode 100644 machines/zix790prors/configuration.nix create mode 100644 machines/zix790prors/hardware-configuration.nix diff --git a/flake.nix b/flake.nix index 78d8685..a9b25a1 100644 --- a/flake.nix +++ b/flake.nix @@ -74,6 +74,18 @@ ]; }; + nixosConfigurations.zix790prors = nixpkgs.lib.nixosSystem rec { + system = "x86_64-linux"; + modules = baseModules ++ [ + ./machines/zix790prors/configuration.nix + inputs.home-manager.nixosModules.home-manager + { + home-manager.users.johno = import ./home/home.nix; + home-manager.extraSpecialArgs = { inherit system; }; + } + ]; + }; + # Live USB ISO configuration nixosConfigurations.live-usb = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; diff --git a/machines/zix790prors/configuration.nix b/machines/zix790prors/configuration.nix new file mode 100644 index 0000000..762c3fb --- /dev/null +++ b/machines/zix790prors/configuration.nix @@ -0,0 +1,82 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page, on +# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + +{ lib, pkgs, ... }: + +with lib; + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + roles = { + audio.enable = true; + bluetooth.enable = true; + desktop = { + enable = true; + gaming = true; + kde = true; + sddm = true; + wayland = true; + }; + users.enable = true; + virtualisation.enable = true; + }; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "zix790prors"; # Define your hostname. + + # Enable networking + networking.networkmanager.enable = true; + + # NVIDIA Graphics configuration + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.graphics.enable = true; + hardware.graphics.enable32Bit = true; + + hardware.nvidia = { + # Modesetting is required. + modesetting.enable = true; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = pkgs.linuxPackages.nvidiaPackages.stable; + + # Use open source kernel modules (recommended for RTX/GTX 16xx and newer) + # Set to false if you have an older GPU + open = true; + + # For gaming performance + powerManagement.enable = false; + powerManagement.finegrained = false; + }; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.11"; # Did you read the comment? + +} \ No newline at end of file diff --git a/machines/zix790prors/hardware-configuration.nix b/machines/zix790prors/hardware-configuration.nix new file mode 100644 index 0000000..d371517 --- /dev/null +++ b/machines/zix790prors/hardware-configuration.nix @@ -0,0 +1,57 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/76B0-738E"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + roles.btrfs = { + enable = true; + filesystems."/dev/disk/by-uuid/ec22734b-d1a3-4c99-8c6f-86f6a8d79007" = { + mountpoints = { + "/" = { + compression = "zstd"; + extraOptions = [ "noatime" ]; + }; + }; + scrub.enable = true; + deduplication = { + enable = true; + hashTableSizeMB = 32; + verbosity = "err"; + }; + }; + filesystems."/dev/disk/by-uuid/4f9844ac-c1ad-4426-8eb3-21f2306345fb" = { + mountpoints = { + "/games" = { + extraOptions = [ "noatime" ]; + }; + }; + scrub.enable = true; + deduplication = { + enable = true; + hashTableSizeMB = 32; + verbosity = "err"; + }; + }; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}