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
basestrap module (from calamares-extensions) reads netinstallAdd only
for the init provider name (e.g. 'dinit') to add elogind-dinit. It
does NOT install the subgroup packages from the user's packagechooser
selection (networkmanager-dinit, pipewire-dinit, etc.). So these were
selected in the GUI but never present in the target system.
Since the netinstall view's packageOperations -> packages module flow
works correctly, move all required *-dinit service packages into the
netinstall.yaml Default group (online) and profile.yaml rootfs (offline).
Also revert settings.conf back to services-artix + postcfg — these
modules DO exist (from calamares-extensions) and work correctly when
the service packages are installed. Remove the unnecessary shellprocess
files that were added as a mistaken workaround.
services-artix and postcfg Calamares modules don't exist in upstream
Calamares (they're Garuda/Artix fork patches). Our custom Calamares
builds from pure upstream, so these steps get silently skipped during
installation, leaving NO services enabled in the installed system.
Replace them with shellprocess@enable-services, which uses the
built-in shellprocess module to run a post-install script that:
- Detects the init system (dinit/openrc/runit/s6)
- Enables all system services via boot.d symlinks or equivalent
- Sets up user services (pipewire, wireplumber) for the created user
Affects both online and offline installer settings.
- Plasma group in netinstall.yaml now includes antergos-plasma-theme,
antergos-next-desktop-settings, and full KDE app list from branding
- Default group adds networkmanager, pipewire, pipewire-pulse,
wireplumber, firefox, mesa for working network/audio out of the box
- Init chooser packagechooser.conf adds pipewire-dinit and
wireplumber-dinit services to all four init sections (dinit, openrc,
s6, runit) for audio service enablement
finished.conf was only in calamares-online/modules/ and
calamares-offline/modules/, not in calamares/modules/. When
settings.conf gets copied at runtime, Calamares looks for
modules at /etc/calamares/modules/finished.conf which didn't
exist, silently falling back to defaults with systemctl reboot
(broken on Artix).
OpenRC conflicts with dinit-rc over virtual init-rc. Runit and S6
use different virtuals so they're fine. OpenRC stays listed but
with a visible warning until a fix is found.
All approaches to keep OpenRC as default failed:
- --ignore: pacman ignores it during fresh install provider resolution
- --assume-installed=init-logind: ALPM doesn't check assume-installed for virtual providers
- --ask=12: infinite loop (pacman re-adds elogind-dinit after each removal)
- dummy package in custom repo: init-rc conflict hits via different path
Dinit works because pacman --noconfirm naturally picks elogind-dinit
(alphabetically before elogind-openrc), pulling dinit-rc which has no
conflict. All inits (OpenRC, Runit, S6) remain selectable in the
online installer.
Changes:
- buildiso: INITSYS='dinit', remove --assume-installed/--ask hacks
- basestrap/main.py, packages/main.py: remove same hacks
- profile.yaml: antergos-live-dinit for dinit, move openrc pkg to init-specific
- packagechooser.conf (x2): default=Dinit, Dinit first in item list
- packagechooser_dm.conf: *-dinit instead of *-openrc
- README.md, README.pl.md, docs/*: update all OpenRC-first references
- AGENTS.md: document dinit as default
- Install base + antergos-next-keyring first
- try_remove artix-release (catches errors silently)
- Then install antergos-release, wallpapers, grub-theme
- antergos-release has replaces=artix-release so pacman handles
the swap, but try_remove is a safety net
Proactively remove artix-release during basestrap so the packages
module's single pacman -S transaction doesn't hit the conflict when
installing antergos-release. try_remove catches errors silently if
artix-release can't be removed.
antergos-release was missing from packages.yaml so the CI never
built it, causing error code 1 when the packages module tried to
install it. Now re-added to both CI config and Default netinstall
group.
antergos-release PKGBUILD exists but the package was never built
and deployed to the GitHub Pages repo. The packages module tried to
install it and pacman returned error code 1 (package not found).
Remove it until the CI builds and deploys it.
Also remove try_remove: artix-release from basestrap since it's not
needed without antergos-release in the Default group.
- Add antergos-next-keyring to basestrap install list so keyring files
are available in the target early (uses host keyring which already
trusts the Antergos key)
- Add antergos-next to keyrings list so pacman-key --populate imports
the Antergos key into the target's keychain
- try_remove artix-release so antergos-release doesn't conflict when
packages module runs later (replaces= PKGBUILD fix also pushed, but
this works regardless of rebuild)
- Fix remove() method in basestrap main.py: was missing --root <target>,
causing removals to operate on the HOST instead of the target
- Add antergos-release, antergos-next-keyring, antergos-wallpapers to
Default netinstall group (both global and online) so installed system
keeps Antergos branding instead of appearing as plain Artix
- Populate services-artix.conf (both online + offline) with service names
so SDDM, NetworkManager, dbus, etc. are enabled after install (fixes
boot-to-TTY issue)
- Create grubcfg.conf for online mode with GRUB_THEME default so
antergos-grub-theme is actually applied by grub-mkconfig
The basestrap module from calamares-extensions had a hardcoded check that
skipped installing 'base' if hasInternet wasn't True in global storage.
This silently left the target empty, causing the packages module to fail
with error 127 (pacman not found in chroot).
Changes:
- Make hasInternet check configurable via skip_if_no_internet (default false),
matching the packages module pattern
- Fix potential NameError when netinstallAdd isn't in global storage
- Copy basestrap.conf to global modules override so it's available to online
mode (the launcher only copies settings.conf, not module configs)
- buildiso: copy Antergos GRUB theme to ISO boot directory
- profile.yaml: add antergos-grub-theme to rootfs packages
- netinstall: move antergos-grub-theme from optional Style to mandatory Default group
- main.xml: set Antergos wallpaper as KDE system default
- set-antergos-wallpaper.sh: add QDbus fallback, wait for plasmashell
- .gitignore: ignore linux-next/ and winver/