Post-install tailoring (PeaZip variants, starship+preset, RobotoMono, services) #13

Merged
yuri merged 4 commits from feat/post-install-tailoring into main 2026-11-02 17:50:02 +01:00
Owner

Ported from the old starburst minimal-fedora script, adapted to this repo (polkit already solved properly via the user unit).

  • PeaZip Qt6/GTK3 by environment, all names verified on F44, resilient
  • Starship + tokyo-night preset (no-clobber: existing config and dotfiles always win)
  • RobotoMono Nerd Font via install_nerd_font
  • fstrim, chronyd, NM globally-managed (conditional restart), pipewire user units

Harness: niri->gtk3, plasma/hyprland->qt6, preset applied once and kept, NM restart only on first run, starship not reinstalled.

Ported from the old starburst minimal-fedora script, adapted to this repo (polkit already solved properly via the user unit). - PeaZip Qt6/GTK3 by environment, all names verified on F44, resilient - Starship + tokyo-night preset (no-clobber: existing config and dotfiles always win) - RobotoMono Nerd Font via install_nerd_font - fstrim, chronyd, NM globally-managed (conditional restart), pipewire user units Harness: niri->gtk3, plasma/hyprland->qt6, preset applied once and kept, NM restart only on first run, starship not reinstalled.
yuri added 1 commit 2026-11-02 16:45:21 +01:00
Section 8, after the advanced menu (summary renumbered to 9):

- PeaZip variant by environment: peazip-common + peazip-qt6 for
  plasma/hyprland, peazip-common + peazip-gtk3 otherwise (all verified
  on F44; peazip-qt6-10.9.0-1.fc44). Resilient: warns red, continues.
- Starship prompt via the official installer (command -v guarded), then
  the tokyo-night preset ONLY when no starship.toml exists yet —
  dotfiles checkouts always win over the preset.
- RobotoMono Nerd Font via the existing install_nerd_font helper
  (modules keep installing JetBrainsMono; both are small).
- Services: fstrim.timer, chronyd, NetworkManager globally-managed
  config (write + restart + 15s settle ONLY when the conf is absent —
  no needless NM restarts on re-runs, and no SSH self-drop when the
  config already exists), pipewire user units best-effort.

Polkit agent deliberately NOT ported: solved properly by the
polkit-kde user unit (VM-proven), the old polkit-kde-agent-1 line is
superseded.
yuri added 1 commit 2026-11-02 16:58:35 +01:00
Per YuKu: after the starship install, append
  export STARSHIP_CONFIG=$HOME/.config/starship.toml
  eval "$(starship init bash)"
to ~/.bashrc — but ONLY when fedora-dots was NOT cloned (on dots
machines .bashrc belongs to the dots). Also gated on starship actually
being present (no dead eval in every shell) and idempotent (grep
guard). Harness: appended once with dots=no, never with dots=yes
(clean-home re-test; the first test was invalid because rm -rf home/*
left the previous .bashrc — the known dotfile-cleanup pitfall), and
not duplicated on re-run.
yuri added 1 commit 2026-11-02 17:25:18 +01:00
Ported from the old fedora-full script:

- SilentSDDM SDDM theme in the tailoring section, gated on sddm
  being installed (skipped on gdm setups), idempotent via the
  ~/git/SilentSDDM checkout (pull --rebase when present), pipefail
  suspended around 'yes | ./install.sh' for the SIGPIPE trap.
- fedora-workstation-repositories added in base alongside the other
  repos (it ships the google-chrome repo the Browsers option enables).
- Advanced menu: Editors (VSCodium flatpak), Graphics and Multimedia
  (gimp/inkscape/obs/lollypop via dnf, spotify via flatpak), Development
  Tools (single option: @development-tools wget cmake ninja-build
  pkgconf-pkg-config). All names verified on F44.
- install_category_pkgs splits flatpak:<id> entries to Flathub so mixed
  picks cannot fail each other's transactions.

Harness: sddm->theme installs, gnome->skipped, vscodium+spotify via
flatpak, lollypop via dnf in the same multi-pick, devtools as one
transaction, all five categories listed, unattended+piped green.
yuri added 1 commit 2026-11-02 17:40:48 +01:00
YuKu on the VM: menu installs were not quiet — the ONE place dnf's
full output still scrolled.

Root cause: the per-item install loop read picks with
'while read ... <<< "$sel"' — a herestring REPLACES stdin for its
whole body, so ui_quiet_run's tty gate saw 'piped' inside the loop
and every menu install ran in plain mode. Picks are now read into an
array first (herestring fills ONLY that); installs run in a for-loop
that never touches stdin.

Also silenced the remaining raw output in the menu path:
- Chrome repo wiring -> install_optional (quiet) + setopt silenced,
  direct-rpm fallback via ui_quiet_run
- Brave addrepo -> ui_quiet_run
- flatpak installs -> ui_quiet_run; ui_quiet_run now also matches
  flatpak's 'Installing...' progress (Unicode ellipsis) for the live
  line and count, sanitized to printable ASCII (tr -cd) so a
  non-UTF8 console never sees garbage bytes.

Pty-verified: live block lines + green summaries for chrome/gimp/
vscodium picks, flatpak progress only in the log, zero raw dnf or
flatpak text on screen.
yuri merged commit 8fb78651c9 into main 2026-11-02 17:50:02 +01:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yuri/fedora#13