diff --git a/README.org b/README.org index cd0d6ca..710fb62 100644 --- a/README.org +++ b/README.org @@ -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: +- ZFS pool configuration: hardware-configuration.nix - Globally installed packages: software.nix - Network and VPN configuration: networking.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 - Development tools: development.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* diff --git a/configuration.nix b/configuration.nix index 0eefac6..e5c8703 100644 --- a/configuration.nix +++ b/configuration.nix @@ -65,39 +65,6 @@ time.timeZone = "Europe/Brussels"; 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 system.stateVersion = "20.09"; @@ -123,15 +90,9 @@ dates = "14:00"; }; - # Suspend to RAM/disk when battery is critical - services.upower = { - enable = true; - percentageAction = 5; - criticalPowerAction = "HybridSleep"; - }; - # Import other configuration modules imports = [ + ./modules/hardware-configuration.nix ./modules/software.nix ./modules/networking.nix ./modules/gui.nix @@ -140,7 +101,7 @@ ./modules/development.nix ./modules/printing.nix ./modules/periodic.nix - ./modules/hardware-configuration.nix + ./modules/power.nix ]; } diff --git a/modules/power.nix b/modules/power.nix new file mode 100644 index 0000000..3e9f9e3 --- /dev/null +++ b/modules/power.nix @@ -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; + }; +}