36 lines
837 B
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;
|
|
};
|
|
};
|
|
}
|