Branding Calamares as WROLPi; post-install cleanup of the orphan launcher.
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Controller Tests / controller-tests (push) Has been cancelled
Jest Tests / jest-tests (push) Has been cancelled

The installer now identifies as WROLPi rather than Debian: product name,
sidebar logo (the wifi-pie favicon from /icon.png), bootloader entry name,
and URLs all point at WROLPi.  Sidebar colors are WROLPi purple.

Three new files under etc/calamares/:
- branding/wrolpi/branding.desc  — product strings + image + color scheme
- branding/wrolpi/wrolpi-logo.png — copy of the project favicon
- settings.conf                  — override picks branding=wrolpi and adds
                                   shellprocess to the exec sequence
- modules/shellprocess.conf      — rm /home/wrolpi/Desktop/install-wrolpi.desktop
                                   on the target so the installed system
                                   doesn't ship with a broken icon

Slideshow QML is intentionally omitted: producing our own QML/asset pack
is deferred polish.  Calamares falls back to a static welcome screen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Roland 2026-05-24 12:49:22 -06:00
parent 2524a017e1
commit 2acb80c1ae
No known key found for this signature in database
GPG key ID: 1BA620CE6C9A4680
6 changed files with 128 additions and 7 deletions

View file

@ -53,10 +53,13 @@ the user's library so a drive moved between hosts keeps its full state:
- [x] **Phase 1 — merged live + chroot config**: Single `debian-live-config/`
produces a Debian Live ISO with the full WROLPi stack, XFCE auto-login
as `wrolpi`, persistence partition created on first boot.
- [ ] **Phase 2 — Calamares installer**: Add `calamares` package and a
desktop launcher so users can install WROLPi to disk.
- [ ] **Phase 3 — branding + release**: WROLPi branding for Calamares,
CI on tag, hosting, wrolpi.org docs.
- [x] **Phase 2 — Calamares installer**: `calamares` package and a desktop
launcher. Users can install WROLPi to disk via the "Install WROLPi to
disk" icon on the desktop.
- [x] **Phase 3 — branding**: WROLPi product name, logo, colors applied
to the Calamares wizard via `etc/calamares/branding/wrolpi/`. Orphan
launcher cleaned up post-install by a Calamares shellprocess module.
- [ ] **Release**: CI on tag, hosting, wrolpi.org docs.
## References

View file

@ -210,9 +210,8 @@ EOF
# placed in ~/Desktop; we use the upstream install-debian wrapper script
# (pulled in by calamares-settings-debian) but rebrand the launcher entry.
# Marked executable so XFCE will launch it without a "trusted application"
# warning. After install Calamares removes calamares-settings-debian, which
# takes install-debian with it; the orphan icon is cleaned up in a
# follow-up Calamares shellprocess (phase 3).
# warning. Cleanup of this file on the installed system is handled by
# the shellprocess Calamares module (see etc/calamares/modules/shellprocess.conf).
mkdir -p /home/wrolpi/Desktop
cp /usr/share/applications/install-debian.desktop /home/wrolpi/Desktop/install-wrolpi.desktop
chmod +x /home/wrolpi/Desktop/install-wrolpi.desktop

View file

@ -0,0 +1,38 @@
---
componentName: wrolpi
welcomeStyleCalamares: true
welcomeExpandingLogo: true
windowExpanding: normal
windowSize: 800px,520px
windowPlacement: center
strings:
productName: WROLPi
shortProductName: WROLPi
version: Debian 12 (bookworm)
shortVersion: 12
versionedName: WROLPi on Debian 12
shortVersionedName: WROLPi
bootloaderEntryName: WROLPi
productUrl: https://wrolpi.org
supportUrl: https://wrolpi.org
knownIssuesUrl: https://github.com/lrnselfreliance/wrolpi/issues
releaseNotesUrl: https://github.com/lrnselfreliance/wrolpi/releases
donateUrl: https://wrolpi.org
images:
productLogo: "wrolpi-logo.png"
productIcon: "wrolpi-logo.png"
productWelcome: "wrolpi-logo.png"
# Slideshow omitted — the upstream Debian slideshow doesn't ship with the
# WROLPi branding, and producing our own QML is deferred polish. Calamares
# falls back to a static welcome screen.
style:
sidebarBackground: "#5d2961"
sidebarText: "#FFFFFF"
sidebarTextSelect: "#8d4d92"
sidebarTextHighlight: "#FFFFFF"
slideshowAPI: 2

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

View file

@ -0,0 +1,13 @@
---
# Run inside the target system's chroot so paths refer to the installed
# /home/wrolpi, not the live system's.
dontChroot: false
timeout: 30
script:
# Remove the orphan "Install WROLPi" launcher. Calamares removes the
# calamares-settings-debian package (taking the install-debian wrapper
# binary with it), but the copy we placed in the wrolpi user's Desktop
# directory is a plain file that apt doesn't track. Without this
# cleanup, the installed system shows an icon that fails when clicked
# because its Exec target no longer exists.
- "rm -f /home/wrolpi/Desktop/install-wrolpi.desktop"

View file

@ -0,0 +1,68 @@
# Configuration file for Calamares — WROLPi installer.
#
# Mostly mirrors the upstream calamares-settings-debian settings.conf;
# differences are:
# - branding: wrolpi (was: debian)
# - shellprocess inserted near the end of the exec phase to clean up the
# "Install WROLPi" desktop launcher we drop on the live user's desktop.
# Upstream's packages module already removes calamares-settings-debian
# (taking install-debian and the .desktop file in /usr/share/applications
# with it), but our copy in /home/wrolpi/Desktop/ is a plain file that
# apt doesn't know about and would otherwise survive as an orphan on
# the installed system.
---
modules-search: [ local, /usr/lib/calamares/modules ]
oem-setup: false
disable-cancel: false
disable-cancel-during-exec: false
quit-at-end: false
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- users
- summary
- exec:
- partition
- mount
- unpackfs
- dpkg-unsafe-io
- sources-media
- machineid
- fstab
- locale
- keyboard
- localecfg
- users
- displaymanager
- networkcfg
- hwclock
- services-systemd
- bootloader-config
- grubcfg
- bootloader
- packages
- luksbootkeyfile
- plymouthcfg
- initramfscfg
- initramfs
- dpkg-unsafe-io-undo
- sources-media-unmount
- sources-final
- shellprocess
- umount
- show:
- finished
branding: wrolpi
prompt-install: false
dont-chroot: false