diff --git a/system/hardware/opengl.nix b/system/hardware/opengl.nix index b48a19b..49b5fa3 100644 --- a/system/hardware/opengl.nix +++ b/system/hardware/opengl.nix @@ -5,6 +5,20 @@ 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.opengl = { enable = true;