The boot splash still used the old bread-brown background (#230b00)
after the rest of the theme moved to a black base (#0c0c0c). Switch
bos.script's background to black so the boot splash is consistent with
the wallpaper/pywal palette and breadbar.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Install/boot reliability:
- Use native Calamares initcpiocfg/initcpio + explicit grub-install (nvram +
--removable) in post-install; drop the flaky native bootloader/grubcfg modules.
- mount.conf: bind /proc /sys /dev (devtmpfs) /run + efivars into the chroot.
- bos-copy-kernel: stage kernel + write a stock mkinitcpio preset (replace the
archiso preset). Per-service systemctl enable (fixes NetworkManager et al.
silently not enabling due to the all-or-nothing grub-btrfs.path name).
System completeness:
- greetd + tuigreet graphical login; installed pacman.conf + working mirrorlist;
base CLI tools (nano, micro, vim, htop, …); amd/intel-ucode; tlp + hypridle
power management; systemd-timesyncd, fstrim.timer; wpa_supplicant wifi; Zen
browser (republished to the [Breadway] repo).
Desktop + theming:
- Native Lua Hyprland config (hyprland.lua) with curated standard binds; kitty
(blur) replaces foot; awww wallpaper + pywal palette (tamed to a black base
with warm accents); GTK dark mode.
- Plymouth boot splash (bos theme: logo + spinner + status) via plymouthcfg.
- Varela Round font; Calamares bread-palette sidebar (logo/black-region polish
still pending).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- breadd.toml: the shipped skel used a stale [adapters] schema
(keyboard/mouse/touchpad/gamepad booleans); breadd 0.6.4 expects
hyprland/udev/power/network/bluetooth structs. `bluetooth = true` collided
with the real AdapterToggle field and aborted the daemon at startup.
- Drop the temporary bos-live-diag serial diagnostic now that the live-session
failures are diagnosed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 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`
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
archiso keeps vmlinuz/initramfs in the ISO boot dir, not the squashfs, so
unpackfs lays down an empty /boot. The chroot's mkinitcpio/grub-mkconfig had
nothing to work with and the ESP ended up empty (firmware found no bootloader).
- shellprocess@kernel (dontChroot) copies the live kernel into the target
/boot before the bootloader step
- post-install.sh now runs grub-install itself, including a --removable pass
so firmware with no NVRAM entry still boots via EFI/BOOT/BOOTX64.EFI
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
liveuser can't write /var/log, so the .bash_profile redirect
(Hyprland &>/var/log/hyprland-live.log) failed and bash aborted the line
without ever launching the compositor. Log to /tmp/hyprland-live.log,
which the live user can write.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The live medium autologged root on tty1 and exec'd Hyprland, but Hyprland
refuses to start with superuser privileges ("launched with superuser
privileges, but the privileges check is not omitted") and exited before
even creating a log — leaving tty1 at a blank blinking cursor. (Boot,
switch-root, firstboot suppression and the bos login on other ttys were
all already working.)
Adopt the standard live-ISO pattern:
- bos-live-setup.service (oneshot, gated on the archisobasedir cmdline so
it only runs on the live medium) creates an unprivileged `liveuser`,
adds it to the usual hardware groups, clears its password, and drops in
a minimal live Hyprland config that auto-launches the installer.
- tty1 autologin now targets liveuser instead of root.
- Calamares needs root, so bos-launch-calamares runs it via passwordless
sudo (/etc/sudoers.d/99-bos-live) with the Wayland env preserved, so the
root installer renders on the live user's compositor.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>