{ config, pkgs, lib, ... }: { imports = [ ./display.nix ./keybinds.nix ]; hardware = { enableAllFirmware = true; cpu = { cores = 16; threads = 16; intel.updateMicrocode = true; }; nvidia = { open = true; powerManagement.enable = true; # TODO # dynamicBoost.enable = true; prime = { offload = { enable = true; enableOffloadCmd = true; }; intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; }; }; graphics = { enable32Bit = true; extraPackages = with pkgs; [ vaapiVdpau intel-vaapi-driver libvdpau-va-gl intel-media-driver ]; }; nvidia-container-toolkit.enable = ( config.virtualisation.containerd.enable || config.virtualisation.docker.enable || config.virtualisation.podman.enable ); }; boot = { kernelParams = [ "pci=noaer" ]; kernelModules = [ "kvm-intel" ]; kernelPatches = [ { name = "alc285-fixup"; patch = ./gu605c-spi-cs-gpio/alc285-fixup.patch; } ]; initrd = { prepend = [ "${import ./gu605c-spi-cs-gpio { inherit pkgs; }}/asus-gu605c-acpi.cpio" ]; kernelModules = [ "i915" "xhci_pci" "thunderbolt" "vmd" "nvme" "usbhid" "sd_mod" ]; }; }; nixpkgs.config.cudaSupport = true; powerManagement.enable = true; services = { xserver.videoDrivers = [ "nvidia" ]; fstrim.enable = true; tlp.settings.DISK_DEVICES = lib.mkDefault "nvme0n1 nvme1n1"; asusd = { enable = true; # FIXME: https://gitlab.com/asus-linux/asusctl/-/issues/532 # enableUserService = true; asusdConfig.source = ./asusd.ron; }; supergfxd = { enable = true; settings = { vfio_enable = true; no_logind = true; }; }; }; environment.persistence."/persist/state"."/etc/asusd/aura_19b6.ron" = { }; programs.gamescope.env = { __NV_PRIME_RENDER_OFFLOAD = "1"; __VK_LAYER_NV_optimus = "NVIDIA_only"; __GLX_VENDOR_LIBRARY_NAME = "nvidia"; }; home-manager.sharedModules = [ { wayland.windowManager.hyprland.settings.env = [ "AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1" ]; theme = { template.".config/asusctl/keyboard".source = pkgs.writeText ".config/asusctl/keyboard" "{{colors.primary_container.default.hex_stripped}}"; initExtraConfig = "${ lib.meta.getExe ( pkgs.writeShellApplication { name = "theme-asusctl"; runtimeInputs = with pkgs; [ asusctl ]; text = '' asusctl aura static -c "$(<"$HOME/.config/asusctl/keyboard")" ''; } ) } &"; }; } ]; }