{ config, pkgs, lib, ... }: { options.niksos.games = lib.mkEnableOption "gaming related stuff."; config = lib.mkIf config.niksos.games { nixpkgs.overlays = [ (final: prev: let version = "1.4.2"; hash = "sha256-xe0qlbtt06CUK8bXyaGDtCcHOXpSnkbuvcxaDJjeS/c="; npmHash = "sha256-/+NhlQydGS6+2jEjpbwycwKplVo/++wcdPiBNY3R3FI="; cargoHash = "sha256-VwzGbm34t7mg9ndmTkht6Ho32NQ+6uxuPTKi3+VrhYo="; in { gale = prev.gale.overrideAttrs (new: old: { src = prev.fetchFromGitHub { inherit version hash; owner = "Kesomannen"; repo = "gale"; rev = "1.4.2"; }; npmDeps = prev.fetchNpmDeps { hash = npmHash; name = "${new.pname}-${new.version}-npm-deps"; inherit (new) src; }; cargoDeps = prev.rustPlatform.fetchCargoVendor { inherit (new) pname version src cargoRoot ; hash = cargoHash; }; }); }) ]; users.users.jsw.packages = [pkgs.gale]; programs = { gamescope = { enable = true; capSysNice = true; args = [ "--rt" "--expose-wayland" ]; }; steam = { enable = true; extraCompatPackages = [ pkgs.proton-ge-bin ]; gamescopeSession.enable = true; }; }; environment.variables = { "STEAM_FORCE_DESKTOP_UI_SCALING" = "1.5"; }; }; }