Skip to content

Improve setup parity between distro-specific setup-system scripts #45

@kergoth

Description

@kergoth

Improve setup parity between distro-specific setup-system scripts

Problem

The scripts/setup-system-*.tmpl scripts have significant inconsistency in what they configure:

Chimera (~111 lines):

  • Full system config: shell, locales, services (syslog, dhcp, bluetooth)
  • Desktop environment (GNOME, flatpak)
  • Development tools (clang, cmake, cargo, go)
  • Containers (podman)
  • CLI tools (wget, tmux, uv, jq, fzf, ripgrep, fd, eza, bat, delta, gh, jj, restic, etc.)

Arch (~80 lines):

  • System config: locales, timezone, staff group, keyring
  • SSH/mDNS setup
  • Basic packages (vi, zsh, which, xz, wget, unzip)
  • Console font (bare-metal only)

Debian/Ubuntu (~25 lines):

  • Only: xz-utils, zsh

Fedora (~23 lines):

  • Only: xz, zsh, neovim

Expected Behavior

All distros should provide comparable base functionality:

  • System configuration (locales, timezone, groups)
  • Shell setup (zsh)
  • Essential tools (vi/neovim, xz, wget, unzip)
  • SSH configuration (where applicable)
  • Platform-specific adjustments (WSL vs bare-metal)

Optional features should be consistently handled via flags (.coding, .containers, .headless).

Tentative Plan

  1. Document what each script currently does
  2. Define a "base set" of functionality all distros should provide
  3. Standardize conditional logic (WSL, ephemeral, coding, containers, headless)
  4. Update minimal scripts (Debian/Ubuntu/Fedora) to match Arch/Chimera patterns
  5. Consider extracting common setup into setup-system-linux.tmpl where possible

Related

  • Arch improvements in Update arch setup, particularly for WSL #26 could serve as a template for other distros
  • Chimera setup demonstrates comprehensive capability coverage and good script structure (os-install/setup-root separation)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions