diff --git a/asus/fa507nv/default.nix b/asus/fa507nv/default.nix index 9531451..256e31f 100644 --- a/asus/fa507nv/default.nix +++ b/asus/fa507nv/default.nix @@ -1,21 +1,45 @@ -{ lib, pkgs, ... }: - { - imports = [ - ../../common/cpu/amd - ../../common/cpu/amd/raphael/igpu.nix - ../../common/cpu/amd/pstate.nix - ../../common/gpu/nvidia - ../../common/gpu/nvidia/prime-sync.nix - ../../common/hidpi.nix - ../../common/pc/laptop - ../../common/pc/ssd - ]; + lib, + pkgs, + config, + ... +}: { + imports = [ + ../../common/cpu/amd + ../../common/cpu/amd/raphael/igpu.nix + ../../common/cpu/amd/pstate.nix + ../../common/gpu/nvidia + ../../common/gpu/nvidia/prime.nix + ../../common/hidpi.nix + ../../common/pc/laptop + ../../common/pc/ssd + ../battery.nix + ]; - boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.6") pkgs.linuxPackages_latest; + boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.6") pkgs.linuxPackages_latest; - hardware.nvidia.prime = { - amdgpuBusId = "PCI:54:0:0"; - nvidiaBusId = "PCI:1:0:0"; + # The bottom 2 parts are taken from the framework 16-inch laptops configurations. + # Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/ + boot.kernelParams = lib.optionals (lib.versionOlder config.boot.kernelPackages.kernel.version "6.8") ["rtc_cmos.use_acpi_alarm=1"]; + + # AMD has better battery life with PPD over TLP: + # https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13 + services.power-profiles-daemon.enable = lib.mkDefault true; + + # Adds the missing asus functionality to Linux. + # https://asus-linux.org/manual/asusctl-manual/ + services = { + asusd = { + enable = lib.mkDefault true; + enableUserService = lib.mkDefault true; }; - } + }; + + hardware.nvidia.prime = { + modesetting.enable = lib.mkDefault true; + open = lib.mkDefault false; + nvidiaSettings = lib.mkDefault true; + amdgpuBusId = "PCI:54:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; +}