2022-07-17 18:19:45 +02:00
|
|
|
{ lib, config, ... }:
|
|
|
|
let kernelPackages = config.boot.kernelPackages;
|
|
|
|
in {
|
2022-03-23 13:33:30 +01:00
|
|
|
imports = [
|
|
|
|
../../../common/cpu/amd
|
|
|
|
../../../common/gpu/amd
|
|
|
|
../../../common/gpu/nvidia.nix
|
|
|
|
../../../common/pc/laptop
|
|
|
|
../../../common/pc/laptop/ssd
|
|
|
|
];
|
|
|
|
|
|
|
|
hardware.nvidia.prime = {
|
|
|
|
amdgpuBusId = "PCI:5:0:0";
|
|
|
|
nvidiaBusId = "PCI:1:0:0";
|
|
|
|
};
|
|
|
|
|
|
|
|
services.thermald.enable = lib.mkDefault true;
|
|
|
|
|
|
|
|
# https://wiki.archlinux.org/title/backlight#Backlight_is_always_at_full_brightness_after_a_reboot_with_amdgpu_driver
|
|
|
|
systemd.services.fix-brightness = {
|
2022-07-17 18:19:45 +02:00
|
|
|
before = [
|
|
|
|
"systemd-backlight@backlight:${
|
|
|
|
if lib.versionOlder kernelPackages.kernel.version "5.18" then "amdgpu_bl0" else "nvidia_wmi_ec_backlight"
|
|
|
|
}.service"
|
|
|
|
];
|
2022-03-23 13:33:30 +01:00
|
|
|
description = "Convert 16-bit brightness values to 8-bit before systemd-backlight applies it";
|
|
|
|
script = ''
|
2022-07-17 18:19:45 +02:00
|
|
|
BRIGHTNESS_FILE="/var/lib/systemd/backlight/${
|
|
|
|
if lib.versionOlder kernelPackages.kernel.version "5.18" then
|
|
|
|
"pci-0000:05:00.0:backlight:amdgpu_bl0"
|
|
|
|
else
|
|
|
|
"platform-PNP0C14:00:backlight:nvidia_wmi_ec_backlight"
|
|
|
|
}"
|
2022-03-23 13:33:30 +01:00
|
|
|
BRIGHTNESS=$(cat "$BRIGHTNESS_FILE")
|
|
|
|
BRIGHTNESS=$(($BRIGHTNESS*255/65535))
|
|
|
|
BRIGHTNESS=''${BRIGHTNESS/.*} # truncating to int, just in case
|
|
|
|
echo $BRIGHTNESS > "$BRIGHTNESS_FILE"
|
|
|
|
'';
|
|
|
|
serviceConfig.Type = "oneshot";
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
};
|
|
|
|
}
|