Skip to content

feat(installer): support atomic/immutable Linux distros#170

Open
blak0p wants to merge 2 commits into
Gentleman-Programming:mainfrom
blak0p:feat/atomic-distro-support
Open

feat(installer): support atomic/immutable Linux distros#170
blak0p wants to merge 2 commits into
Gentleman-Programming:mainfrom
blak0p:feat/atomic-distro-support

Conversation

@blak0p

@blak0p blak0p commented Jul 4, 2026

Copy link
Copy Markdown

Closes #165

Summary

  • Auto-detect atomic/immutable Linux distros (Fedora Silverblue, Bazzite, Kinoite, etc.)
  • Prefer Homebrew over sudo dnf/apt on atomic systems (brew works in userspace)
  • Use flatpak for WezTerm installation
  • Skip sudo-based shell changes on atomic (/etc/shells is read-only)
  • Show manual install instructions when brew/flatpak aren't available

Changes

File Change
installer/internal/system/detect.go Add IsAtomic, HasFlatpak fields; checkAtomic(), checkFlatpak() functions
installer/internal/system/exec.go Add RunRpmOstree, RunFlatpak helpers
installer/internal/system/detect_test.go Tests for atomic detection
installer/internal/tui/installer.go Atomic-aware step functions (brew-first, skip sudo)
installer/internal/tui/interactive.go Atomic-aware interactive scripts
installer/internal/tui/model.go Atomic-aware SetupInstallSteps, ManualPackages field
installer/cmd/gentleman-installer/main.go Show atomic mode in non-interactive output

Test Plan

  • go build ./... compiles without errors
  • go test ./internal/system/ -count=1 -short passes
  • Manually tested on Bazzite (Fedora Atomic) with fish + tmux + ghostty + nvim + font
  • Config files copy correctly to $HOME
  • Homebrew installs packages in userspace
  • Flatpak installs WezTerm when available
  • Shell change step shows manual instructions instead of sudo

blak0p added 2 commits July 4, 2026 16:10
Auto-detect atomic distros (Silverblue, Bazzite, Kinoite, etc.)
via /run/ostree-booted, rpm-ostree binary, and os-release ID.
In atomic mode, prefer Homebrew over sudo dnf/apt, use flatpak
for WezTerm, and skip sudo-based shell changes.

Closes Gentleman-Programming#165
@masch

masch commented Jul 9, 2026

Copy link
Copy Markdown

Hi @Alan-TheGentleman! Do you plan to merge this feature into the main branch? It would be great if the project could support immutable Linux distros.

@masch

masch commented Jul 9, 2026

Copy link
Copy Markdown

Hi @blak0p! I use Fedora Silverblue. Do your changes work on it? I'd be happy to test them out if they do.

@blak0p

blak0p commented Jul 9, 2026

Copy link
Copy Markdown
Author

Hey @masch! Yes, it works. It's built around rpm-ostree in general, not anything Bazzite-specific, so Silverblue should be fine. If you test it and run into anything weird, let me know here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants