2025-09-25 20:44:23 +02:00
{
lib ,
pkgs ,
config ,
username ,
home-manager ,
. . .
} :
2024-10-21 22:57:49 +02:00
with lib ;
let
cfg = config . liv . laptop ;
2025-09-25 20:44:23 +02:00
in
{
2024-10-21 22:57:49 +02:00
options . liv . laptop = {
enable = mkEnableOption " E n a b l e l a p t o p " ;
} ;
config = mkIf cfg . enable {
2025-09-25 20:44:23 +02:00
environment . systemPackages = with pkgs ; [
cifs-utils
powertop
] ;
2024-10-21 22:57:49 +02:00
home-manager = {
users . ${ username } = {
home . packages = with pkgs ; [
acpi
brightnessctl
2026-02-09 23:29:25 +01:00
powertop
lm_sensors
2024-10-21 22:57:49 +02:00
] ;
} ;
2024-10-21 17:12:46 +02:00
} ;
2025-09-25 20:49:27 +02:00
# DisplayLink
2026-01-26 22:39:00 +01:00
# imports = [ ../modules/core/displaylink.nix ];
2025-09-25 20:49:27 +02:00
2024-10-21 17:12:46 +02:00
networking . networkmanager . enable = true ;
boot = {
2025-09-25 20:44:23 +02:00
kernelModules = [ " a c p i _ c a l l " ] ;
extraModulePackages = with config . boot . kernelPackages ; [
acpi_call
] ;
} ;
services = {
2026-04-29 00:08:15 +02:00
# thermald.enable = true;
# power-profiles-daemon.enable = true;
2025-09-25 20:44:23 +02:00
2026-04-29 00:08:15 +02:00
# udev.extraRules = ''
# # Switch to power-save profile when on battery
# SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set power-saver", RUN+="/bin/sh -c 'echo 30 | tee /sys/class/backlight/amdgpu_bl1/brightness'"
# # Switch to balanced profile when plugged in
# SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="${pkgs.power-profiles-daemon}/bin/powerprofilesctl set balanced", RUN+="/bin/sh -c 'cat /sys/class/backlight/amdgpu_bl1/max_brightness > /sys/class/backlight/amdgpu_bl1/brightness'"
# '';
2026-01-26 21:00:04 +01:00
2024-10-21 22:57:49 +02:00
upower = {
enable = true ;
percentageLow = 20 ;
percentageCritical = 10 ;
percentageAction = 5 ;
criticalPowerAction = " H i b e r n a t e " ;
2024-10-21 17:12:46 +02:00
} ;
2026-01-26 21:00:04 +01:00
#auto-cpufreq = {
# enable = true;
# settings = {
# battery = {
# governor = "powersave";
# turbo = "never";
# energy_performance_preference = "balance_power";
# };
# charger = {
# governor = "performance";
# turbo = "auto";
# energy_performance_preference = "performance";
# };
# };
#};
2024-10-21 17:12:46 +02:00
} ;
2026-04-29 00:08:15 +02:00
powerManagement . powertop . enable = false ; # somehow figure out how to let this not apply to specific USB devices, as they will auto suspend and that is annoying.
2024-10-21 17:12:46 +02:00
} ;
}