Skip to content

Support for immutable/atomic Linux distros (Fedora Silverblue, Bazzite, etc.) #165

Description

@blak0p

Problem

Gentleman.Dots doesn't work on immutable/atomic Linux distros (Fedora Silverblue, Bazzite, uBlue, etc.) because these systems:

  • Have a read-only root filesystem (ostree) — can't sudo dnf install or write to /usr/local/
  • Require rpm-ostree layering (with reboot) for system packages
  • Use flatpak for GUI apps instead of dnf/apt
  • Homebrew works (in userspace) but isn't the primary package manager on these systems

What the installer currently does that fails

  1. sudo dnf install / sudo apt install — blocked by immutable root
  2. Writing to /usr/local/ or /opt/ — blocked
  3. Assuming Homebrew is available as the main package source (it works but needs different paths)
  4. No detection of rpm-ostree based systems

What would work

The config files themselves (.zshrc, .config/ghostty/, .config/nvim/, etc.) work perfectly on atomic systems — they live in $HOME. The block is only system package installation.

Suggested approach

  1. Detect atomic distros: check for rpm-ostree binary or /etc/os-release containing silverblue/bazzite/fedora-silverblue
  2. Add an "atomic mode" (auto-detected or manual flag --atomic):
    • Skip all sudo package installation
    • Only copy config files to $HOME
    • Print a summary of packages the user should install manually via rpm-ostree install / flatpak
  3. Homebrew detection: Bazzite users can have brew at /home/linuxbrew/.linuxbrew/ — respect that for tools that can be brew-installed
  4. Flatpak fallback: for GUI apps like Ghostty, Kitty — offer flatpak installation (flatpak install)

Affected distros (non-exhaustive)

  • Fedora Silverblue / Kinoite
  • Bazzite (gaming-focused uBlue)
  • Fedora IoT
  • Vanilla OS
  • OpenSUSE MicroOS / Aeon
  • Endless OS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions