First Boot

When you boot a xiboplayer kiosk image for the first time, the system goes through an automated setup process.

Boot sequence

  1. GDM starts and auto-logs in as the xibo user
  2. GNOME Kiosk loads the kiosk script session
  3. The init script checks if ~/.local/share/xibo/setup-result.json exists
  4. 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:

PlayerPriorityDescription
ElectronHighestBest performance, bundles its own Chromium
ChromiumMediumUses system Chromium, lighter footprint
arexiboLowestNative 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:

  1. Starts dunst (notifications) and unclutter (cursor hiding)
  2. Imports Wayland display environment into systemd user manager
  3. Disables screen blanking and the GNOME 48 donation popup
  4. Starts the selected player service (from setup-result.json)
  5. Begins a health monitoring loop (checks every 10 seconds)
  6. After 3 consecutive failures, offers a reconfiguration dialog

Keyboard shortcuts

During normal operation on a kiosk:

ShortcutAction
Ctrl+IShow IP address, CMS URL, and player status
Ctrl+RReconfigure 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 switch with automatic rollback on failure
  • Additional packages can be layered via rpm-ostree install