summary refs log tree commit diff stats
path: root/modules/hardware/laptop.nix
blob: a09b12d7ffcf1df3fe002a79d80e198bebfaa8a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{ config, pkgs, lib, ... }:

{ boot.kernelModules = [ "coretemp" ];
  boot.extraModulePackages = with config.boot.kernelPackages; [
    x86_energy_perf_policy
  ];

  hardware = {
    bluetooth.enable = true;
  };

  environment.systemPackages = with pkgs; [
    powerstat
    powertop

    arandr
    autorandr
    disper
  ];

  # powerManagement.resumeCommands = ''
  #   AUTORANDR="autorandr -c"

  #   detect_display()
  #   {
  #     for X in /tmp/.X11-unix/X*; do
  #       D="''${X##/tmp/.X11-unix/X}"
  #       user=$(who | awk -vD="$D" '$5 ~ "\\(:"D"\\)$" {print $1}')
  #       if [ x"$user" != x"" ]; then
  #         export DISPLAY=":$D"
  #         /bin/su -c "''${AUTORANDR}" "$user"
  #       fi
  #     done
  #   }

  #   case "$1" in
  #     thaw|resume)
  #       detect_display
  #       ;;
  #   esac
  # '';

  programs.light.enable = true;

  services.logind.extraConfig = ''
    IdleAction=suspend
    IdleActionSec=600
  '';

  services.physlock.enable = false;

  services.tlp = {
    enable = true;
    extraConfig = ''
      CPU_SCALING_GOVERNOR_ON_BAT=powersave
    '';
  };

  services.udev.extraRules = ''
    # ACTION=="change", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/alan/.Xauthority", RUN+="${pkgs.autorandr}/bin/autorandr -c"
  '';

  services.xserver = {
    libinput = {
      enable = lib.mkDefault true;
      naturalScrolling = true;
      disableWhileTyping = true;
    };
  };

  systemd.services.nixos-upgrade.unitConfig.ConditionACPower = true;
  systemd.services.nix-gc.unitConfig.ConditionACPower = true;

  imports = [
    ../user-interface.nix
    ../remote-build.nix
  ];
}