wireguard: avoid restart by not using inputs.self
[julm/julm-nix.git] / hosts / oignon / hardware.nix
index 22203bc377653ccf11fa701d431d70d5fe218b3a..6807894b62391bcedd640116b9140135ca7bd959 100644 (file)
@@ -1,70 +1,85 @@
-{ config, lib, pkgs, hostName, ... }:
+{ pkgs, hostName, ... }:
 {
-imports = [
-  ../../nixos/profiles/acpid.nix
-  ../../nixos/profiles/hardware/thinkpad.nix
-  ../../nixos/profiles/zfs.nix
-  ../../nixos/profiles/zramSwap.nix
-];
+  imports = [
+    ../../nixos/profiles/hardware/X201.nix
+    ../../nixos/profiles/zfs.nix
+    ../../nixos/profiles/zramSwap.nix
+  ];
 
-/*
-boot.loader.efi = {
-  canTouchEfiVariables = true;
-  efiSysMountPoint = "/boot/efi";
-};
-*/
-boot.loader.grub = {
-  enable  = true;
-  version = 2;
-  device  = "/dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S1SMNSAFC36436X";
-  configurationLimit = 3;
+  # Setting the machine-id avoids to reencrypt all credentials
+  # when reinstalling NixOS on a new drive.
+  # Manually generated with : uuidgen | tr -d -
+  environment.etc.machine-id.source = ./machine-id.clear;
 
-  #zfsSupport = true;
-  #efiSupport = true;
-  #enableCryptodisk = true;
-};
+  # The 32-bit host id of the host, formatted as 8 hexadecimal characters.
+  # You should try to make this id unique among your hosts.
+  # Manually generated with : uuidgen | head -c8
+  networking.hostId = "ce53d0c3";
 
-fileSystems."/boot" =
-  { device = "/dev/disk/by-partlabel/${hostName}_ssd_boot";
-    fsType = "ext2";
-  };
-fileSystems."/boot/efi" =
-  { device = "/dev/disk/by-partlabel/${hostName}_ssd_efi";
-    fsType = "vfat";
-  };
-swapDevices = [
-  { device = "/dev/disk/by-partlabel/${hostName}_ssd_swap";
-    randomEncryption = {
-      enable = true;
-      cipher = "aes-xts-plain64";
-      source = "/dev/urandom";
+  /*
+    boot.loader.efi = {
+    canTouchEfiVariables = true;
+    efiSysMountPoint = "/boot/efi";
     };
-  }
-];
+  */
+  boot.loader.grub = {
+    enable = true;
+    memtest86.enable = true;
+    version = 2;
+    devices = [
+      "/dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S1SMNSAFC36436X"
+    ];
+    configurationLimit = 16;
 
-# The 32-bit host id of the host, formatted as 8 hexadecimal characters.
-# You should try to make this id unique among your hosts.
-# Manually generated with : head -c4 /dev/urandom | od -A none -t x4 | cut -d ' ' -f 2
-networking.hostId = "ce53d0c3";
+    #zfsSupport = true;
+    #efiSupport = true;
+    #enableCryptodisk = true;
+  };
 
-boot.supportedFilesystems = [ "ntfs" "vfat" ];
-boot.extraModulePackages = [
-  #config.boot.kernelPackages.exfat-nofuse
-];
+  # Note that gobi_loader -2000 has to be rerun if the SIM is hot swapped
+  services.udev.extraRules = ''
+    ACTION=="add", SUBSYSTEM=="tty", KERNEL=="ttyUSB*", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9204", RUN+="${pkgs.gobi_loader}/lib/udev/gobi_loader -2000 $env{DEVNAME} /home/julm/documents/thinkpad-x201/gobi"
+  '';
 
-powerManagement.powertop.enable = true;
+  fileSystems."/boot" =
+    {
+      device = "/dev/disk/by-partlabel/${hostName}_ssd_boot";
+      fsType = "ext2";
+    };
+  fileSystems."/boot/efi" =
+    {
+      device = "/dev/disk/by-partlabel/${hostName}_ssd_efi";
+      fsType = "vfat";
+    };
+  swapDevices = [
+    {
+      device = "/dev/disk/by-partlabel/${hostName}_ssd_swap";
+      randomEncryption = {
+        enable = true;
+        cipher = "aes-xts-plain64";
+        source = "/dev/urandom";
+      };
+    }
+  ];
 
-fileSystems."/" =
-  { device = "${hostName}/root";
-    fsType = "zfs";
-  };
-fileSystems."/nix" =
-  { device = "${hostName}/nix";
-    fsType = "zfs";
-  };
-fileSystems."/var" =
-  { device = "${hostName}/var";
-    fsType = "zfs";
-  };
+  boot.supportedFilesystems = [ "ntfs" "vfat" ];
+
+  fileSystems."/" =
+    {
+      device = "${hostName}/root";
+      fsType = "zfs";
+    };
+  fileSystems."/nix" =
+    {
+      device = "${hostName}/nix";
+      fsType = "zfs";
+    };
+  fileSystems."/var" =
+    {
+      device = "${hostName}/var";
+      fsType = "zfs";
+    };
+
+  services.pipewire.jack.enable = true;
 
 }