{
flake.modules.nixos.graphics =
{ config, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true; # Required for Steam and 32-bit applications.
};
# For Wayland.
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
# Enable modesetting (required for Wayland).
modesetting.enable = true;
# For sleep handling.
powerManagement.enable = true;
powerManagement.finegrained = false;
# Use open source kernel modules (recommended for RTX/GTX 16xx+).
open = true;
# Enable nvidia-settings menu.
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
# Environment variables for NVIDIA on Wayland.
environment.sessionVariables = {
GBM_BACKEND = "nvidia-drm";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
WLR_NO_HARDWARE_CURSORS = "1"; # Cursor fix.
};
boot.kernelModules = [
"nvidia"
"nvidia_modeset"
"nvidia_uvm"
"nvidia_drm"
];
};
}