2024-08-16 13:32:13 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: let
|
2024-08-16 23:31:12 +02:00
|
|
|
cfg = config.modules.system.hardware;
|
2024-08-16 13:32:13 +02:00
|
|
|
inherit (lib) mkIf;
|
|
|
|
in {
|
|
|
|
config = {
|
|
|
|
hardware = {
|
|
|
|
graphics = {
|
|
|
|
enable = true;
|
2025-03-02 19:11:27 +01:00
|
|
|
extraPackages = mkIf cfg.amd.enable (builtins.attrValues {
|
|
|
|
inherit
|
|
|
|
(pkgs)
|
2024-08-16 13:32:13 +02:00
|
|
|
mesa
|
|
|
|
libva
|
2024-08-16 23:05:45 +02:00
|
|
|
vaapiVdpa
|
2025-03-02 19:11:27 +01:00
|
|
|
;
|
|
|
|
});
|
2024-08-16 13:32:13 +02:00
|
|
|
};
|
2024-08-16 23:31:12 +02:00
|
|
|
nvidia = mkIf cfg.nvidia.enable {
|
|
|
|
modesetting.enable = true;
|
2024-10-12 01:49:19 +02:00
|
|
|
open = true;
|
2024-08-16 23:31:12 +02:00
|
|
|
powerManagement = {
|
|
|
|
enable = true;
|
|
|
|
finegrained = false;
|
|
|
|
};
|
2024-08-16 13:32:13 +02:00
|
|
|
nvidiaSettings = false;
|
2024-08-16 23:05:45 +02:00
|
|
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
2024-08-16 13:32:13 +02:00
|
|
|
};
|
|
|
|
};
|
2024-08-16 23:31:12 +02:00
|
|
|
boot.initrd.kernelModules = mkIf cfg.amd.enable ["amdgpu"];
|
|
|
|
services.xserver.videoDrivers = mkIf cfg.nvidia.enable ["nvidia"];
|
2024-08-16 13:32:13 +02:00
|
|
|
};
|
|
|
|
}
|