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, ... }: {
|
{ pkgs, ... }:
|
||||||
import = [
|
{
|
||||||
|
imports = [
|
||||||
./tzupdate.nix
|
./tzupdate.nix
|
||||||
./hibernation.nix
|
./hibernation.nix
|
||||||
|
./igpu.nix
|
||||||
|
./cpu-thermal.nix
|
||||||
|
./battery-power.nix
|
||||||
|
./power-button.nix
|
||||||
];
|
];
|
||||||
powerManagement.powertop.enable = true;
|
|
||||||
security = {
|
security = {
|
||||||
tpm2 = {
|
tpm2 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -11,82 +16,23 @@
|
||||||
tctiEnvironment.enable = true;
|
tctiEnvironment.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
enableRedistributableFirmware = true; # T480 WiFi firmware fix
|
enableRedistributableFirmware = true; # T480 WiFi firmware fix
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
};
|
};
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
intel-media-driver
|
|
||||||
intel-compute-runtime
|
|
||||||
libva-vdpau-driver
|
|
||||||
libvdpau-va-gl
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages;
|
kernelPackages = pkgs.linuxPackages;
|
||||||
kernel.sysctl."vm.laptop_mode" = 5;
|
kernel.sysctl."vm.laptop_mode" = 5;
|
||||||
initrd.availableKernelModules = [ "thinkpad_acpi" ];
|
initrd.availableKernelModules = [ "thinkpad_acpi" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
logind.settings.Login = {
|
|
||||||
HandleLidSwitch = "suspend";
|
|
||||||
HandlePowerKey = "ignore";
|
|
||||||
};
|
|
||||||
fstrim.enable = true;
|
fstrim.enable = true;
|
||||||
thermald.enable = true;
|
|
||||||
throttled.enable = true;
|
|
||||||
fwupd.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