why the FUCK did i think making an init selector was a good idea
artix themselves dont even ship services in their online installer
they just give you a bare system and say "figure it out" and
it WORKS because people can just install their init of choice
afterwards. but nooooo i had to be clever and build a whole
netinstall-add monstrosity with openrc/runit/s6 service groups
that broke constantly because basestrap --overwrite is a lie
and init packages conflict with each other and sddm-openrc +
lightdm-openrc both Provide: init-displaymanager and pacman
just goes 🖕 during install.
so anyway. dinit only now. you want something else? read
changing-init.md, i literally copied the artix wiki tutorial.
i am not maintaining four init service groups in netinstall.yaml
for the rest of my life. this is my villain origin story.
actual changes:
- ripped out offline calamares mode (was never truly offline)
- ripped out packagechooser.conf (good fucking riddance)
- added packagechooser_dm.conf so you can at least pick your DM
- added BYODE offline installer (bare system + btrfs + snapper,
no DE, you pacman -Sy plasma-meta yourself)
- added yay + snapper + btrfs-progs to rootfs
- shoved Init Services + DM groups into netinstall.yaml (dinit
only, obviously)
- updated every markdown file that mentioned another init like
they were cursed (they were)
- wrote changing-init.md so i can just paste the link next time
someone asks
- X-KDE-IsAdminApplication=true so KDE stops acting like
calamares is a virus (its not, its just desperate)
The packagechooser_dm.conf has greetd as a DM option with
method: netinstall-select, but no matching 'greetd' group existed
in /etc/calamares/modules/netinstall.yaml (which is what Calamares
loads in online mode via modules-search: [local] resolution).
Without the group, selecting greetd silently fails and the
displaymanager module falls back to SDDM instead.
Add greetd + greetd-dinit group alongside the existing SDDM,
LightDM, LXDM, LY groups.
- 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
Place pipewire.desktop in root-overlay /etc/skel/.config/autostart/
so PipeWire starts via XDG autostart on login via the patched
artix-pipewire-launcher (now supports dinit in our pipewire fork).
Configure SDDM [Wayland] section with kwin_wayland compositor
command for a Wayland-native greeter display.
Includes:
- buildiso: antergos theme symlinked as artix for prepare_grub
- profile.yaml: dinit-user-spawn -> userspawn-dinit, added
dbus-dinit-user, pipewire-pulse-dinit, userspawn-dinit to livefs,
antergos-lsb-release
- services-artix.conf: dinit-user-spawn -> userspawn
- basestrap.conf: xlibre-xserver for online install
- pacman.conf: IgnorePkg xorg-server to avoid conflict with xlibre
- sddm.conf: Wayland compositor command
- common.yaml: cleanup (dedup lsb-release, vi->ex-vi-compat,
remove artix-grub-theme, jack2, noto-fonts-emoji)
- iso-x86_64.conf: IgnorePkg xorg-server for ISO build
xlibre-xserver is the modern Artix unified X server that provides
both x11win-server (required by SDDM) and xorg-server (required by
all DEs). Setting use-xlibre: false caused the old split packages
(x11win-server from system repo vs xorg-server from world repo) to
conflict during online installs when users selected SDDM + any DE
that pulls xorg-server/xlibre-xserver.
Switched both full and minimal profiles to use-xlibre: true.
SDDM pulls x11win-server (system repo) which conflicts with
xlibre-xserver (world repo) pulled by Cinnamon/MATE/LXQt.
Added warning descriptions to all DM choices suggesting
LightDM for incompatible combos.
- YAML document separator '---' was glued to 'qmlSearch' key, causing
the notesqml module to fall back to default example release notes
- Copied the config to calamares-online/modules/ and
calamares-offline/modules/ so both modes can find it
Introduces iso-profiles/antergos-minimal/, a new Xfce-based profile for
building a lightweight Antergos NeXT ISO under the 2 GB GitHub Releases
limit (the full Plasma profile produces ~2.15 GB).
Profile structure:
- profile.yaml: Xfce4 desktop, dinit-only init packages, Falkon browser,
minimal app selection, antergos-xfce-theme included in rootfs
- root-overlay/: SDDM configured for xfce.desktop, GRUB theme pointed to
antergos, xfconf settings for Antergos-NeXT GTK/xfwm4 theme
- live-overlay/: Calamares offline + online configs, netinstall with
multiple DE options (Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway,
Hyprland), notesqml@minimal-info step explaining the edition rationale,
basestrap operations for antergos-release/grub-theme/keyring, display
manager selection (SDDM/LightDM/LXDM/LY), audio services (pipewire),
and antergos-xfce-theme in the Xfce subgroup
Default Xfce theme is set to Antergos-NeXT (Numix-derived, blue accent)
via xfconf XML in both live-overlay and root-overlay skel directories.
Restores original callback (hardcoded False), pretty_status_message refactor,
umask pattern, known_inits name, unguarded operations access, and inline
subst_locale — all of which were changed in earlier CodeQL fix commits.
Keeps only harmless changes: unused import removal (sys, re), PEP8 comma
space, and _change_mode zero-division guard.
Adds large ASCII warning header: DO NOT EDIT without full ISO test.
Restores original callback (hardcoded False), pretty_status_message refactor,
umask pattern, known_inits name, unguarded operations access, and inline
subst_locale — all of which were changed in earlier CodeQL fix commits.
Keeps only harmless changes: unused import removal (sys, re), PEP8 comma
space, and _change_mode zero-division guard.
Adds large ASCII warning header: DO NOT EDIT without full ISO test.
- Guard _change_mode progress division against zero total_packages
- Document why -Syu is inappropriate in installer context (reproducibility)
- Promote known_inits to module-level KNOWN_INIT_PROVIDERS constant
- Guard _change_mode progress division against zero total_packages
- Document why -Syu is inappropriate in installer context (reproducibility)
- Promote known_inits to module-level KNOWN_INIT_PROVIDERS constant