Laptop

From NixOS Wiki
Revision as of 09:44, 18 June 2023 by imported>AmnesiaAmesia (Other example correction)

Power management

NixOS has several tools to help you manage the power on your system.

A common tool used to save power on laptops is tlp, which have sensible defaults for most laptops. To enable tlp you simply just write services.tlp.enable = true; in your configraion.nix. However if you need a specific configuration you can do as shown in the example here below.

services.tlp = {
      enable = true;
      settings = {
        CPU_SCALING_GOVERNOR_ON_AC = "performance";
        CPU_SCALING_GOVERNOR_ON_BAT = "powersave";

        CPU_ENERGY_PERF_POLICY_ON_BAT = "powersave";
        CPU_ENERGY_PERF_POLICY_ON_AC = "performance";

        CPU_SCALING_MIN_FREQ_ON_AC = 800000;
        CPU_SCALING_MAX_FREQ_ON_AC = 5000000;
        CPU_SCALING_MIN_FREQ_ON_BAT = 800000;
        CPU_SCALING_MAX_FREQ_ON_BAT = 2600000;
      };
    };

This example enables tlp and sets the minimum and maximum frequencies for the cpu based on whether it is plugged into power or not. It also changes the cpu scaling governor based on this.

Troubleshooting

My laptops runs hot when on power, but not on battery

If you use tlp and experience this issue a simple solution can be to tell tlp to always run in battery mode.

services.tlp = {
      enable = true;
      settings = {
	TLP_DEFAULT_MODE = "BAT";
	TLP_PERSISTENT_DEFAULT = 1;
      };
    };