Add minimize SteamGamepadUI feature (untested)

pull/239/head
Peter Repukat 1 year ago
parent b9cb0414a7
commit 88856be11a

@ -76,6 +76,7 @@ namespace CEFInject
static inline const std::map<path_name, tab_name> path_tab_map_ = {
{L"SharedContext", "Steam Shared Context"},
{L"Overlay", "HOW TF GET OVERLAY TAB NAME?"}, // TODO: Figure out how to get the overlay tab name
{L"GamepadUI", "Steam Big Picture Mode"},
};
static constexpr std::string_view steam_shared_ctx_tab_name_ = "Steam Shared Context";

@ -403,7 +403,8 @@ QVariantMap UIModel::getDefaultConf() const
{"steamUserId",
QJsonValue::fromVariant(QString::fromStdWString(getSteamUserId(false)))},
{"globalModeGameId", ""},
{"globalModeUseGamepadUI", false},
{"globalModeUseGamepadUI", true},
{"minimizeSteamGamepadUI", true},
{"controller", QJsonObject{{"maxControllers", -1}, {"emulateDS4", false}, {"allowDesktopConfig", false}}},
{"devices",
QJsonObject{

@ -0,0 +1,44 @@
export interface GlosSISettings {
controller: {
allowDesktopConfig: boolean;
emulateDS4: boolean;
maxControllers: number;
};
devices: {
hideDevices: boolean;
realDeviceIds: boolean;
};
extendedLogging: boolean;
globalModeGameId: string;
globalModeUseGamepadUI: boolean;
icon?: string;
ignoreEGS: boolean;
killEGS: boolean;
launch: {
closeOnExit: boolean;
ignoreLauncher: boolean;
killLauncher: boolean;
launch: boolean;
launchAppArgs?: string;
launchPath?: string;
launcherProcesses: string[];
waitForChildProcs: boolean;
};
name?: string;
snapshotNotify: boolean;
standaloneModeGameId: string;
standaloneUseGamepadUI: boolean;
minimizeSteamGamepadUI: boolean;
steamPath: string;
steamUserId: string;
steamgridApiKey: string;
version: number;
window: {
disableGlosSIOverlay: boolean;
disableOverlay: boolean;
hideAltTab: boolean;
maxFps?: number;
scale?: number;
windowMode: boolean;
};
}

@ -3,8 +3,18 @@ export interface SteamClient {
SetInGameOverlayShowFPSCorner: (value: 0|1|2|3|4) => void;
SetInGameOverlayShowFPSContrast: (value: boolean) => void;
};
UI: {
GetUiMode: () => Promise<SteamUiMode>;
SetUiMode: (mode: SteamUiMode) => void;
};
Window: {
Minimize();
HideWindow();
};
}
export type FullSteamClient = Required<SteamClient>;
declare global {
interface Window {
SteamClient: SteamClient;

@ -0,0 +1,21 @@
import { SteamUiMode } from '../../common/Steam';
import { initTweak } from '../../common/tweakApi';
initTweak('MinimizeSteamGamepadUI', async () => {
const [isGamepadUI, minimizeGPUI] = await Promise.all([
(async () => (await SteamClient.UI.GetUiMode()) === SteamUiMode.GamepadUI)(),
(async () => (await GlosSIApi.SteamTarget.getGlosSISettings()).minimizeSteamGamepadUI)()
]);
if (isGamepadUI && minimizeGPUI) {
SteamClient.Window.Minimize();
return true;
}
if (!isGamepadUI && minimizeGPUI) {
console.warn('MinimizeSteamGamepadUI is enabled but Steam is not in GamepadUI mode');
}
return false;
}).then((minimized: boolean) => {
console.log('MinimizeSteamGamepadUI installed; Minimized GamepadUI:', minimized);
}).catch((e) => console.error('MinimizeSteamGamepadUI failed to install', e));

@ -0,0 +1,8 @@
// eslint-disable-next-line no-shadow
export enum SteamUiMode {
Desktop = 0,
Unknown1 = 1,
Unknown2 = 2,
Unknown3 = 3,
GamepadUI = 4,
}

@ -83,6 +83,7 @@ namespace Settings
std::wstring globalModeGameId; /* = L"12605636929694728192"; */
bool globalModeUseGamepadUI = false;
bool allowGlobalMode = true;
bool minimizeSteam = true;
} common;
inline const std::map<std::wstring, std::function<void()>> cmd_args = {
@ -235,6 +236,7 @@ namespace Settings
safeParseValue(json, "globalModeGameId", common.globalModeGameId);
safeParseValue(json, "globalModeUseGamepadUI", common.globalModeUseGamepadUI);
safeParseValue(json, "minimizeSteam", common.minimizeSteam);
}
catch (const nlohmann::json::exception &e)
{

Loading…
Cancel
Save