{ 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; [ ]; }