{ config, lib, pkgs, ... }: { config = lib.mkIf (config.beancloud.software.desktop) { environment.systemPackages = with pkgs; [ (lib.mkIf config.beancloud.software.steam.enable steamcmd) (lib.mkIf config.beancloud.software.steam.enable mangohud) ]; beancloud.software = { games.enable = lib.mkIf config.beancloud.hardware.steamdeck true; steam.enable = lib.mkIf config.beancloud.hardware.steamdeck true; wine = lib.mkIf config.beancloud.hardware.steamdeck true; }; beancloud.hardware.gpu.amd.enable = lib.mkIf config.beancloud.hardware.steamdeck true; programs = { steam = { enable = lib.mkIf config.beancloud.software.steam.enable true; gamescopeSession.enable = lib.mkIf config.beancloud.hardware.steamdeck true; localNetworkGameTransfers.openFirewall = lib.mkIf config.beancloud.software.steam.enable true; package = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ cairo gtk3 libdecor xorg.libXcursor xorg.libXi xorg.libXinerama xorg.libXScrnSaver libpng libpulseaudio libvorbis stdenv.cc.cc.lib # Provides libstdc++.so.6 libkrb5 keyutils ]; }; }; gamescope = { enable = lib.mkIf config.beancloud.software.steam.enable true; capSysNice = true; }; gamemode = { enable = lib.mkIf config.beancloud.software.steam.enable true; }; }; }; }