{ options, config, pkgs, lib, ... }: with lib; with lib.frajul; let cfg = config.hardware.nvidia; in { options.hardware.nvidia = with types; { enable = mkBoolOpt false "Enable drivers and patches for Nvidia hardware."; }; config = mkIf cfg.enable { services.xserver.videoDrivers = ["nvidia"]; hardware.nvidia.modesetting.enable = true; hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.production; environment.variables = { CUDA_CACHE_PATH = "$XDG_CACHE_HOME/nv"; }; environment.shellAliases = {nvidia-settings = "nvidia-settings --config='$XDG_CONFIG_HOME'/nvidia/settings";}; # Hyprland settings environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1"; # Fix cursor rendering issue on wlr nvidia. }; }