From acbac35042a6ab74936482d5f0430336aff5989c Mon Sep 17 00:00:00 2001 From: NullBite Date: Thu, 28 Dec 2023 04:55:45 -0500 Subject: [PATCH] Add desktop config (nullbox) --- flake.nix | 8 +++ hosts/nullbox/configuration.nix | 72 ++++++++++++++++++++++++ hosts/nullbox/hardware-configuration.nix | 52 +++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 hosts/nullbox/configuration.nix create mode 100644 hosts/nullbox/hardware-configuration.nix diff --git a/flake.nix b/flake.nix index 6f6127b..2ddbd1b 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,14 @@ ./roles/desktop.nix ]; }; + nullbox = lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./hosts/nullbox/configuration.nix + ./roles/remote.nix + ./roles/desktop.nix + ]; + }; }; }; } diff --git a/hosts/nullbox/configuration.nix b/hosts/nullbox/configuration.nix new file mode 100644 index 0000000..9ee7f9a --- /dev/null +++ b/hosts/nullbox/configuration.nix @@ -0,0 +1,72 @@ +# vim: set ts=2 sw=2 et: +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running `nixos-help`). + +{ config, lib, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # cryptsetup + boot.initrd.luks.devices = { + lvmroot = { + device="/dev/disk/by-uuid/85b5f22e-0fa5-4f0d-8fba-f800a0b41671"; + allowDiscards = true; + fallbackToPassword = true; + preLVM = true; + }; + }; + + # bootloader setup + boot.loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + # grub = { + # enable = true; + # efiSupport = true; + # device = "nodev"; + # }; + systemd-boot = { + enable = true; + netbootxyz.enable = true; + memtest86.enable = true; + }; + }; + + # Use the systemd-boot EFI boot loader. + # boot.loader.systemd-boot.enable = true; + # boot.loader.efi.canTouchEfiVariables = true; + # see custom-hardware-configuration.nix + + + # networking.hostName = "nixos"; # Define your hostname. + networking.hostName = "nullbox"; + # Pick only one of the below networking options. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + time.timeZone = "America/New_York"; + + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It's perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.11"; # Did you read the comment? + +} + diff --git a/hosts/nullbox/hardware-configuration.nix b/hosts/nullbox/hardware-configuration.nix new file mode 100644 index 0000000..01e0798 --- /dev/null +++ b/hosts/nullbox/hardware-configuration.nix @@ -0,0 +1,52 @@ +# 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" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/e36d1ab4-d18b-434e-80b5-0efca0652eb5"; + fsType = "btrfs"; + options = [ "subvol=nixos/@root" ]; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/e36d1ab4-d18b-434e-80b5-0efca0652eb5"; + fsType = "btrfs"; + options = [ "subvol=@home" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/F6A5-3128"; + fsType = "vfat"; + }; + + fileSystems."/.btrfsroot" = + { device = "/dev/disk/by-uuid/e36d1ab4-d18b-434e-80b5-0efca0652eb5"; + fsType = "btrfs"; + options = [ "subvolume=/" ]; + }; + + swapDevices = [ ]; + + # 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; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp3s0.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; +}