Skip to content

cleanup: keyboard/language/timezone wizard steps are dead code — never registered or applied #187

Description

@castrojo

Summary

defaults/keyboard.py, defaults/language.py, and defaults/timezone.py implement full wizard step classes with get_finals() but are not registered in utils/builder.py's templates dict.

Impact

The installer does not configure keyboard layout, system language, or timezone on the installed system. The installed system uses whatever defaults the image ships.

For images where GNOME Initial Setup is disabled (needs_user_creation=True — Bluefin, Bazzite, etc.), users must configure keyboard/language/timezone manually after first boot via GNOME Settings or localectl.

Current state

# builder.py — registered templates
templates = {
    "conn-check": BootcDefaultConnCheck,
    "welcome":    BootcDefaultWelcome,
    "disk":       BootcDefaultDisk,
    "slurp":      BootcDefaultSlurp,
    "encryption": BootcDefaultEncryption,
    "image":      BootcDefaultImage,
    "user":       BootcDefaultUsers,
    "qr_companion": BootcDefaultQrCompanion,
    "yes-no":     BootcLayoutYesNo,
}
# keyboard, language, timezone — NOT imported, NOT registered

The modules exist as dead code. The get_finals() return values are never included in the installer recipe or written to the installed system.

Options

  1. Remove the dead code entirely — simplest, reduces confusion
  2. Wire them up — register in builder.py, add to the bundled recipe.json steps, and implement the corresponding write-to-installed-system logic in fisherman (WriteLocale, WriteTimezone, WriteKeymap)
  3. Document intentionally — if GNOME Initial Setup handles this on first boot for all supported images, add a comment in builder.py explaining why these steps are omitted

Assisted-by: Claude Sonnet 4.5 via pi

Metadata

Metadata

Assignees

No one assigned

    Labels

    1-triageNew work awaiting human triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions