modularize thinkpad hw config
This commit is contained in:
parent
6d4453b618
commit
79368eafd5
5 changed files with 92 additions and 66 deletions
23
modules/hardware/battery-power.nix
Normal file
23
modules/hardware/battery-power.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
powerManagement.powertop.enable = true;
|
||||
|
||||
services = {
|
||||
udev.extraRules = ''
|
||||
#ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"
|
||||
ACTION=="add", SUBSYSTEM=="pci", TEST=="power/control", ATTR{power/control}="auto"
|
||||
SUBSYSTEM=="power_supply", ACTION=="change", RUN+="${pkgs.writeShellScript "battery-thresholds" ''
|
||||
echo 80 > /sys/class/power_supply/BAT1/charge_control_start_threshold || true
|
||||
echo 85 > /sys/class/power_supply/BAT1/charge_control_end_threshold || true
|
||||
''}"
|
||||
'';
|
||||
upower = {
|
||||
enable = true;
|
||||
percentageCritical = 15;
|
||||
percentageAction = 10;
|
||||
usePercentageForPolicy = true;
|
||||
allowRiskyCriticalPowerAction = true;
|
||||
criticalPowerAction = "HybridSleep";
|
||||
};
|
||||
};
|
||||
}
|
||||
37
modules/hardware/cpu-thermal.nix
Normal file
37
modules/hardware/cpu-thermal.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
services = {
|
||||
thermald.enable = true;
|
||||
throttled.enable = true;
|
||||
auto-cpufreq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
charger = {
|
||||
governor = "performance";
|
||||
energy_performance_preference = "balance_performance";
|
||||
turbo = "auto";
|
||||
};
|
||||
battery = {
|
||||
governor = "powersave";
|
||||
energy_performance_preference = "balance_power";
|
||||
turbo = "never";
|
||||
enable_thresholds = "true";
|
||||
start_threshold = "80";
|
||||
stop_threshold = "85";
|
||||
};
|
||||
};
|
||||
};
|
||||
thinkfan = {
|
||||
enable = true;
|
||||
levels = [
|
||||
[ "level auto" 0 55 ]
|
||||
[ 3 55 65 ]
|
||||
[ 7 65 75 ]
|
||||
[ "level full-speed" 75 100 ]
|
||||
];
|
||||
# sensors = [
|
||||
# { type = "hwmon"; query = "/sys/devices/platform/coretemp.0/hwmon"; }
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
13
modules/hardware/igpu.nix
Normal file
13
modules/hardware/igpu.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
intel-compute-runtime
|
||||
libva-vdpau-driver
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
}
|
||||
7
modules/hardware/power-button.nix
Normal file
7
modules/hardware/power-button.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
{
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "suspend";
|
||||
HandlePowerKey = "ignore";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,9 +1,14 @@
|
|||
{ pkgs, ... }: {
|
||||
import = [
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./tzupdate.nix
|
||||
./hibernation.nix
|
||||
./igpu.nix
|
||||
./cpu-thermal.nix
|
||||
./battery-power.nix
|
||||
./power-button.nix
|
||||
];
|
||||
powerManagement.powertop.enable = true;
|
||||
|
||||
security = {
|
||||
tpm2 = {
|
||||
enable = true;
|
||||
|
|
@ -11,82 +16,23 @@
|
|||
tctiEnvironment.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware = {
|
||||
enableRedistributableFirmware = true; # T480 WiFi firmware fix
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
intel-compute-runtime
|
||||
libva-vdpau-driver
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages;
|
||||
kernel.sysctl."vm.laptop_mode" = 5;
|
||||
initrd.availableKernelModules = [ "thinkpad_acpi" ];
|
||||
};
|
||||
|
||||
services = {
|
||||
logind.settings.Login = {
|
||||
HandleLidSwitch = "suspend";
|
||||
HandlePowerKey = "ignore";
|
||||
};
|
||||
fstrim.enable = true;
|
||||
thermald.enable = true;
|
||||
throttled.enable = true;
|
||||
fwupd.enable = true;
|
||||
udev.extraRules = ''
|
||||
#ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"
|
||||
ACTION=="add", SUBSYSTEM=="pci", TEST=="power/control", ATTR{power/control}="auto"
|
||||
SUBSYSTEM=="power_supply", ACTION=="change", RUN+="${pkgs.writeShellScript "battery-thresholds" ''
|
||||
echo 80 > /sys/class/power_supply/BAT1/charge_control_start_threshold || true
|
||||
echo 85 > /sys/class/power_supply/BAT1/charge_control_end_threshold || true
|
||||
''}"
|
||||
'';
|
||||
upower = {
|
||||
enable = true;
|
||||
percentageCritical = 15;
|
||||
percentageAction = 10;
|
||||
usePercentageForPolicy = true;
|
||||
allowRiskyCriticalPowerAction = true;
|
||||
criticalPowerAction = "HybridSleep";
|
||||
};
|
||||
auto-cpufreq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
charger = {
|
||||
governor = "performance";
|
||||
energy_performance_preference = "balance_performance";
|
||||
turbo = "auto";
|
||||
};
|
||||
battery = {
|
||||
governor = "powersave";
|
||||
energy_performance_preference = "balance_power";
|
||||
turbo = "never";
|
||||
enable_thresholds = "true";
|
||||
start_threshold = "80";
|
||||
stop_threshold = "85";
|
||||
};
|
||||
};
|
||||
};
|
||||
thinkfan = {
|
||||
enable = true;
|
||||
levels = [
|
||||
[ "level auto" 0 55 ]
|
||||
[ 3 55 65 ]
|
||||
[ 7 65 75 ]
|
||||
[ "level full-speed" 75 100 ]
|
||||
];
|
||||
# sensors = [
|
||||
# { type = "hwmon"; query = "/sys/devices/platform/coretemp.0/hwmon"; }
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue