nixos-conf/modules/hardware/amd-laptop.nix

61 lines
1.4 KiB
Nix
Raw Normal View History

{
config,
lib,
pkgs,
...
}:
let
2025-07-06 03:22:09 +03:00
cfg = config.custom.hardware.amdLaptop;
in
{
2025-07-06 03:22:09 +03:00
options.custom.hardware.amdLaptop.enable = lib.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [ zenmonitor ];
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [ rocmPackages.clr.icd ];
};
hardware.amdgpu.initrd.enable = true;
services = {
xserver = lib.mkIf config.services.xserver.enable {
videoDrivers = [ "modesetting" ];
deviceSection = ''
Option "DRI" "2"
Option "TearFree" "true"
'';
};
tlp = {
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 = 40;
#Optional helps save long term battery health
START_CHARGE_THRESH_BAT0 = 60; # 60 and bellow it starts to charge
STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging
};
};
logind.lidSwitch = if config.boot.resumeDevice != "" then "hibernate" else "suspend";
};
};
}