mirror of
https://github.com/Ascyii/nixos.git
synced 2025-12-31 22:44:23 -05:00
66 lines
1.5 KiB
Nix
66 lines
1.5 KiB
Nix
{ config, lib, ... }:
|
|
|
|
let inherit (lib) mkOption types;
|
|
in {
|
|
|
|
options.batMode = mkOption {
|
|
type = types.enum [ "single" "double" ];
|
|
default = "single";
|
|
};
|
|
|
|
config = {
|
|
powerManagement.powertop.enable = true;
|
|
services.upower = {
|
|
enable = true;
|
|
|
|
# In accordance with the waybar battery colors
|
|
percentageLow = 30;
|
|
percentageCritical = 20;
|
|
percentageAction = 10;
|
|
|
|
criticalPowerAction = "PowerOff"; # This can destroy work
|
|
usePercentageForPolicy = true;
|
|
};
|
|
|
|
services.tlp = if config.batMode == "single" then {
|
|
enable = true;
|
|
settings = {
|
|
START_CHARGE_THRESH_BAT0 = 65;
|
|
STOP_CHARGE_THRESH_BAT0 = 85;
|
|
|
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
|
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
|
|
|
CPU_MIN_PERF_ON_AC = 0;
|
|
CPU_MAX_PERF_ON_AC = 100;
|
|
CPU_MIN_PERF_ON_BAT = 0;
|
|
CPU_MAX_PERF_ON_BAT = 65;
|
|
};
|
|
} else {
|
|
enable = true;
|
|
settings = {
|
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
|
|
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
|
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
|
|
|
CPU_MIN_PERF_ON_AC = 0;
|
|
CPU_MAX_PERF_ON_AC = 100;
|
|
CPU_MIN_PERF_ON_BAT = 0;
|
|
CPU_MAX_PERF_ON_BAT = 75;
|
|
|
|
# 0 is first
|
|
START_CHARGE_THRESH_BAT0 = 60;
|
|
STOP_CHARGE_THRESH_BAT0 = 85;
|
|
|
|
# 1 is second
|
|
START_CHARGE_THRESH_BAT1 = 60;
|
|
STOP_CHARGE_THRESH_BAT1 = 85;
|
|
};
|
|
};
|
|
|
|
};
|
|
}
|
|
|