From 9128ecb6c4b08e6c5436ffebf671f8f7ac0e5225 Mon Sep 17 00:00:00 2001
From: NullBite <me@nullbite.com>
Date: Sat, 20 Jul 2024 16:02:54 -0400
Subject: [PATCH] Update gaming package set config

- remove unneeded code
- slight refactor
- configure PrismLauncher with Wayland GLFW support
---
 home/package-sets/gaming.nix   |  6 +++++
 system/package-sets/gaming.nix | 44 ++++++++++++++++------------------
 2 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/home/package-sets/gaming.nix b/home/package-sets/gaming.nix
index 79d894c..7019083 100644
--- a/home/package-sets/gaming.nix
+++ b/home/package-sets/gaming.nix
@@ -5,6 +5,12 @@ let
 in
 {
   config = lib.mkIf cfg.enable {
+    nixpkgs.overlays = let
+      prismlauncher-config = (final: prev: {
+        prismlauncher = prev.prismlauncher.override { withWaylandGLFW = true; };
+      });
+    in lib.mkAfter [ prismlauncher-config ];
+
     nixfiles.common.wm.autostart = [
       "steam -silent"
     ];
diff --git a/system/package-sets/gaming.nix b/system/package-sets/gaming.nix
index 4fac917..74c6a17 100644
--- a/system/package-sets/gaming.nix
+++ b/system/package-sets/gaming.nix
@@ -1,7 +1,6 @@
 { config, lib, pkgs, inputs, ...}:
 let
   cfg = config.nixfiles.packageSets.gaming;
-  is2311 = lib.strings.hasInfix "23.11" lib.version;
 in
 {
   # oopsies this is for home-manager
@@ -12,28 +11,27 @@ in
   };
   config = lib.mkIf cfg.enable {
 
-                                  # only needed on 23.11, increases closure size MASSIVELY
-    nixpkgs.overlays = lib.optional is2311 (_: _: {
-      # unstable steam has new buildFSHEnv which doesn't break on rebuild
-      steam = (import inputs.nixpkgs-unstable.outPath {config.allowUnfree = true; inherit (pkgs) system; }).steam;
-    })
-    # gamescope fix
-    ++ [(final: prev: {
-      steam = prev.steam.override {
-        extraPkgs = pkgs: with pkgs; [
-          xorg.libXcursor
-          xorg.libXi
-          xorg.libXinerama
-          xorg.libXScrnSaver
-          libpng
-          libpulseaudio
-          libvorbis
-          stdenv.cc.cc.lib
-          libkrb5
-          keyutils
-        ];
-      };
-    })];
+    nixpkgs.overlays = let
+      steamGamescopeFix = (final: prev: {
+        steam = prev.steam.override {
+          extraPkgs = pkgs: with pkgs; [
+            xorg.libXcursor
+            xorg.libXi
+            xorg.libXinerama
+            xorg.libXScrnSaver
+            libpng
+            libpulseaudio
+            libvorbis
+            stdenv.cc.cc.lib
+            libkrb5
+            keyutils
+          ];
+        };
+      });
+      prismlauncherWayland = (final: prev: {
+        prismlauncher = prev.prismlauncher.override { withWaylandGLFW = true; };
+      });
+    in [ steamGamescopeFix prismlauncherWayland ];
 
     programs.steam = {
       enable = lib.mkDefault true;