Configuration Reference
All players read configuration from a config.json file. The location varies by platform:
| Platform | Config path |
|---|---|
| Electron | ~/.config/xiboplayer/electron/config.json |
| Chromium | ~/.config/xiboplayer/chromium/config.json |
| PWA | Stored in browser localStorage |
Connection settings
| Key | Default | Description |
|---|---|---|
cmsUrl | — | CMS server URL (required) |
cmsKey | — | CMS secret key (required) |
displayName | hostname | Display name shown in CMS |
hardwareKey | auto-generated | Unique display identifier (do not change) |
Server settings
| Key | Default | Electron | Chromium | Description |
|---|---|---|---|---|
serverPort | 8765 / 8766 | 8765 | 8766 | Local proxy server port |
relaxSslCerts | false | Yes | Yes | Accept self-signed CMS certificates |
Display settings
| Key | Default | Electron | Chromium | Description |
|---|---|---|---|---|
kioskMode | true | Yes | Yes | Fullscreen kiosk mode |
fullscreen | true | Yes | Yes | Start in fullscreen |
hideMouseCursor | true | Yes | Yes | Auto-hide cursor after inactivity |
preventSleep | true | Yes | Yes | Prevent screen blanking |
width | 1920 | — | Yes | Window width (non-kiosk mode) |
height | 1080 | — | Yes | Window height (non-kiosk mode) |
GPU settings
| Key | Default | Electron | Chromium | Description |
|---|---|---|---|---|
gpu | auto | Yes | Yes | GPU 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)
| Key | Default | Description |
|---|---|---|
sync.enabled | false | Enable multi-display synchronization |
sync.role | auto | lead, follower, or auto (mDNS discovery) |
sync.leadUrl | — | WebSocket URL of the lead display (manual mode) |
API settings
| Key | Default | Description |
|---|---|---|
apiClientId | — | OAuth2 client ID for REST API |
apiClientSecret | — | OAuth2 client secret for REST API |
Logging
| Key | Default | Description |
|---|---|---|
logLevel | warning | Log level: debug, info, warning, error |
Keyboard shortcuts
These work in all player platforms:
| Key | Action |
|---|---|
D | Toggle download overlay (shows download progress) |
T | Toggle timeline overlay (shows schedule) |
S | Toggle setup overlay (CMS configuration) |
Ctrl+I | Show status (IP, CMS, player — kiosk only) |
Ctrl+R | Reconfigure CMS (kiosk only) |
Environment variables
| Variable | Description |
|---|---|
XIBOPLAYER_DEBUG_PORT | Enable Chrome DevTools Protocol on this port (e.g., 9223) |
XIBO_GPU | Override 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"
}
}
