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
--ignore doesn't reliably prevent pacman from considering elogind-dinit
during fresh provider resolution on all pacman versions. --assume-installed
creates a dummy installed package for init-logind, satisfying the
dependency from base without needing any provider at all. The explicitly
listed elogind-openrc then gets installed normally and provides
init-logind for real.
Dropped --ignore entirely in favor of --assume-installed + --ask=4
(conflict resolution safety net). --assume-installed only added for
non-dinit providers (openrc, runit, s6).
The branding's netinstall.yaml has a Base System group with 'base'
that gets added to packageOperations. The packages module then
reinstalls base without --ignore, triggering the same init-logind
resolution bug. Adding the same --ignore logic from the basestrap
module.
Using --ignore=elogind-dinit (and alphabetically-before providers for
other inits) prevents pacman --noconfirm from resolving init-logind
to the wrong provider. This is more robust than installing the
provider separately, which can fail if base's deps are missing.
Same fix as basestrap/main.py: when base depends on init-logind
virtual, pacman --noconfirm picks the first provider alphabetically
(elogind-dinit < elogind-openrc), pulling in dinit -> dinit-rc which
conflicts with openrc (both provide/conflict with init-rc).
Install elogind- as a separate basestrap call BEFORE the
full package list to satisfy init-logind before base needs it.
dinit-rc and openrc both provide AND conflict with virtual init-rc and
cannot coexist. When base depends on init-logind (virtual), pacman with
--noconfirm picks the first alphabetically -- elogind-dinit over
elogind-openrc -- pulling in dinit -> dinit-rc, which conflicts with
openrc (pulled by elogind-openrc via dbus-openrc).
Fix: use operations.insert(0, ...) so elogind-{init} installs as a
separate pacman call BEFORE base, satisfying init-logind before base
needs it.
- 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
The live-overlay had /home/antergos/.config/plasma-org.kde.plasma.desktop-appletsrc
which got copied as root before configure_user() creates the live user.
useradd -m skips chown if the home dir already exists, leaving .config/
owned by root — Plasma then can't write kcminitrc, xdg-desktop-portal-kderc, etc.
Wallpaper config is already in /etc/skel/.config/ so useradd -m copies it
with correct ownership.
Replace antergos-next-memes with:
- antergos-next-desktop-settings — Qt5/Qt6 color configs, kdeglobals
- antergos-plasma-theme — plasma desktop theme + look-and-feel + splash
- antergos-sddm-theme — SDDM login theme with built-in background
Calamares branding is set before these in package order per critical
gotcha (branding overwrites Calamares defaults).
The wallpaper autostart script was failing on Plasma 6 + Wayland,
causing the live session to show the default Plasma background instead
of the Antergos NeXT branded wallpaper.
Changes:
- Rewrote set-antergos-wallpaper.sh with three fallback methods:
1. plasma-apply-wallpaperimage (primary)
2. kwriteconfig6 + qdbus6 config reload
3. qdbus6 evaluateScript API
- Added direct wallpaper config in live-overlay/home/antergos/ for
the live user (most reliable, runs before Plasma starts)
- Updated existing /etc/skel/ and main.xml defaults to use
antergos-wallpaper.png instead of adwaita-morning.webp
- Downloaded and included original Antergos wallpaper from the
project's wallpapers repo
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/
- netinstall.yaml: add 'Desktop' group with 8 DEs as subgroups
(Plasma default-selected, Xfce, Cinnamon, MATE, LXQt, i3,
Sway, Hyprland) — users pick their DE during online install
- profile.yaml: move KDE Plasma (plasma group + apps) from
rootfs/packages to livefs/packages so it's only installed
when user selects it in netinstall; rootfs now has only
DE-neutral packages (firefox, calamares, libs, etc.)
The multi-instance packagechooser (init + desktop) broke the installer —
users couldn't select anything in the package step. Revert settings.conf
back to single packagechooser (init selector, netinstall-add method).
Remove packagechooser_init.conf and packagechooser_desktop.conf.
Restore original packagechooser.conf from last working commit.
Add /etc/skel autostart that runs plasma-apply-wallpaperimage once on
first KDE login to set the Adwaita Morning wallpaper as default. Creates
a marker file so it never runs again. Works for both live ISO and
installed system.
This file was appearing in the built ISO with Artix logo, despite being
deleted from the live-overlay. It's being pulled in from upstream
packages (likely artix-live or base) during the build.
Use NoExtract to prevent pacman from extracting this file during
package installation.
- antergos-wallpapers now installed into rootfs so the KDE wallpaper picker
shows the Antergos wallpaper automatically (package installs to
/usr/share/wallpapers/antergos-wallpaper/ with metadata.desktop).
- Restored calamares-config-switcher.desktop in live-overlay with
NoDisplay=true to hide 'Install Artix' from the app menu. Previous deletion
exposed the package version, making it visible again.
- live-overlay SDDM config was overriding rootfs with Session=plasmax11.desktop
(X11). Changed to Session=plasma.desktop (Wayland) so the live env actually
boots into Wayland as intended.
- Removed plasma-wayland-session from profile.yaml packages — Artix bundles
Wayland session support into plasma-workspace itself; the separate package
does not exist in Artix repos.
- Deleted calamares-config-switcher.desktop from live-overlay (was previously
hidden with NoDisplay=true but user reports it still appeared). Now gone
entirely.
- Cleaned up leftover debug echo statements from earlier sudo -E
troubleshooting in buildiso.
rootfs.img ran out of space on default-size tmpfs (3.5G).
The KDE rootfs + squashfs output needs ~5-6G.
Also fix artifact upload and IA upload paths — ISO_POOL defaults
to $WORKSPACE_DIR/iso, not /var/lib/artools/buildiso/iso/.
Docker's --tmpfs defaults to noexec, which prevents all chroot'd
pacman post-transaction hooks from executing (mkinitcpio, sysusers,
etc.). The missing vmlinuz was a symptom — noexec meant the linux
package install hooks couldn't generate the initramfs.
- Stock buildiso from artools passes --overwrite='*' through basestrap
to pacman (basestrap stuffs all remaining args into pacman_args).
Our copy already has this flag; CI was ignoring it.
- Add jack2, noto-fonts-emoji to common.yaml to pre-resolve provider
prompts before they block the build.
Strip out archiso (airootfs, efiboot, syslinux, mkarchiso, prepare.sh,
Dockerfile, mirrorlist, profiledef.sh, packages.x86_64, reset.sh,
run_before_squashfs.sh) and adopt artools buildiso with full antergos
iso-profiles. Bitch, you NEED therapy.
Are you threatening me?
- 154 files changed, 2804 insertions, 7352 deletions
- buildiso wrapper + iso-profiles/antergos/ (profile.yaml, root-overlay,
live-overlay) + iso-profiles/common/common.yaml
- pacman.conf.d/iso-x86_64.conf with antergos-pkgs repo first
...Are you THREATENING me in SKECHERS?!
- Calamares offline + online module dirs, antergos-next branding
- componentName must match dir or Branding.cpp goes full T-square
- calamares before calamares-branding-antergos-next so --overwrite='*'
wins correctly. YOU'RE ON YOUR FOURTH WIFE RIGHT NOW-
- calamares-next.desktop in live-overlay (/usr/share + /etc/skel/Desktop)
- netinstall.yaml bundled. No remote deps. Kill that bitch (Cnchi).
What fuckin' college would care if you drew some bullshit picture
about your feelings?
- CI: artixlinux/artixlinux:base container, install artools, buildiso -p
antergos, IA upload with collection=open_source_software. Class is in
session. Maybe I should grow 40 feet! Then you'd REALLY like me!
- IA: mediatype=software keeps us out of Community Texts jail. The
question is; what's this stick gonna do?
It's honestly super humbling, when the trashiest repo you know;
probably coked out of its mind... says the most thoughtful thing
you've done in years.
- README.md rewritten with Artix/OpenRC/KDE badges, build instructions,
migration notes. Nice SpongeBob impression. ...Nice SpongeBob impression.
- AGENTS.md updated (identity ritual, gotchas, commands, repo layout)
- Restore LICENSE, NOTICES, APOLOGY.txt, CHANGELOG.md from git history.
Some files you just don't let die. No matter what, you NEVER use that
N-word! (...should've said nothing.)
- .gitignore: work/ iso/ out/. Go work at Starbucks with your little apron.
So laugh all you want. Forget about me all you want. But at least
I'll be gorgeous forever. Mother, I'm in the SquashFS now.
Signed-off-by: Celestia Ludenberg <ash8820@proton.me>
The calamares-next launcher uses zenity (or kdialog, or terminal)
to present the offline/online choice. zenity was missing from the
ISO, causing the launcher to hang silently when launched from the
welcome app (no terminal attached).