Configuration
SISR can be configured via:
- CLI flags
See CLI Reference - Environment variables
- Config files (TOML/YAML/JSON)
Configuration merging
SISR merges defaults + any discovered config files + your explicit --config file + CLI overrides
(in that order)
Common options
| Option | Description | Default |
|---|---|---|
--config <FILE> |
Path to an explicit configuration file (TOML/YAML/JSON) | |
--console (Windows only) |
Show console window | false |
--api.listen-address <host:port> |
API listen address; by default will pick a random free port and listen on localhost only | localhost:0 |
--api.cors-origins <origins> |
CORS allowed origins | https://steamloopback.host,http://steamloopback.host |
--viiper.address <host:port> |
VIIPER server address; specify if VIIPER is run manually or on another machine | localhost:3242 |
--viiper.password <password> |
VIIPER server password. Required for non-localhost connections | none |
--keyboard-mouse-emulation, --kbm |
Forward keyboard and mouse when running over a network | false |
--update-notify <CHANNEL> |
Update notification level (none, stable, prerelease, always) |
stable |
--default-controller-type <type> |
Default controller type for emulation (xbox360, dualshock4, dualsense, dualsenseedge, ns2pro) |
xbox360 |
--gyro-passthrough, --gp |
Enable gyro passthrough for supported controllers | true |
--touchpad-passthrough, --tp |
Enable touchpad passthrough for supported controllers (e.g. DualShock 4, DualSense) | true |
--back-button-passthrough, --bbp |
Enable back button (paddle/grip button) passthrough for supported controllers (e.g. DualSense Edge, NS2 Pro) | false |
--allow-steam-desktop-layout |
Allow/use Steam's desktop configuration for emulated controllers | false |
--immediate-sensor-updates |
Immediately send sensor updates to VIIPER instead of waiting for the next input report | true |
--w--window.show [true|false] |
Shows window on startup; when used with fullscreen enabled, this will enable Steam Overlay | false |
--f--window.fullscreen [true|false] |
Create a transparent, borderless, always-on-top overlay window | true |
--window.max-fps <FPS> |
Maximim FPS for SteamOverlay/UI (Does not affect inputs) | 60 |
--log.level <LEVEL> |
Log level (trace, debug, info, warn, error) |
info |
--log.file <FILE> |
Write logs to a file | none |
--no-steam |
Run in no-Steam mode | false |
--steam.install-dir <PATH> |
Steam installation directory (optional, will attempt to auto-detect if not set) | auto-detect |
--steam.user-id <ID> |
Active Steam user ID (optional, will attempt to auto-detect if not set) | auto-detect |
--steam.cef-remote-debug-port <PORT> |
CEF remote debugging port (optional, will attempt to auto-detect if not set) | auto-detect |
Config file discovery
SISR looks for these names and extensions in the current working directory:
- Names:
SISR,config - Extensions:
.toml,.yaml,.yml,.json
Search locations:
- The current working directory
You can also explicitly provide a config file path via --config <FILE> or the SISR_CONFIG environment variable.
Discovery order and precedence
When multiple sources provide the same configuration option, the latest one in the following is picked:
- Defaults
- Discovered config files (in this exact order):
github.com/Alia5/SISR.{json,yaml,yml,toml}SISR.{json,yaml,yml,toml}config.{json,yaml,yml,toml}
- Your explicit
--config <FILE>(if provided) - CLI flags and environment variables
Full example (default) configuration
All values are optional.
🪟 %APPDATA%\SISR\config\SISR.toml
🐧 $XDG_CONFIG_HOME/sisr/SISR.toml
# Windows only: show console window
# On other platforms this key is ignored
console = false
# API server address; 0 picks a random free port
[api]
listen-address = "localhost:0"
# Optional CORS origins
cors-origins = "https://steamloopback.host,http://steamloopback.host"
# VIIPER API server address
[viiper]
address = "localhost:3242"
# VIIPER API server password
password = ""
# Enable keyboard/mouse emulation.
# Will only work if the specified VIIPER server does not run on localhost
keyboard-mouse-emulation = false
# Update notification channel
# Allowed: "none", "stable", "prerelease", "always"
update-notify = "stable"
# Default controller type for emulation
default-controller-type = "xbox360"
# Allow/re-use Steam's desktop configuration for emulated controllers
allow-steam-desktop-layout = false
# Enable gyro passthrough for supported controllers
gyro-passthrough = true
# Enable touchpad passthrough for supported controllers (e.g. DualShock 4, DualSense)
touchpad-passthrough = true
# Enable back button (paddle/grip button) passthrough for supported controllers (e.g. DualSense Edge, NS2 Pro)
back-button-passthrough = false
# Send sensor updates immediately instead of waiting for the next input report
immediate-sensor-updates = true
# No-Steam mode
no-steam = false
# Window behavior
[window]
# Create/Show window at launch
show = false
# Create a transparent fullscreen (borderless) overlay window
fullscreen = true
# Maximum FPS for the Steam overlay/UI
max-fps = 60
# Logging
[log]
# Logging level
# Allowed: "trace", "debug", "info", "warn", "error"
level = "info"
# Write logs to a file.
# Default path:
# Windows: %APPDATA%/SISR/data/SISR.log
# Linux: ~/.config/SISR/data/SISR.log
file = "C:/Users/<UserName>/AppData/Roaming/SISR/data/SISR.log"
# Steam integration
[steam]
# Steam installation directory, normally auto-detected
install-dir = "C:/Program Files (x86)/Steam"
# Active Steam user ID (optional)
user-id = 0
# CEF remote debugging port (optional)
cef-remote-debug-port = 8080