Skip to main content

Overview

The host.input section controls how keyboard and mouse input from the remote client is injected into the target application, including injection policies, transport mechanisms, and thread priority settings.

Injection Policy

string
default:"REQUIRE_FOREGROUND"
Policy for when input injection is allowed.Default: REQUIRE_FOREGROUNDOptions:
  • REQUIRE_FOREGROUND - Only inject when target window is foreground
  • ALWAYS - Always inject regardless of focus
  • DISABLED - Disable input injection
Using ALWAYS may cause input to be injected into unintended applications.
boolean
default:"false"
Allow stealing focus from other windows.Default: falseWhen enabled, automatically brings target window to foreground when input is received.
boolean
default:"true"
Release all pressed keys/buttons when client disconnects.Default: truePrevents stuck keys when client disconnects unexpectedly.
Always keep this enabled to avoid stuck key issues.

Mouse Configuration

string
default:"DPI_AWARE"
Mouse coordinate scaling policy.Default: DPI_AWAREOptions:
  • DPI_AWARE - Scale coordinates based on system DPI
  • ABSOLUTE - Use absolute coordinates without scaling
  • RELATIVE - Use relative mouse movements
DPI_AWARE is recommended for accurate cursor positioning across different display configurations.
boolean
default:"false"
Confine cursor to target window boundaries.Default: falseWhen enabled, prevents cursor from leaving the target window.
boolean
default:"true"
Combine multiple mouse move events into single injection.Default: trueReduces CPU usage by batching rapid mouse movements.
integer
default:"100"
Maximum mouse move events to process per frame.Default: 100Limits processing overhead from rapid mouse movement.
boolean
default:"false"
Enable strict ordering of mouse events.Default: falseMay add latency but ensures exact event ordering.

Keyboard Configuration

boolean
default:"true"
Block Windows key presses on the host.Default: truePrevents accidentally opening Start menu or triggering Windows shortcuts during streaming.
Keep enabled to avoid interruptions during gaming sessions.
boolean
default:"false"
Block all system key combinations (Alt+Tab, Ctrl+Alt+Del, etc.).Default: false
Only enable in controlled environments. Makes it difficult to exit the application.
string
default:"THROTTLED"
Key repeat handling policy.Default: THROTTLEDOptions:
  • THROTTLED - Limit repeat rate to maxKeyRepeatHz
  • PASSTHROUGH - Forward all repeats from client
  • DISABLED - Ignore all key repeats
Throttled mode prevents network flooding from held keys.
integer
default:"30"
Maximum key repeat frequency in Hz when throttled.Default: 30 HzStandard keyboard repeat rate is ~30 Hz.
integer
default:"250"
Initial delay before key repeat starts.Default: 250 msMatches standard OS keyboard repeat delay.

Transport Configuration

boolean
default:"true"
Use WebRTC DataChannels for input transport.Default: trueDataChannels provide lower latency than WebSocket. Only disable for compatibility.
Always use DataChannels for best performance.
boolean
default:"false"
Enable fallback WebSocket transport.Default: falseOnly needed for clients that don’t support DataChannels.
integer
default:"100"
Maximum queued input messages before dropping.Default: 100Prevents memory buildup when injection falls behind.

Injection Rate Limiting

integer
default:"10000"
Maximum input injection rate in Hz.Default: 10000 Hz (10 kHz)Absolute maximum rate for all input events combined.
integer
default:"10"
Timeout for input queue processing.Default: 10 ms

Error Handling and Recovery

boolean
default:"true"
Automatically detect and release stuck keys.Default: trueMonitors for keys that remain pressed longer than timeout.
integer
default:"2000"
Time in milliseconds before a key is considered stuck.Default: 2000 ms (2 seconds)
boolean
default:"true"
Recover from input sequence errors.Default: trueAttempts to resynchronize input state after errors.
integer
default:"3"
Maximum recovery attempts before giving up.Default: 3
boolean
default:"false"
Stop processing on first injection error.Default: falseWhen false, continues processing despite occasional errors.
boolean
default:"true"
Log input injection errors.Default: true
integer
default:"10"
Maximum consecutive errors before stopping injection.Default: 10

Logging

boolean
default:"false"
Log every individual input event.Default: false
Generates massive log output. Only enable for debugging specific issues.
boolean
default:"true"
Log aggregated input statistics.Default: truePeriodically logs summary statistics (events/sec, errors, etc.).
integer
default:"60000"
Interval for aggregated logging in milliseconds.Default: 60000 ms (1 minute)

Thread Priority (MMCSS)

Multimedia Class Scheduler Service (MMCSS) settings for input thread priority.
boolean
default:"true"
Enable MMCSS thread priority boosting.Default: trueMMCSS gives real-time priority to reduce input latency.
Keep enabled for lowest input latency in gaming scenarios.
string
default:"Games"
MMCSS task class name.Default: GamesOptions: Games, Audio, Capture, Distribution, Playback, Pro Audio, Window ManagerGames class provides optimal priority for gaming input.
boolean
default:"true"
Use time-critical priority level.Default: trueMaximum priority short of real-time kernel threads.
integer
default:"15"
Win32 thread priority level.Default: 15 (TIME_CRITICAL)Range: -15 (IDLE) to 15 (TIME_CRITICAL)
string
default:"InputInjection"
MMCSS task name for tracking.Default: InputInjection
boolean
default:"true"
Fall back to Win32 priority if MMCSS fails.Default: trueEnsures elevated priority even if MMCSS is unavailable.
boolean
default:"true"
Show diagnostics if priority elevation fails.Default: true
boolean
default:"false"
Retry MMCSS registration on failure.Default: false
integer
default:"1000"
Delay between MMCSS retry attempts.Default: 1000 ms

Adaptive Quality Control

Adaptive input dropping based on network conditions.
boolean
default:"true"
Enable adaptive input event dropping during congestion.Default: trueDrops low-priority input events when network quality degrades.
float
default:"10.0"
RTT threshold for excellent network quality (ms).Default: 10.0 ms
float
default:"50.0"
RTT threshold for good network quality (ms).Default: 50.0 ms
float
default:"100.0"
RTT threshold for fair network quality (ms).Default: 100.0 ms
float
default:"200.0"
RTT threshold for poor network quality (ms).Default: 200.0 ms
float
default:"0.01"
Packet loss threshold for excellent quality.Default: 0.01 (1%)
float
default:"0.05"
Packet loss threshold for good quality.Default: 0.05 (5%)
float
default:"0.10"
Packet loss threshold for fair quality.Default: 0.10 (10%)
float
default:"0.20"
Packet loss threshold for poor quality.Default: 0.20 (20%)
integer
default:"1"
Input queue depth for excellent quality.Default: 1
integer
default:"3"
Input queue depth for good quality.Default: 3
integer
default:"6"
Input queue depth for fair quality.Default: 6
integer
default:"12"
Input queue depth for poor quality.Default: 12
float
default:"0.0"
Input drop ratio for excellent quality (0.0-1.0).Default: 0.0 (no dropping)
float
default:"0.0"
Input drop ratio for good quality (0.0-1.0).Default: 0.0 (no dropping)
float
default:"0.0"
Input drop ratio for fair quality (0.0-1.0).Default: 0.0 (no dropping)
float
default:"0.0"
Input drop ratio for poor quality (0.0-1.0).Default: 0.0 (no dropping)
float
default:"0.0"
Input drop ratio for critical quality (0.0-1.0).Default: 0.0 (no dropping)
integer
default:"0"
Minimum interval between input frames (ms).Default: 0 (no throttling)
integer
default:"100"
Network statistics update interval (ms).Default: 100 ms

Example Configurations

Competitive Gaming (Ultra-Low Latency)

Casual Gaming (Balanced)

High Latency Network