summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2017-09-09 14:18:09 +0200
committerAlan Pearce2017-09-09 16:49:30 +0200
commit057e1926729ababa1cc6533e6ff5b5e52575513d (patch)
tree09560bd69a2200e7f8a143022e3664de5504204b
parentd5e8695fa082b59de9807cc27af47d90c519ac55 (diff)
downloadnixos-configuration-057e1926729ababa1cc6533e6ff5b5e52575513d.tar.lz
nixos-configuration-057e1926729ababa1cc6533e6ff5b5e52575513d.tar.zst
nixos-configuration-057e1926729ababa1cc6533e6ff5b5e52575513d.zip
Create laptop-relevant modules
-rw-r--r--modules/laptop.nix41
-rw-r--r--modules/thinkpad.nix31
-rw-r--r--satoshipad.nix2
3 files changed, 74 insertions, 0 deletions
diff --git a/modules/laptop.nix b/modules/laptop.nix
new file mode 100644
index 0000000..17acb38
--- /dev/null
+++ b/modules/laptop.nix
@@ -0,0 +1,41 @@
+{ config, pkgs, ... }:
+
+{ boot.kernelModules = [ "coretemp" ];
+  boot.extraModulePackages = with config.boot.kernelPackages; [
+    x86_energy_perf_policy
+  ];
+
+  hardware = {
+    bluetooth.enable = true;
+  };
+
+  environment.systemPackages = with pkgs; [
+    powerstat
+    powertop
+  ];
+
+  programs.light.enable = true;
+
+  services.logind.extraConfig = ''
+    IdleAction=suspend
+    IdleActionSec=600
+  '';
+
+  services.tlp = {
+    enable = true;
+    extraConfig = ''
+      CPU_SCALING_GOVERNOR_ON_BAT=powersave
+    '';
+  };
+
+  services.xserver = {
+    libinput = {
+      enable = true;
+      naturalScrolling = true;
+      disableWhileTyping = true;
+    };
+  };
+
+  systemd.services.nixos-upgrade.unitConfig.ConditionACPower = true;
+  systemd.services.nix-gc.unitConfig.ConditionACPower = true;
+}
diff --git a/modules/thinkpad.nix b/modules/thinkpad.nix
new file mode 100644
index 0000000..009e3f0
--- /dev/null
+++ b/modules/thinkpad.nix
@@ -0,0 +1,31 @@
+{ config, pkgs, ... }:
+
+{ boot.kernelModules = [ "tp_smapi" ];
+  boot.blacklistedKernelModules = [ "thinkpad_ec" ];
+  boot.extraModulePackages = with config.boot.kernelPackages; [
+    # acpi_call
+    tp_smapi
+  ];
+
+  hardware.trackpoint = {
+    enable = true;
+    emulateWheel = true;
+  };
+
+  services.thinkfan = {
+    enable = true;
+    sensor = "/sys/class/thermal/thermal_zone0/temp";
+  };
+
+  services.tlp = {
+    enable = true;
+    extraConfig = ''
+      # Newer Thinkpads have a battery firmware
+      # it conflicts with TLP if stop thresholds are set
+      START_CHARGE_THRESH_BAT0=70
+      STOP_CHARGE_THRESH_BAT0=80
+      START_CHARGE_THRESH_BAT1=70
+      STOP_CHARGE_THRESH_BAT1=80
+    '';
+  };
+}
diff --git a/satoshipad.nix b/satoshipad.nix
index ff3a104..9d1cbe6 100644
--- a/satoshipad.nix
+++ b/satoshipad.nix
@@ -4,6 +4,8 @@
   imports = [
     ./hardware-configuration.nix
     ./modules/grub2.nix
+    ./modules/laptop.nix
+    ./modules/thinkpad.nix
   ];
 
   networking.hostName = "satoshipad";