1
0
Fork 0
mirror of https://github.com/NixOS/nixos-hardware synced 2024-11-27 13:29:43 +01:00
nixos-hardware/lenovo/legion/15ach6/default.nix

48 lines
1.5 KiB
Nix
Raw Normal View History

2022-07-17 18:19:45 +02:00
{ lib, config, ... }:
2022-12-31 11:52:38 +01:00
let
inherit (config.boot) kernelPackages;
2022-07-17 18:19:45 +02:00
in {
2022-03-23 13:33:30 +01:00
imports = [
../../../common/cpu/amd
../../../common/gpu/amd
../../../common/gpu/nvidia/prime.nix
../../../common/hidpi.nix
2022-03-23 13:33:30 +01:00
../../../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;
# √(3840² + 2160²) px / 15.60 in ≃ 282 dpi
services.xserver.dpi = 282;
2022-03-23 13:33:30 +01:00
# 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" ];
};
}