{ config, pkgs, lib, ... }: { imports = [ ./display.nix ]; # https://github.com/NixOS/nixos-hardware/tree/master/lenovo/legion/16achg6 hardware = { enableAllFirmware = true; cpu = { cores = 8; threads = 16; amd.updateMicrocode = true; }; nvidia = { open = true; modesetting.enable = true; powerManagement.enable = true; dynamicBoost.enable = true; prime = { offload = { enable = true; enableOffloadCmd = true; }; nvidiaBusId = "PCI:1:0:0"; amdgpuBusId = "PCI:6:0:0"; }; }; graphics = { enable32Bit = true; extraPackages = with pkgs; [ amdvlk driversi686Linux.amdvlk rocmPackages.clr rocmPackages.clr.icd ]; }; nvidia-container-toolkit.enable = ( config.virtualisation.containerd.enable || config.virtualisation.docker.enable || config.virtualisation.podman.enable ); }; boot = { kernelParams = [ "amd_pstate=active" ]; kernelModules = [ "kvm-amd" ]; initrd.kernelModules = [ "nvme" "ahci" "usbhid" "amdgpu" ]; }; nixpkgs.config = { cudaSupport = true; rocmSupport = true; }; powerManagement.enable = true; services = { xserver.videoDrivers = [ "nvidia" ]; fstrim.enable = true; tlp.settings.DISK_DEVICES = lib.mkDefault "nvme0n1 nvme1n1"; }; 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,$HOME/.config/hypr/card" ]; device = [ { name = "syna2ba6:00-06cb:ce44-touchpad"; sensitivity = 0.5; } ]; gestures.workspace_swipe_distance = 600; # https://github.com/hyprwm/Hyprland/issues/6701 render = { explicit_sync = 1; explicit_sync_kms = 1; direct_scanout = 0; }; }; programs.zsh.loginExtra = lib.mkBefore (builtins.readFile ./card.sh); } ]; }