-
Notifications
You must be signed in to change notification settings - Fork 0
Settings
jazzphone edited this page Jan 7, 2026
·
7 revisions
Wiki pages: Home • Install • Settings • Debugging • Controller Mappings • Splash Videos • Tips • Gotchas • Scoring
This page lists every setting in SteamShellSettings.ini, with a description and the script’s default value.
Notes:
- Booleans are
true/false. - Times are typically in milliseconds (ms) unless noted.
- After editing the INI, use Ctrl+Alt+Shift+R to reload without rebooting.
| Setting | Default | Description |
|---|---|---|
SteamPath |
C:\Program Files (x86)\Steam\Steam.exe |
Full path to Steam.exe |
| Setting | Default | Description |
|---|---|---|
BpmTitle |
Steam Big Picture Mode |
Big Picture window title (must match your BPM title) |
| Setting | Default | Description |
|---|---|---|
EnableSplashScreen |
true |
Show a black splash overlay during boot |
EnableTaskbarHiding |
true |
Hide taskbar & tray windows (kiosk feel) |
EnableWindowManagement |
true |
Center windows; maximize large windows (skips OSK + Steam KB) |
EnableAutoHideCursor |
true |
Hide cursor after MouseHideDelay inactivity |
EnableSteamRefocusMode |
true |
Refocus BPM after SteamRefocusDelay when nothing else is visible |
EnableGameForegroundAssist |
true |
Detect fullscreen-ish games and bring them to front |
EnableAlwaysFocus |
true |
Allow specific apps (ExeList) to always win focus over Steam |
EnableMouseParkOnBoot |
true |
Park cursor off-screen to the right at startup |
EnableMouseParkEveryRefocus |
true |
Park cursor off-screen whenever SteamShell activates a window |
| Setting | Default | Description |
|---|---|---|
SplashScreenDuration |
10000 |
Splash duration in milliseconds (0 disables fade) |
WindowCheckInterval |
500 |
How often to center/maximize new windows (ms) |
SteamRefocusPollingInterval |
1000 |
How often to run focus checks (ms) |
MouseMonitorInterval |
250 |
Mouse polling interval (ms) |
MouseHideDelay |
1000 |
Hide cursor after this many ms without movement |
SteamRefocusDelay |
3000 |
Wait this many ms before refocusing BPM (when no windows remain) |
| Setting | Default | Description |
|---|---|---|
Mode |
Black |
Black | Video |
VideoPath |
`` | Full path to startup video (mp4/wmv). Leave blank for Black. |
Mute |
false |
Mute video audio |
PlayFullDuration |
true |
If true, play full video before fading out (safety timeout still applies) |
SafetyMaxMs |
15000 |
Failsafe max time to keep splash up in Video+PlayFullDuration mode. Set LONGER than your video length. |
FadeOutMs |
300 |
Fade out duration in ms (0 = no fade) |
TopmostGuardMs |
500 |
Re-assert topmost while visible (0 disables) |
MpvPath |
`` | Full path to mpv.exe (required when Mode=Video) |
ForceSDR |
true |
Force MPV to output SDR (prevents HDR/Dolby Vision mode switching) |
DebugOverlay |
false |
If true, shows the reason video failed on the splash screen |
| Setting | Default | Description |
|---|---|---|
MinWidthPercent |
0.20 |
Only maximize windows wider than this % of screen width |
ExcludeExeList |
`` | Optional: Pipe-separated EXEs to skip (e.g. GameBar.exe|YourTool.exe) |
ExcludeClassList |
`` | Optional: Pipe-separated window classes to skip (e.g. UnityWndClass|Chrome_WidgetWin_1) |
| Setting | Default | Description |
|---|---|---|
ExeList |
`` | Pipe-separated EXEs: Example SplitSecond.exe|EADesktop.exe |
AlwaysFocusCooldownMs |
1000 |
Minimum time between re-activating an AlwaysFocus window |
| Setting | Default | Description |
|---|---|---|
GameCPUThresholdPercent |
5.0 |
CPU % that adds a score bonus |
FullscreenTolerance |
0.98 |
Window must be >= this % of screen size to count as fullscreen-ish |
FullscreenPosTolerancePx |
2 |
Window position must be within this many px of 0,0 for fullscreen-ish |
GameForegroundCooldownMs |
1500 |
Minimum time between forced game activations |
GameAllowZeroCpuAsCandidate |
true |
If CPU samples 0, still allow candidate |
GameRequireSteamForeground |
true |
Only run game assist when Steam is foreground (safe default) |
GameAssistLogEvenWhenSkipped |
false |
Log candidates even when skipped due to Steam not foreground |
EnableAudioAssist |
true |
Add score if the process is outputting audio |
ScoreAudioActive |
30 |
Score bonus when audio peak is detected |
ScoreFullscreen |
70 |
Base score when fullscreen-ish |
ScoreBorderlessLarge |
45 |
Base score when large borderless but not at 0,0 |
ScoreTitleBonus |
10 |
Score bonus if window has a non-trivial title |
ScoreCpuAboveThreshold |
20 |
Score bonus if CPU >= GameCPUThresholdPercent |
ScoreCpuNonZeroBonus |
15 |
Score bonus if CPU > 0 but below threshold |
GameMinScoreToActivate |
60 |
Minimum score required to activate the best candidate |
| Setting | Default | Description |
|---|---|---|
EnableGameScoreLogging |
false |
Write scoring/decisions to SteamShell.log |
GameLogMode |
OFF |
OFF|ACTIVATIONS|TOPN|DIAGNOSTIC |
GameLogTopN |
3 |
When TOPN/DIAGNOSTIC, log this many top candidates |
GameLogIntervalMs |
3000 |
Rate limit for TOPN/DIAGNOSTIC logging |
GameLogIncludeTitles |
true |
Include window titles in the log |
GameLogRejectNearCandidates |
true |
In DIAGNOSTIC, also log near-fullscreen rejects |
GameLogRejectMinAreaPercent |
0.85 |
Only log rejects with >= this % of screen area |
GameLogRotateMaxKB |
256 |
Rotate log when it exceeds this many KB |
GameLogRotateBackups |
2 |
Keep this many rotated backups |
| Setting | Default | Description |
|---|---|---|
MouseParkRightOffsetPx |
50 |
Park cursor this many px beyond the right edge |
MouseParkYPercent |
0.50 |
Park cursor at this % of screen height |
| Setting | Default | Description |
|---|---|---|
Enable |
false |
Start additional user-defined programs at boot (hidden) |
DelayMs |
2000 |
Wait this long after SteamShell starts before launching them |
Program1 |
`` | Define programs as Program1..Program20. Format: ProgramN="C:\Path\App.exe" --arg1 --arg2 Quotes recommended if the path contains spaces. Everything after the exe is treated as arguments. Programs are started with Run(..., "Hide") and SteamShell will also attempt to hide any windows they create briefly. |
Program2 |
`` |
| Setting | Default | Description |
|---|---|---|
EnableControllerMouseMode |
true |
Enable controller mouse/keyboard mapping (hold View/Back) |
ControllerIndex |
0 |
0=first controller |
ControllerPollIntervalMs |
16 |
Poll rate (ms) |
ControllerDeadzone |
8000 |
Stick deadzone (0-32767) |
ControllerMouseSpeed |
100 |
Pixels per poll tick at full deflection |
ControllerMouseFastMultiplier |
2.5 |
Multiplier while RT is held |
ControllerScrollIntervalMs |
80 |
Min ms between scroll ticks |
ControllerScrollStep |
1 |
Wheel notches per scroll tick |
ControllerChordHoldMs |
500 |
Long-press threshold (ms) for B/X/Y secondary actions |
This section stores the editable controller button mappings (Short/Long) used while holding View/Back.
-
Builtin:<Action>uses one of SteamShell’s built-in actions. -
Send:<Chord>sends an AutoHotkey-style chord (recorded by the UI). - Optional:
<Key>.Display=<Pretty label>lets the UI show a friendly name forSend:bindings.
None, LeftClick, RightClick, Enter, Esc, AltF4, TabTip, OSK, WinG, TaskManager
| Mapping key | Default | Notes |
|---|---|---|
RB.Short |
Builtin:LeftClick |
|
RB.Long |
Builtin:None |
|
RT.Short |
Builtin:RightClick |
|
RT.Long |
Builtin:None |
|
LT.Short |
Send:^+o |
Displayed as Ctrl+Shift+O |
LT.Long |
Send:^+f |
Displayed as Ctrl+Shift+F |
LB.Short |
Send:^!{Tab} |
Displayed as Ctrl+Alt+Tab |
LB.Long |
Builtin:TaskManager |
|
A.Short |
Builtin:Enter |
|
A.Long |
Builtin:None |
|
B.Short |
Builtin:Esc |
|
B.Long |
Builtin:AltF4 |
|
X.Short |
Builtin:TabTip |
|
X.Long |
Builtin:OSK |
|
Y.Short |
Builtin:WinG |
|
Y.Long |
Builtin:None |
|
Start.Short |
Builtin:None |
|
Start.Long |
Builtin:None |
|
L3.Short |
Builtin:None |
|
L3.Long |
Builtin:None |
|
R3.Short |
Builtin:None |
|
R3.Long |
Builtin:None |
Tip: stick + D-pad behavior (mouse move / scroll / arrow keys) is fixed and not stored in this section.
No support is provided for SteamShell. Use at your own risk — it replaces the Windows shell.
Ctrl+Alt+Shift+E is the emergency restore.
Start here
Using it
Controller
Features
XFE
When it breaks