Skip to content

Settings

jazzphone edited this page Jan 7, 2026 · 7 revisions

Settings

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.

[Paths]

Setting Default Description
SteamPath C:\Program Files (x86)\Steam\Steam.exe Full path to Steam.exe

[BPM]

Setting Default Description
BpmTitle Steam Big Picture Mode Big Picture window title (must match your BPM title)

[Features]

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

[Timing]

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)

[Splash]

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

[WindowManagement]

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)

[AlwaysFocus]

Setting Default Description
ExeList `` Pipe-separated EXEs: Example SplitSecond.exe|EADesktop.exe
AlwaysFocusCooldownMs 1000 Minimum time between re-activating an AlwaysFocus window

[GameForegroundAssist]

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

[Logging]

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

[MousePark]

Setting Default Description
MouseParkRightOffsetPx 50 Park cursor this many px beyond the right edge
MouseParkYPercent 0.50 Park cursor at this % of screen height

[StartupPrograms]

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 ``

[Controller]

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

[ControllerMap]

This section stores the editable controller button mappings (Short/Long) used while holding View/Back.

How values work

  • 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 for Send: bindings.

Builtin actions

None, LeftClick, RightClick, Enter, Esc, AltF4, TabTip, OSK, WinG, TaskManager

Defaults

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.

Clone this wiki locally