{ config, pkgs, lib, ... }: {
  nixpkgs.overlays = [
    (final: prev: let
      patches-src = pkgs.fetchFromGitHub {
        owner = "BoyOrigin";
        repo = "glfw-wayland";
        rev = "2024-03-07";
        hash = "sha256-kvWP34rOD4HSTvnKb33nvVquTGZoqP8/l+8XQ0h3b7Y=";
      };
      patch' = p: "${patches-src}/patches/${p}.patch";
    in {
      glfw3-minecraft = prev.glfw3-minecraft.overrideAttrs (old: {
        patches = [ (builtins.head old.patches) ] ++ [
          # (patch' "0001-Key-Modifiers-Fix")
          # (patch' "0002-Fix-duplicate-pointer-scroll-events")
          # (patch' "0003-Implement-glfwSetCursorPosWayland")
          # (patch' "0004-Fix-Window-size-on-unset-fullscreen")
          # (patch' "0005-Avoid-error-on-startup")
          ./0006-DontCrashWindowPos.patch
        ];
      });

      obs-studio = prev.obs-studio.overrideAttrs (old: {
        patches = (old.patches or []) ++ [
          ./obs-wayland-window-projection.patch
        ];
      });
    })
  ];
  programs.xwayland.enable = true;

  environment.systemPackages = with pkgs; [
  ];
}
