First Boot
When you boot a xiboplayer kiosk image for the first time, the system goes through an automated setup process.
Boot sequence
- GDM starts and auto-logs in as the
xibouser - GNOME Kiosk loads the kiosk script session
- The init script checks if
~/.local/share/xibo/setup-result.jsonexists - First boot: runs two-phase setup wizard. Normal boot: starts player directly.
Phase 1: gnome-initial-setup
The standard GNOME initial setup wizard runs first. A vendor.conf configuration skips account/privacy/welcome pages, keeping only:
- Language selection
- Keyboard layout
- Network connection
- Timezone detection
- Password change
This is the standard GNOME experience — same as a fresh Fedora Workstation install but trimmed for kiosk use.
Phase 2: xiboplayer-setup
After system setup completes, a native libadwaita GTK4 wizard launches (xiboplayer-setup.py), matching the gnome-initial-setup visual style:
Player selection
Choose which player to use as the default:
| Player | Priority | Description |
|---|---|---|
| Electron | Highest | Best performance, bundles its own Chromium |
| Chromium | Medium | Uses system Chromium, lighter footprint |
| arexibo | Lowest | Native Rust player, standalone rendering |
The selected player is set via the alternatives system and recorded in ~/.local/share/xibo/setup-result.json.
CMS configuration (arexibo only)
If you selected arexibo, the wizard prompts for:
- CMS URL — your Xibo CMS server address
- CMS Key — the server key from CMS Settings
For Electron and Chromium, CMS configuration happens in the player's own web-based setup page, which opens automatically after the player starts. No CMS details are needed in the kiosk wizard.
Phase 3: Player starts
The wizard writes setup-result.json and hands off to the main kiosk session (gnome-kiosk-script.xibo.sh), which:
- Starts
dunst(notifications) andunclutter(cursor hiding) - Imports Wayland display environment into systemd user manager
- Disables screen blanking and the GNOME 48 donation popup
- Starts the selected player service (from
setup-result.json) - Begins a health monitoring loop (checks every 10 seconds)
- After 3 consecutive failures, offers a reconfiguration dialog
Keyboard shortcuts
During normal operation on a kiosk:
| Shortcut | Action |
|---|---|
Ctrl+I | Show IP address, CMS URL, and player status |
Ctrl+R | Reconfigure CMS connection (stops player, launches wizard) |
Default credentials
The kiosk image ships with:
- User:
xibo - Password:
xibo - Root: locked (no root login)
Change the password after first boot: passwd xibo
Atomic image differences
On Atomic kiosk images (built on fedora-bootc):
- The OS is immutable — cannot be accidentally modified
- Updates via
bootc switchwith automatic rollback on failure - Additional packages can be layered via
rpm-ostree install
