Move power management settings to independent file

This commit is contained in:
coolneng 2020-09-03 02:36:09 +02:00
parent a61a2f79bd
commit 3699684117
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
3 changed files with 47 additions and 42 deletions

View File

@ -6,6 +6,7 @@ Configuration files for my personal machine, powered by [[https://nixos.org/][Ni
The configuration is sliced into different files, per category: The configuration is sliced into different files, per category:
- ZFS pool configuration: hardware-configuration.nix
- Globally installed packages: software.nix - Globally installed packages: software.nix
- Network and VPN configuration: networking.nix - Network and VPN configuration: networking.nix
- Window manager and userland services: gui.nix - Window manager and userland services: gui.nix
@ -13,6 +14,7 @@ The configuration is sliced into different files, per category:
- Sound and music setup: audio.nix - Sound and music setup: audio.nix
- Development tools: development.nix - Development tools: development.nix
- Printing and scanner client: printing.nix - Printing and scanner client: printing.nix
- ZFS pool configuration: hardware-configuration.nix - Systemd user services and timers: periodic.nix
- Power management: power.nix
All the modules are imported in *configuration.nix* All the modules are imported in *configuration.nix*

View File

@ -65,39 +65,6 @@
time.timeZone = "Europe/Brussels"; time.timeZone = "Europe/Brussels";
services.timesyncd.enable = true; services.timesyncd.enable = true;
# Enable the TLP daemon
services.tlp = {
enable = true;
settings = {
# Use the new CPU frequency scaling governor
CPU_SCALING_GOVERNOR_ON_AC = "schedutil";
CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
# Adjust CPU frequencies accordingly to the power state
CPU_SCALING_MIN_FREQ_ON_AC = 800000;
CPU_SCALING_MAX_FREQ_ON_AC = 3000000;
CPU_SCALING_MIN_FREQ_ON_BAT = 800000;
CPU_SCALING_MAX_FREQ_ON_BAT = 2300000;
# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power saving (recommended: 1).
# Default: 0 (AC), 1 (BAT)
SOUND_POWER_SAVE_ON_AC = 0;
SOUND_POWER_SAVE_ON_BAT = 1;
# Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable.
# Default: on (AC), auto (BAT)
RUNTIME_PM_ON_AC = "on";
RUNTIME_PM_ON_BAT = "auto";
# Battery feature drivers: 0=disable, 1=enable
# Default: 1 (all)
NATACPI_ENABLE = 1;
TPACPI_ENABLE = 1;
TPSMAPI_ENABLE = 1;
};
};
# NixOS version # NixOS version
system.stateVersion = "20.09"; system.stateVersion = "20.09";
@ -123,15 +90,9 @@
dates = "14:00"; dates = "14:00";
}; };
# Suspend to RAM/disk when battery is critical
services.upower = {
enable = true;
percentageAction = 5;
criticalPowerAction = "HybridSleep";
};
# Import other configuration modules # Import other configuration modules
imports = [ imports = [
./modules/hardware-configuration.nix
./modules/software.nix ./modules/software.nix
./modules/networking.nix ./modules/networking.nix
./modules/gui.nix ./modules/gui.nix
@ -140,7 +101,7 @@
./modules/development.nix ./modules/development.nix
./modules/printing.nix ./modules/printing.nix
./modules/periodic.nix ./modules/periodic.nix
./modules/hardware-configuration.nix ./modules/power.nix
]; ];
} }

42
modules/power.nix Normal file
View File

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
{
# Enable the TLP daemon
services.tlp = {
enable = true;
settings = {
# Use the new CPU frequency scaling governor
CPU_SCALING_GOVERNOR_ON_AC = "schedutil";
CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
# Adjust CPU frequencies accordingly to the power state
CPU_SCALING_MIN_FREQ_ON_AC = 800000;
CPU_SCALING_MAX_FREQ_ON_AC = 3000000;
CPU_SCALING_MIN_FREQ_ON_BAT = 800000;
CPU_SCALING_MAX_FREQ_ON_BAT = 2300000;
# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power saving (recommended: 1).
# Default: 0 (AC), 1 (BAT)
SOUND_POWER_SAVE_ON_AC = 0;
SOUND_POWER_SAVE_ON_BAT = 1;
# Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable.
# Default: on (AC), auto (BAT)
RUNTIME_PM_ON_AC = "on";
RUNTIME_PM_ON_BAT = "auto";
# Battery feature drivers: 0=disable, 1=enable
# Default: 1 (all)
NATACPI_ENABLE = 1;
TPACPI_ENABLE = 1;
TPSMAPI_ENABLE = 1;
};
};
# Suspend to RAM/disk when battery is critical
services.upower = {
enable = true;
percentageAction = 5;
};
}