Compare commits

...

2 commits

Author SHA1 Message Date
f2330d38b2 fix list 2026-02-01 19:51:18 +07:00
79368eafd5 modularize thinkpad hw config 2026-02-01 19:27:30 +07:00
6 changed files with 100 additions and 74 deletions

View file

@ -7,13 +7,13 @@ rewrite of my nixos flake with hopefully better structuring and modularity
- (quater-progress) reintegrate file paths and arguments to work together - (quater-progress) reintegrate file paths and arguments to work together
# todo: migrate files below # todo: migrate files below
[X] flake stuff (flake.nix & flake.lock) - [X] flake stuff (flake.nix & flake.lock)
[X] hardware configs (hardware/scans) - [X] hardware configs (hardware/scans)
[X] nixos system - [X] nixos system
[X] base nix configs - [X] base nix configs
[X] apps list - [X] apps list
[X] user config (not hm) - [X] user config (not hm)
[ ] home manager config - [ ] home manager config
[ ] rice config (everything in /rice) - [ ] rice config (everything in /rice)

View 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";
};
};
}

View 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
View 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
];
};
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
services.logind.settings.Login = {
HandleLidSwitch = "suspend";
HandlePowerKey = "ignore";
};
}

View file

@ -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"; }
# ];
};
}; };
} }