5.4 KiB
title, layout, nav_order
| title | layout | nav_order |
|---|---|---|
| Launcher | default | 11 |
Calamares Launcher
The calamares-next script (calamares-next.sh) handles the installer boot flow. It is installed by the calamares-branding-euri package to /usr/bin/calamares-next.
Boot flow
- Notice — displays a YAD information dialog explaining why the offline install mode was removed
- Welcome — presents a branded splash screen with a single "Install" button
- Configuration — copies
calamares-online/settings.confto/etc/calamares/settings.confafter removing any existing file (the removal is necessary to preventcpfrom following symlinks) - Launch — runs
calamares -D8with the online config; debug output is redirected to a log file at~/euri-install.log
Desktop entries
The live session ships two entries in /usr/share/applications/:
calamares.desktop— the branded "Install Euri Linux" entry, launchingExec=sudo -E calamares-nexteuri-offline-install.desktop— "Install Euri Linux (Offline — NO DE)", launching the experimentalExec=sudo -E euri-offline-installscript
Both use sudo -E, which preserves environment variables (WAYLAND_DISPLAY, XDG_CURRENT_DESKTOP, etc.) when launched from the SDDM session. Without it, Calamares may not detect the display server correctly. Do not switch to pkexec — it does not work in the live environment (tested and failed in previous releases).
Module config resolution
The online settings file specifies modules-search: [ local ], which resolves to the directory containing the settings file itself. After SetConfig() copies the file to /etc/calamares/settings.conf, modules are loaded from /etc/calamares/modules/. Both calamares/modules/ and calamares-online/modules/ in the live-overlay belong to the online installer — there is no offline Calamares config. The active module configs at runtime are those under calamares/modules/; the calamares-online/modules/ tree is the self-contained companion copy for the online flow.
Calamares sequence
The installer runs two packagechooser instances in sequence, followed by the netinstall module:
| Step | Instance | Module Config | Method | Purpose |
|---|---|---|---|---|
| 4 | packagechooser@de |
packagechooser_de.conf |
netinstall-add |
Desktop environment picker (required, default Plasma) |
| 5 | packagechooser@dm |
packagechooser_dm.conf |
netinstall-add |
Display manager picker (required, default SDDM) |
| 6 | netinstall |
netinstall.yaml |
— | Refine packages, add optional groups |
How netinstall-add works
When the user selects a DE, packagechooser@de writes a group definition to the netinstallAdd global storage key. When the netinstall module loads, it reads this key and appends the DE's package group to the tree. This allows users to see and refine the packages for their chosen DE — for example, deselecting specific applications.
The DM selector (packagechooser@dm) works the same way — netinstall-add with each DM's packages defined inline in the chooser items. Selecting a DM appends its group to the netinstall tree. Both keys are read by the netinstall module's onActivate() method at runtime. See NetInstallPage.cpp in the Calamares source for details.
Available DE groups
Each DE item in packagechooser_de.conf includes a netinstall: field with its full package list. The groups are mutually exclusive — selecting a new DE replaces the previously selected one in the netinstall tree. Once added, the group behaves identically to a group defined in netinstall.yaml: users can expand it, toggle subgroups, or remove individual packages.
Pacman log capture
During installation, the launcher polls for the existence of a pacman log file within the chroot (at /tmp/calamares-root-*/var/log/pacman.log). When detected, a copy is written to ~/pacman-install.log. No terminal windows are opened to display installation progress.
Config switching
SetConfig() in calamares-next.sh:
rm -fthe existing settings file at/etc/calamares/settings.confcpthe online settings file to/etc/calamares/settings.conf- Calamares reads the config on launch
Hiding "Install Artix"
The calamares-extensions package ships an "Install Artix Linux" desktop entry (calamares-config-switcher.desktop). It is excluded from the ISO via NoExtract = usr/share/applications/calamares-config-switcher.desktop in pacman.conf.d/iso-x86_64.conf, so pacman never extracts it during the build. Our branded calamares.desktop in the live-overlay is the only installer entry.
Module configs
Configs live in live-overlay/etc/calamares/modules/ (overriding the copies installed by calamares-branding-euri):
packagechooser_de.conf— desktop environment selector usingmethod: netinstall-addpackagechooser_dm.conf— display manager selector usingmethod: netinstall-addwith inline DM groupsnetinstall.yaml/netinstall.conf— the netinstall package treeservices-artix.conf— service enablement viaartix-servicegrubcfg.conf— GRUB default configuration (/etc/default/grub)bootloader.conf— bootloader installation parameters
The remaining module configs (initcpiocfg.conf, initcpio.conf, welcome.conf, basestrap.conf, etc.) ship in the calamares-branding-euri package under /etc/calamares/modules/.