aboutsummaryrefslogtreecommitdiffstats
path: root/hosts/joshua
diff options
context:
space:
mode:
authorsadbeast <sadbeast@sadbeast.com>2024-05-30 00:47:47 +0000
committersadbeast <sadbeast@sadbeast.com>2024-10-05 16:44:14 -0700
commit09513b5c4e4babfaefdd06c592ef34c0908dc572 (patch)
tree5a9af6ef0407346c223334e295adc8012654f112 /hosts/joshua
downloadnix-config-09513b5c4e4babfaefdd06c592ef34c0908dc572.tar.gz
nix-config-09513b5c4e4babfaefdd06c592ef34c0908dc572.tar.bz2
oh god what have i doneHEADmain
Diffstat (limited to 'hosts/joshua')
-rw-r--r--hosts/joshua/default.nix18
-rw-r--r--hosts/joshua/hardware-configuration.nix98
2 files changed, 116 insertions, 0 deletions
diff --git a/hosts/joshua/default.nix b/hosts/joshua/default.nix
new file mode 100644
index 0000000..f2cdd3a
--- /dev/null
+++ b/hosts/joshua/default.nix
@@ -0,0 +1,18 @@
+{
+ imports = [
+ ./hardware-configuration.nix
+
+ ../common/global
+ ];
+
+ # Use the systemd-boot EFI boot loader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "joshua";
+
+ sound.enable = true;
+
+ # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
+ system.stateVersion = "24.05";
+}
diff --git a/hosts/joshua/hardware-configuration.nix b/hosts/joshua/hardware-configuration.nix
new file mode 100644
index 0000000..fd53e13
--- /dev/null
+++ b/hosts/joshua/hardware-configuration.nix
@@ -0,0 +1,98 @@
+# 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" "usbhid" "usb_storage" "sd_mod" "sr_mod"];
+ boot.initrd.kernelModules = [];
+ boot.kernelModules = [];
+ boot.extraModulePackages = [];
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/32a45644-86e5-42c0-96e9-343e8078349e";
+ fsType = "btrfs";
+ options = ["subvol=root" "noatime"];
+ };
+
+ # Note `lib.mkBefore` is used instead of `lib.mkAfter` here.
+ #boot.initrd.postDeviceCommands = pkgs.lib.mkBefore ''
+ # mkdir -p /mnt
+
+ # # We first mount the btrfs root to /mnt
+ # # so we can manipulate btrfs subvolumes.
+ # mount -o subvol=/ /dev/mapper/enc /mnt
+
+ # # While we're tempted to just delete /root and create
+ # # a new snapshot from /root-blank, /root is already
+ # # populated at this point with a number of subvolumes,
+ # # which makes `btrfs subvolume delete` fail.
+ # # So, we remove them first.
+ # #
+ # # /root contains subvolumes:
+ # # - /root/var/lib/portables
+ # # - /root/var/lib/machines
+ # #
+ # # I suspect these are related to systemd-nspawn, but
+ # # since I don't use it I'm not 100% sure.
+ # # Anyhow, deleting these subvolumes hasn't resulted
+ # # in any issues so far, except for fairly
+ # # benign-looking errors from systemd-tmpfiles.
+ # btrfs subvolume list -o /mnt/root |
+ # cut -f9 -d' ' |
+ # while read subvolume; do
+ # echo "deleting /$subvolume subvolume..."
+ # btrfs subvolume delete "/mnt/$subvolume"
+ # done &&
+ # echo "deleting /root subvolume..." &&
+ # btrfs subvolume delete /mnt/root
+
+ # echo "restoring blank /root subvolume..."
+ # btrfs subvolume snapshot /mnt/root-blank /mnt/root
+
+ # # Once we're done rolling back to a blank snapshot,
+ # # we can unmount /mnt and continue on the boot process.
+ # umount /mnt
+ #'';
+
+ fileSystems."/nix" = {
+ device = "/dev/disk/by-uuid/32a45644-86e5-42c0-96e9-343e8078349e";
+ fsType = "btrfs";
+ options = ["subvol=nix" "noatime"];
+ };
+
+ fileSystems."/persistent" = {
+ device = "/dev/disk/by-uuid/32a45644-86e5-42c0-96e9-343e8078349e";
+ fsType = "btrfs";
+ neededForBoot = true;
+ options = ["subvol=persist" "noatime"];
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/323A-5741";
+ fsType = "vfat";
+ options = ["fmask=0022" "dmask=0022"];
+ };
+
+ swapDevices = [
+ {device = "/dev/disk/by-uuid/1962cd0f-4063-4996-a33c-8ebaa9ecea1d";}
+ ];
+
+ # 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.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}