nixfiles/system/hardware/opengl.nix

36 lines
837 B
Nix

{
config,
lib,
pkgs,
...
}: let
cfg = config.nixfiles.hardware.opengl;
in {
options.nixfiles.hardware.opengl.enable = lib.mkEnableOption "OpenGL configuration";
config = lib.mkIf cfg.enable {
environment.systemPackages = let
offload-enabled = config.hardware.nvidia.prime.offload.enableOffloadCmd;
glxinfo = lib.getExe' pkgs.glxinfo "glxinfo";
auto-offload = pkgs.writeShellScriptBin "auto-offload" (
(
if offload-enabled
then ''
if nvidia-offload ${glxinfo} > /dev/null 2>&1 ; then
exec nvidia-offload "$@"
fi
''
else ""
)
+ ''
exec "$@"
''
);
in [auto-offload];
# Enable OpenGL
hardware.graphics = {
enable = true;
enable32Bit = true;
};
};
}