From 657149e5c34a2bd9ec770be956339a0ec66c055c Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Wed, 19 Jun 2024 14:10:37 +0000 Subject: [PATCH] Add voyager host --- hosts/default.nix | 11 +++ hosts/voyager/default.nix | 89 ++++++++++++++++++++++++ hosts/voyager/hardware-configuration.nix | 69 ++++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 hosts/voyager/default.nix create mode 100644 hosts/voyager/hardware-configuration.nix diff --git a/hosts/default.nix b/hosts/default.nix index 5ce2bb3..e334112 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -31,4 +31,15 @@ in inputs.lanzaboote.nixosModules.lanzaboote ] ++ shared; }; + + voyager = lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit lib inputs self; }; + modules = [ + ./voyager + inputs.home-manager.nixosModules.home-manager + inputs.impermanence.nixosModules.impermanence + inputs.lanzaboote.nixosModules.lanzaboote + ] ++ shared; + }; } diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix new file mode 100644 index 0000000..f0aa7fc --- /dev/null +++ b/hosts/voyager/default.nix @@ -0,0 +1,89 @@ +# 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`). + +{ config, lib, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + boot.supportedFilesystems = [ "btrfs" ]; + hardware.enableAllFirmware = true; + + # My flake disables this by default for security reasons. However, with an encrypted setup, + # which requires entering password before booting anyways, this is not a security concern, and + # changing kernel params can be useful sometimes for debugging + boot.loader.systemd-boot.editor = true; + + # CPU usage configuration for nix + nix.settings = { + max-jobs = 8; + cores = 6; + }; + + # NixOS release from which this machine was first installed + # (for stateful data, like file locations and db versions) + # Leave this alone! + system.stateVersion = "24.05"; + + myOptions = { + system = { + hostname = "voyager"; + username = "itsdrike"; + + sound.enable = true; + bluetooth.enable = true; + + # TODO: Impermanence + }; + + device = { + roles = { + type = "laptop"; + virtual-machine = false; + }; + cpu.type = "amd"; + gpu.type = null; + hasTPM = true; + }; + + security = { + auditd = { + enable = true; + autoPrune.enable = true; + }; + }; + + workstation = { + printing.enable = true; + }; + + home-manager = { + enable = true; + stateVersion = "24.05"; + + git = { + userName = "ItsDrike"; + userEmail = "itsdrike@protonmail.com"; + signing = { + enable = true; + key = "FA2745890B7048C0"; + }; + }; + + wms.hyprland = { + enable = true; + monitor = [ + "eDP-1, 1920x1080@60, 0x0, 1" + ]; + }; + + programs = { + spotify.enable = true; + }; + }; + }; +} diff --git a/hosts/voyager/hardware-configuration.nix b/hosts/voyager/hardware-configuration.nix new file mode 100644 index 0000000..08dbecf --- /dev/null +++ b/hosts/voyager/hardware-configuration.nix @@ -0,0 +1,69 @@ +# 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 = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + boot.initrd.luks.devices."cryptfs".device = "/dev/disk/by-label/NIXOS-CRYPTFS"; + + fileSystems."/" = + { device = "/dev/disk/by-label/NIXOS-FS"; + fsType = "btrfs"; + options = [ "subvol=root" "noatime" "compress=zstd:3" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-label/NIXOS-FS"; + fsType = "btrfs"; + options = [ "subvol=nix" "noatime" "compress=zstd:3" ]; + }; + + fileSystems."/persist" = + { device = "/dev/disk/by-label/NIXOS-FS"; + fsType = "btrfs"; + options = [ "subvol=persist" "noatime" "compress=zstd:3" ]; + neededForBoot = true; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-label/NIXOS-FS"; + fsType = "btrfs"; + options = [ "subvol=home" "noatime" "compress=zstd:3" ]; + }; + + fileSystems."/data" = + { device = "/dev/disk/by-label/NIXOS-FS"; + fsType = "btrfs"; + options = [ "subvol=data" "noatime" "compress=zstd:3" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-label/EFI"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-label/SWAP"; } + ]; + + # 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.enp2s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}