Euri Linux uses [Calamares](https://codeberg.org/calamares/calamares) as its installer, with a custom launcher (`calamares-next`) that launches Calamares directly in online mode.
Online-only (since v2026.07.16). The so-called "Offline Install" was removed from Calamares — it was never truly offline: the rootfs only contained live session essentials, and all DE packages were still downloaded via basestrap. All Calamares installs now use the full netinstall flow with desktop selection.
A BYODE (Bring Your Own Desktop Environment) offline installer script is available on the live desktop for users who want a bare system installed from the ISO. See [BYODE](byode). It is experimental.
**Fix**: The `pipewire` package in `[euri-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'`).
**Fix**: The installed system uses the **pixie** SDDM theme (`pixie-sddm-git`, Material Design 3). The `euri-layan-theme` package vendors its own `kde_settings.conf` at `/etc/sddm.conf.d/kde_settings.conf` with `Current=pixie` (plus dinit halt/reboot commands). The live session uses the `breeze` theme for autologin — the pixie theme applies to the installed system after login.
The `filesystem` package from Artix owns `/usr/lib/os-release`. Our `euri-release` also needs to install there, but it wasn't included in the basestrap operations list.
Euri Linux ships **Dinit** as the default and only install-time init. OpenRC, Runit, and S6 are available in the Artix repos and are supported — but they are not offered as install-time options; you switch after installation. See [Changing init on an installed system](changing-init) for instructions. Note that **OpenRC** is known to have issues with service enabling on installed systems; Runit and S6 switch cleanly.
The install flow begins with a dedicated desktop environment picker (`packagechooser@de`) before the package selection tree. This replaces the old netinstall-based "Desktop" group that installed all DEs when the parent checkbox was clicked.
The selector uses `method: netinstall-add` — the chosen DE's package group is dynamically added to the netinstall tree. This means users can still refine their DE packages in the subsequent netinstall step, seeing only their selected DE rather than all available options.
| **KDE Plasma** | world | Full DE | Default. Wayland + X11. Listed as individual packages in the active config; the companion copy in `calamares-online/modules/` uses the `plasma` meta-group + `euri-desktop-settings` |
i3, Sway, and Hyprland are offered as install options but will present a black screen on first boot without a configuration file. Config packages (`euri-i3-config`, `euri-sway-config`, `euri-hyprland-config`) are available from the `[euri-pkgs]` repository and are automatically included when the corresponding DE is selected.
The DM selector (`packagechooser@dm`) uses `method: netinstall-add`, with each display manager's packages defined inline in the chooser items. Available options:
Custom branding lives in the `calamares-branding-euri` 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`).
The installation sequence runs `grubcfg` before `bootloader`. The `grubcfg` module writes `/etc/default/grub` on the target system; the `bootloader` module then runs `grub-install` and `grub-mkconfig -o /boot/grub/grub.cfg`.
The Artix `grub` package ships its own default `/etc/default/grub`. Because this file exists on the target at module runtime, the module's `defaults` block is only applied when `overwrite` is set to `true`. The `grubcfg.conf` at `live-overlay/etc/calamares/modules/grubcfg.conf` therefore sets `overwrite: true` to ensure `GRUB_THEME`, `GRUB_TERMINAL_OUTPUT`, and `GRUB_DISTRIBUTOR` are written.
`GRUB_TERMINAL_OUTPUT` must be `"gfxterm"` for the GRUB theme to render; `"console"` disables graphical output and prevents theme loading.
## Bootloader target detection
The `bootloader` module auto-detects the GRUB target architecture using the system's EFI bitness and CPU type. For UEFI x86_64, it installs with `--target=x86_64-efi`. For Legacy BIOS boots, it falls back to `--target=i386-pc`. There is no configuration key to override this — a system booted in BIOS mode will always receive an i386-pc bootloader.
During installation, the launcher monitors pacman activity and saves the package installation log to `~/pacman-install.log`. No terminal windows are opened to display progress.