Configuration Reference

All players read configuration from a config.json file. The location varies by platform:

PlatformConfig path
Electron~/.config/xiboplayer/electron/config.json
Chromium~/.config/xiboplayer/chromium/config.json
PWAStored in browser localStorage

Connection settings

KeyDefaultDescription
cmsUrlCMS server URL (required)
cmsKeyCMS secret key (required)
displayNamehostnameDisplay name shown in CMS
hardwareKeyauto-generatedUnique display identifier (do not change)

Server settings

KeyDefaultElectronChromiumDescription
serverPort8765 / 876687658766Local proxy server port
relaxSslCertsfalseYesYesAccept self-signed CMS certificates

Display settings

KeyDefaultElectronChromiumDescription
kioskModetrueYesYesFullscreen kiosk mode
fullscreentrueYesYesStart in fullscreen
hideMouseCursortrueYesYesAuto-hide cursor after inactivity
preventSleeptrueYesYesPrevent screen blanking
width1920YesWindow width (non-kiosk mode)
height1080YesWindow height (non-kiosk mode)

GPU settings

KeyDefaultElectronChromiumDescription
gpuautoYesYesGPU selection: auto, nvidia, intel, amd, or /dev/dri/renderDNNN

The player auto-detects GPUs via /sys/class/drm and selects the best one. On hybrid GPU systems (Optimus/PRIME), it prefers the GPU with display connectors.

Sync settings (video walls)

KeyDefaultDescription
sync.enabledfalseEnable multi-display synchronization
sync.roleautolead, follower, or auto (mDNS discovery)
sync.leadUrlWebSocket URL of the lead display (manual mode)

API settings

KeyDefaultDescription
apiClientIdOAuth2 client ID for REST API
apiClientSecretOAuth2 client secret for REST API

Logging

KeyDefaultDescription
logLevelwarningLog level: debug, info, warning, error

Keyboard shortcuts

These work in all player platforms:

KeyAction
DToggle download overlay (shows download progress)
TToggle timeline overlay (shows schedule)
SToggle setup overlay (CMS configuration)
Ctrl+IShow status (IP, CMS, player — kiosk only)
Ctrl+RReconfigure CMS (kiosk only)

Environment variables

VariableDescription
XIBOPLAYER_DEBUG_PORTEnable Chrome DevTools Protocol on this port (e.g., 9223)
XIBO_GPUOverride GPU selection (same values as gpu config key)

Example config.json

{
  "cmsUrl": "https://cms.example.com",
  "cmsKey": "your-secret-key",
  "displayName": "Lobby Display",
  "serverPort": 8765,
  "gpu": "auto",
  "logLevel": "info",
  "sync": {
    "enabled": true,
    "role": "auto"
  }
}