Files
euri-iso/docs/installer.md
T
c-ludenberg a8446b4dcc feat: add COSMIC desktop, greetd DM, and transparent logo to root-overlay
- Add COSMIC desktop subgroup to online netinstall (galaxy repo)
- Add greetd as display manager option in packagechooser_dm.conf
  (required by COSMIC's cosmic-greeter)
- Replace non-transparent 900x650 logo with transparent removebg version
  at 128x92 (128x128) and 256x185 (256x256) in root-overlay icon theme paths
- Update docs to reflect COSMIC availability and greetd option
2026-07-14 20:44:22 +02:00

97 lines
4.8 KiB
Markdown

---
title: Installer
layout: default
nav_order: 4
---
# Calamares Installer
Antergos NeXT uses [Calamares](https://codeberg.org/calamares/calamares) as its installer, with a custom launcher (`calamares-next`) that presents a mode picker before launching Calamares.
## Modes
| Mode | Description |
|------|-------------|
| **Offline** | Unpacks a pre-built KDE Plasma squashfs — no internet needed. Fast, deterministic, single option. |
| **Online** | Netinstall with init system choice + desktop selection. Downloads packages from the internet. |
## Fixed issues (v2026.07.11)
### Audio on installed systems
The offline install works because `pipewire.desktop` is baked into the root squashfs via `root-overlay`. But in online mode, packages are installed fresh — and the upstream `artix-pipewire-launcher` doesn't support dinit. The XDG autostart entry was also missing.
**Fix**: The `pipewire` package in `[antergos-pkgs]` now includes `pipewire.desktop` installed to `/etc/xdg/autostart/`, and the `artix-pipewire-launcher` script is patched to recognize dinit (`dinit|runit|s6) SUPPORT='YES'`). This way both offline and online installs get working audio.
### SDDM theme showing Breeze
KDE's SDDM KCM writes a `kde_settings.conf` with `Current=breeze`. The Antergos theme never took effect in the live session.
**Fix**: The `antergos-sddm-theme` package now ships `theme.conf` at `/etc/sddm.conf.d/theme.conf` with `Current=antergos`. SDDM reads `conf.d` files alphabetically, so `theme.conf` (reads after `kde_settings.conf`) wins.
### `/usr/lib/os-release` showing "Artix Linux"
The `filesystem` package from Artix owns `/usr/lib/os-release`. Our `antergos-release` also needs to install there, but it wasn't included in the basestrap operations list.
**Fix**: Added `antergos-release` to the `operations` list in `basestrap.conf` so it's installed during bootstrapping with `--overwrite`.
## Key differences from upstream Calamares
- `dracut`/`dracutlukscfg` replaced with `initcpiocfg`/`initcpio`/`luksopenswaphookcfg` (Artix uses mkinitcpio, not dracut)
- `services-openrc` module instead of `services-systemd` (supports all four inits via init-specific variants)
- `removeuser` step removed, `postcfg` added
- `packagechooser` module compiled in (upstream Calamares skips it by default)
## Init system selector (online)
Users choose from: **Dinit**, **OpenRC**, **Runit**, **S6**.
> **Note:** OpenRC is currently broken in Antergos NeXT — services don't enable correctly on installed systems. Choose Dinit (default), Runit, or S6 instead.
Implemented as a `packagechooser` instance with `method: netinstall-add`. The selected init pulls its associated packages (e.g. `elogind-dinit`, `connman-dinit`, `sddm-dinit`). The init packages are defined in `netinstall.yaml` as separate groups.
Dinit is preselected by default.
## Desktop selector (online)
Users choose from: **Plasma**, **Xfce**, **Cinnamon**, **MATE**, **LXQt**, **i3**, **Sway**, **Hyprland**, **COSMIC**, or **No Desktop**.
Implemented as a separate `packagechooser` instance with `method: legacy`. "No Desktop" installs only the base system (TTY/login — no DE, no display manager).
## Available desktops
| Desktop | Artix Repo | Group/Packages | Notes |
|---------|------------|----------------|-------|
| Plasma | world | `plasma` group | Default. Wayland + X11. Includes Discover |
| Xfce | galaxy | `xfce4` group | |
| Cinnamon | galaxy | Individual packages | |
| MATE | galaxy | `mate` + `mate-extra` | |
| LXQt | galaxy | `lxqt` group | |
| i3 | world | `i3` group | Tiling WM |
| Sway | world | `sway` + related | Wayland-native tiling |
| Hyprland | world | `hyprland` | Wayland compositor |
| COSMIC | galaxy | `cosmic` group | Rust/Wayland. Uses greetd. Alpha quality |
## Not available
- **Budgie** — not in any Artix repo (system, world, galaxy, lib32). Slideshow entries removed.
- **GNOME** — dropped non-systemd support upstream. "You really think you can get GNOME here?"
## Offline mode
No packagechooser. Uses `unpackfs` to deploy a pre-built KDE Plasma squashfs, then `initcpiocfg` + `initcpio` for mkinitcpio configuration.
## Branding
Custom branding lives in the `calamares-branding-antergos-next` package, installed to `/etc/calamares/branding/default/`. The `componentName` in `branding.desc` must match its directory name — this is enforced by Calamares (see `Branding.cpp`).
## Launcher
The `calamares-next` script (`/usr/bin/calamares-next`) handles the installer boot flow:
1. **Mode picker**`kdialog`/`zenity` dialog asking Offline or Online install
2. **Configuration** — copies the appropriate `settings.conf` (offline or online) to `/etc/calamares/settings.conf`
3. **Launch** — runs `calamares` with the selected config
Launched via the desktop entry in the live session: `Exec=sudo -E calamares-next`.