{pkgs ? import <nixpkgs> {}}:
pkgs.mkShell {
  buildInputs = with pkgs; [
    # Compiler and Build Tools
    gnumake

    # Windowing and Graphics
    glfw3
    libGL
    libGLU
    alsa-lib

    # Common X11 dependencies (often required by GLFW)
    xorg.libX11
    xorg.libXrandr
    xorg.libXinerama
    xorg.libXcursor
    xorg.libXi
  ];

  shellHook = ''
    export LD_LIBRARY_PATH="${pkgs.libGL}/lib:${pkgs.lib.makeLibraryPath [pkgs.glfw3]}:$LD_LIBRARY_PATH"
    echo "OpenGL and GLFW environment loaded!"
  '';
}
