{ lib, config, pkgs, ... }: let inherit (lib) mkIf; inherit (config) conf; cfg = config.conf.games; mkXwlWrapper = import ../niri/xwl-wrapper.nix; holo-script = pkgs.writeShellApplication { name = "holo-script"; runtimeInputs = [pkgs.steam pkgs.gamescope]; text = '' gamescope -f -r 60 -h 900 -F fsr -e --mangoapp -- steam -tenfoot ''; }; holo = pkgs.makeDesktopItem { name = "Steam Big Picture"; desktopName = "Steam Big Picture"; exec = "${holo-script}/bin/holo-script"; }; steam-wrapped = mkXwlWrapper { pkgs = pkgs; name = "Steam Wrapped"; pkg = "steam"; }; in mkIf cfg.enable { programs.steam.enable = true; programs.gamescope.enable = true; programs.gamemode.enable = true; environment.sessionVariables = { MANGOHUD_CONFIGFILE = "$HOME/.config/MangoHud/MangoHud.conf"; MANGOHUD_CONFIG = "read_cfg"; }; home-manager.users.${conf.username} = { home.packages = [ pkgs.prismlauncher holo steam-wrapped ]; programs.mangohud = { enable = true; settings = { gamemode = true; refresh_rate = true; fsr = true; resolution = true; }; }; }; }