nix: update nixpkgs
[julm/julm-nix.git] / nixos / profiles / hardware / X200.nix
index 3a8678825f8a3720b1735d9f73d6c7b26317b0cc..5a2e0e939cc1d75a5967f83e7ed9b43ae56b870a 100644 (file)
@@ -1,11 +1,69 @@
-{ config, ... }:
+{ pkgs, lib, config, ... }:
+with lib;
 {
   imports = [
-    ./thinkpad.nix
+    ../acpid.nix
+    ../tlp.nix
   ];
 
-  # tp_smapi works on ThinkPads made before 2013. See compat table:
-  # https://www.thinkwiki.org/wiki/Tp_smapi#Model-specific_status
-  boot.kernelModules = [ "tp_smapi" ];
-  boot.extraModulePackages = with config.boot.kernelPackages; [ tp_smapi ];
+  nixpkgs.hostPlatform = {
+    system = "x86_64-linux";
+    config = "x86_64-unknown-linux-gnu";
+  };
+
+  boot.kernelModules = [ "kvm-intel" ];
+  # https://bugzilla.kernel.org/show_bug.cgi?id=110941
+  boot.initrd.availableKernelModules = [
+    "ahci"
+    "drbg"
+    "ehci_pci"
+    "gf128mul"
+    "hmac"
+    "sd_mod"
+    # tp_smapi works on ThinkPads made before 2013. See compat table:
+    # https://www.thinkwiki.org/wiki/Tp_smapi#Model-specific_status
+    "tp_smapi"
+  ];
+  boot.extraModulePackages = with config.boot.kernelPackages; [
+    tp_smapi
+  ];
+  boot.kernelParams = [ "intel_pstate=no_hwp" ];
+
+  environment.systemPackages = [
+    pkgs.geteltorito
+  ];
+
+  hardware.cpu.intel.updateMicrocode = mkDefault config.hardware.enableRedistributableFirmware;
+  hardware.opengl.extraPackages = [
+    pkgs.intel-media-driver # LIBVA_DRIVER_NAME=iHD
+    # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
+    (if (versionOlder (versions.majorMinor version) "23.11") then pkgs.vaapiIntel else pkgs.intel-vaapi-driver)
+    pkgs.libvdpau-va-gl
+    pkgs.vaapiVdpau
+  ];
+  hardware.trackpoint.enable = mkDefault true;
+  hardware.trackpoint.emulateWheel = mkDefault config.hardware.trackpoint.enable;
+
+  nix.settings.auto-optimise-store = false;
+
+  services.thinkfan = {
+    enable = true;
+    smartSupport = true;
+    levels = [
+      [ 0 0 57 ]
+      [ 1 56 60 ]
+      [ 2 59 63 ]
+      [ 3 62 65 ]
+      [ 4 64 67 ]
+      [ 5 66 72 ]
+      [ 6 71 78 ]
+      [ 7 77 82 ]
+      [ 127 81 32767 ]
+    ];
+  };
+  services.upower.enable = true;
+  services.libinput.enable = mkDefault true;
+
+  # No pstore backend available on this system.
+  systemd.services.mount-pstore.enable = false;
 }