{ lib, config, ... }:
with lib;
let cfg = config.voidconf.graphics;
in {
  options.voidconf.graphics ={
    defaultSettings.enable = mkEnableOption "Enables some basic graphical settings";
    nvidia = {
      enable = mkEnableOption "Enables Nvidia settings";
      proprietaryDrivers = mkEnableOption "Enables proprietary drivers";
    };
  };
  config = {
    hardware = {
      graphics = {
        enable = true;
        enable32Bit = true;
      };
      nvidia = mkIf cfg.nvidia.enable {
        package = config.boot.kernelPackages.nvidiaPackages.stable;
        powerManagement = {
          enable = false;
          finegrained = false;
        };
        open = !cfg.nvidia.proprietaryDrivers;
        nvidiaSettings = cfg.nvidia.proprietaryDrivers;
      };
    };
    services.xserver.videoDrivers = mkIf cfg.nvidia.proprietaryDrivers ["nvidia"];
  };
}