modules/laptop.nix (view raw)
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 | { 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;
}
|