Bake bread ecosystem into the ISO + full live desktop; fix installer timeout
- packages.x86_64: add bread, breadbar, breadbox, breadcrumbs, breadpad, bos-settings so they ship in the squashfs and reach the target via unpackfs (no network needed; install works fully offline) - shellprocess.conf: set timeout 1800 — Calamares' 10s default was killing post-install.sh partway (the real cause of the empty /boot + ESP); the "-" prefix had been masking the kill as success - bos-live-setup: live user now boots the real BOS desktop from /etc/skel (breadd + breadbar + breadbox) with the installer layered on top (auto-launch + Super+I), instead of an installer-only kiosk - post-install.sh: drop the now-redundant networked `bakery install`
This commit is contained in:
parent
078c5f4f94
commit
105b67bb4d
4 changed files with 30 additions and 29 deletions
|
|
@ -1,3 +1,9 @@
|
||||||
---
|
---
|
||||||
|
# Calamares defaults shellprocess to a 10-second timeout. post-install.sh runs
|
||||||
|
# mkinitcpio, grub-install, grub-mkconfig, snapper setup and a networked bakery
|
||||||
|
# install — minutes of work — so without a generous timeout it gets killed
|
||||||
|
# partway (leaving /boot and the ESP half-populated → unbootable system). The
|
||||||
|
# leading "-" keeps a non-zero exit non-fatal to the install.
|
||||||
|
timeout: 1800
|
||||||
script:
|
script:
|
||||||
- "-/usr/bin/bash /etc/calamares/post-install.sh"
|
- "-/usr/bin/bash /etc/calamares/post-install.sh"
|
||||||
|
|
|
||||||
|
|
@ -81,14 +81,9 @@ fi
|
||||||
systemctl enable NetworkManager bluetooth snapper-cleanup.timer grub-btrfs.path \
|
systemctl enable NetworkManager bluetooth snapper-cleanup.timer grub-btrfs.path \
|
||||||
|| echo "WARN: enabling some services failed"
|
|| echo "WARN: enabling some services failed"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# The bread ecosystem (bread, breadbar, breadbox, breadcrumbs, breadpad,
|
||||||
# Bread ecosystem via bakery (needs network — non-fatal so an offline install
|
# bos-settings) is baked into the squashfs and already copied onto the target by
|
||||||
# still completes; the user can run it after first boot).
|
# unpackfs — no install step needed here, and the install works fully offline.
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
if [[ -n "$MAIN_USER" ]] && command -v bakery &>/dev/null; then
|
|
||||||
sudo -u "$MAIN_USER" bakery install bread breadbar breadbox breadcrumbs breadpad bos-settings \
|
|
||||||
|| echo "WARN: bakery install failed (no network during install?); run it after first boot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Deploy dotfiles into the user's home (don't clobber existing files).
|
# Deploy dotfiles into the user's home (don't clobber existing files).
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,9 @@
|
||||||
# bos-launch-calamares). Runs once at boot, before the tty1 autologin getty.
|
# bos-launch-calamares). Runs once at boot, before the tty1 autologin getty.
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
# useradd -m copies /etc/skel, so the live user gets the real BOS desktop
|
||||||
|
# (breadd + breadbar + breadbox + keybinds) — proper live-media functionality,
|
||||||
|
# not an installer kiosk.
|
||||||
if ! id liveuser &>/dev/null; then
|
if ! id liveuser &>/dev/null; then
|
||||||
useradd -m -s /bin/bash liveuser
|
useradd -m -s /bin/bash liveuser
|
||||||
for g in wheel video input audio storage power; do
|
for g in wheel video input audio storage power; do
|
||||||
|
|
@ -15,29 +18,19 @@ if ! id liveuser &>/dev/null; then
|
||||||
passwd -d liveuser >/dev/null
|
passwd -d liveuser >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install -d -m 0700 -o liveuser -g liveuser /home/liveuser/.config/hypr
|
# Layer the installer onto the live desktop: auto-launch it, and bind Super+I to
|
||||||
|
# relaunch it after it's been closed. Appended to (not replacing) the skel
|
||||||
# Minimal live compositor config: auto-launch the installer.
|
# Hyprland config so the full desktop stays intact.
|
||||||
cat >/home/liveuser/.config/hypr/hyprland.conf <<'EOF'
|
HYPR=/home/liveuser/.config/hypr/hyprland.conf
|
||||||
monitor=,preferred,auto,1
|
install -d -m 0755 -o liveuser -g liveuser /home/liveuser/.config/hypr
|
||||||
|
if ! grep -q bos-launch-calamares "$HYPR" 2>/dev/null; then
|
||||||
|
cat >>"$HYPR" <<'EOF'
|
||||||
|
|
||||||
|
# --- live-media installer (added by bos-live-setup; absent on installed system) ---
|
||||||
exec-once = bos-launch-calamares
|
exec-once = bos-launch-calamares
|
||||||
|
bind = SUPER, I, exec, bos-launch-calamares
|
||||||
general {
|
|
||||||
border_size = 2
|
|
||||||
col.active_border = rgba(88c0d0ff)
|
|
||||||
col.inactive_border = rgba(4c566aff)
|
|
||||||
}
|
|
||||||
decoration { rounding = 4 }
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
follow_mouse = 1
|
|
||||||
}
|
|
||||||
misc {
|
|
||||||
disable_hyprland_logo = true
|
|
||||||
disable_splash_rendering = true
|
|
||||||
}
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
# Start Hyprland on tty1 login; capture output and fall back to a shell so a
|
# Start Hyprland on tty1 login; capture output and fall back to a shell so a
|
||||||
# failed compositor start is visible rather than a blank looping cursor.
|
# failed compositor start is visible rather than a blank looping cursor.
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,15 @@ nautilus
|
||||||
# (calamares 3.4.x is already Qt6; there is no separate calamares-qt6 package)
|
# (calamares 3.4.x is already Qt6; there is no separate calamares-qt6 package)
|
||||||
calamares
|
calamares
|
||||||
|
|
||||||
# Bread ecosystem — sourced from [breadway] repo
|
# Bread ecosystem — sourced from [breadway] repo. Baked into the squashfs so a
|
||||||
|
# fresh install (and the live session) has the full desktop with no network.
|
||||||
bakery
|
bakery
|
||||||
|
bread
|
||||||
|
breadbar
|
||||||
|
breadbox
|
||||||
|
breadcrumbs
|
||||||
|
breadpad
|
||||||
|
bos-settings
|
||||||
|
|
||||||
# Input / screen utilities
|
# Input / screen utilities
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue