diff --git a/README.md b/README.md index 9503c1e..08e2252 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ See code for all available configurations. | [Intel NUC 8i7BEH](intel/nuc/8i7beh/) | `` | | [Lenovo IdeaPad Z510](lenovo/ideapad/z510) | `` | | [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `` | +| [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `` | | [Lenovo ThinkPad E14 (AMD)](lenovo/thinkpad/e14/amd) | `` | | [Lenovo ThinkPad E14 (Intel)](lenovo/thinkpad/e14/intel) | `` | | [Lenovo ThinkPad E470](lenovo/thinkpad/e470) | `` | diff --git a/flake.nix b/flake.nix index a6b05aa..618ba96 100644 --- a/flake.nix +++ b/flake.nix @@ -46,6 +46,7 @@ hp-elitebook-2560p = import ./hp/elitebook/2560p; intel-nuc-8i7beh = import ./intel/nuc/8i7beh; lenovo-ideapad-z510 = import ./lenovo/ideapad/z510; + lenovo-legion-15ach6 = import ./lenovo/legion/15ach6; lenovo-legion-15arh05h = import ./lenovo/legion/15arh05h; lenovo-thinkpad = import ./lenovo/thinkpad; lenovo-thinkpad-e14-amd = import ./lenovo/thinkpad/e14/amd; diff --git a/lenovo/legion/15ach6/default.nix b/lenovo/legion/15ach6/default.nix new file mode 100644 index 0000000..98326d1 --- /dev/null +++ b/lenovo/legion/15ach6/default.nix @@ -0,0 +1,31 @@ +{ lib, ... }: { + 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 = { + before = [ "systemd-backlight@backlight:amdgpu_bl0.service" ]; + description = "Convert 16-bit brightness values to 8-bit before systemd-backlight applies it"; + script = '' + BRIGHTNESS_FILE="/var/lib/systemd/backlight/pci-0000:05:00.0:backlight:amdgpu_bl0" + 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" ]; + }; +}