summary refs log tree commit diff stats
path: root/system/modules/hardware/laptop.nix
diff options
context:
space:
mode:
authorAlan Pearce2019-10-02 16:55:35 +0200
committerAlan Pearce2019-10-02 16:55:35 +0200
commit340b2c244c0b7c331f6633edf9a69f1381916ad2 (patch)
tree2f430f20fbe01191c6b4a455bf792facef3f4fe7 /system/modules/hardware/laptop.nix
parentec7f1357d16ff2f4aa7430a2940a0b9519018595 (diff)
parent5016c7440ad771fd990e1aa142fc4de0bdc382bd (diff)
downloadnixfiles-340b2c244c0b7c331f6633edf9a69f1381916ad2.tar.lz
nixfiles-340b2c244c0b7c331f6633edf9a69f1381916ad2.tar.zst
nixfiles-340b2c244c0b7c331f6633edf9a69f1381916ad2.zip
Add 'system/' from commit '5016c7440ad771fd990e1aa142fc4de0bdc382bd'
git-subtree-dir: system
git-subtree-mainline: ec7f1357d16ff2f4aa7430a2940a0b9519018595
git-subtree-split: 5016c7440ad771fd990e1aa142fc4de0bdc382bd
Diffstat (limited to 'system/modules/hardware/laptop.nix')
-rw-r--r--system/modules/hardware/laptop.nix87
1 files changed, 87 insertions, 0 deletions
diff --git a/system/modules/hardware/laptop.nix b/system/modules/hardware/laptop.nix
new file mode 100644
index 00000000..17e27b63
--- /dev/null
+++ b/system/modules/hardware/laptop.nix
@@ -0,0 +1,87 @@
+{ config, pkgs, lib, ... }:
+
+{ boot.kernelModules = [ "coretemp" ];
+  boot.extraModulePackages = with config.boot.kernelPackages; [
+    x86_energy_perf_policy
+  ];
+
+  hardware = {
+    bluetooth = {
+      enable = true;
+      powerOnBoot = false;
+      package = pkgs.bluezFull;
+    };
+    pulseaudio = {
+      extraModules = with pkgs; [
+        pulseaudio-modules-bt
+      ];
+    };
+  };
+  systemd.services.bluetooth.wantedBy = lib.mkForce [];
+  systemd.timers.bluetooth = {
+    description = "Delayed startup of Bluetooth";
+    wantedBy = [ "timers.target" ];
+    timerConfig = {
+      OnActiveSec = "1 min";
+    };
+  };
+
+  environment.systemPackages = with pkgs; [
+    blueman
+    bluez-tools
+
+    powerstat
+    powertop
+
+    arandr
+    autorandr
+    disper
+  ];
+
+  programs.light.enable = true;
+
+  services.autorandr.enable = true;
+
+  services.logind.extraConfig = ''
+    IdleAction=suspend
+    IdleActionSec=600
+  '';
+
+  services.acpid = {
+    enable = true;
+    lidEventCommands = ''
+      ${pkgs.autorandr}/bin/autorandr --batch --change
+    '';
+  };
+
+  services.tlp = {
+    enable = true;
+    extraConfig = ''
+      CPU_SCALING_GOVERNOR_ON_BAT=powersave
+      ENERGY_PERF_POLICY_ON_BAT="balance_power"
+
+      SOUND_POWER_SAVE_ON_AC=60
+      DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wwan"
+    '';
+  };
+
+  services.xserver = {
+    libinput = {
+      enable = lib.mkDefault true;
+      naturalScrolling = true;
+      disableWhileTyping = true;
+    };
+    displayManager.sessionCommands = ''
+      ${pkgs.autorandr}/bin/autorandr --change --force
+      ${pkgs.blueman}/bin/blueman-applet &
+    '';
+  };
+
+  systemd.services.nixos-upgrade.unitConfig.ConditionACPower = true;
+  systemd.services.nix-gc.unitConfig.ConditionACPower = true;
+  systemd.services.docker-prune.unitConfig.ConditionACPower = true;
+
+  imports = [
+    ../user-interface.nix
+  ];
+}