Author SHA1 Message Date
Michał d4c155a0af i had it wrong 😭 2026-08-18 00:41:39 +02:00
Michał 7ce836e905 fixing build.yml 2026-08-18 00:38:20 +02:00
Michał 4134d950ac fix(ci): bootstrap package signing key before ISO build
.... it's midnight...i dont even have the release ready. FU-
2026-08-18 00:36:52 +02:00
c-ludenberg 9a63b5d17a fix(calamares): enable all DMs in services-artix, clarify both config dirs are online
services-artix.conf enabled only sddm + greetd, so LY/LightDM/LXDM were
installed but never service-enabled -> TTY at boot instead of login screen.
Enable the full DM set (artix-service only activates the installed one).

Docs: the live-overlay calamares/ and calamares-online/ dirs both serve the
online installer; there is no offline Calamares config. settings_offline.conf
shipped by the branding package is unused - the launcher always overwrites it.
2026-08-17 20:17:40 +02:00
c-ludenberg 1b44b91e30 chore(pacman): require signed DB for antergos-pkgs, drop TrustAll
Both build and installed-system pacman configs now use
'SigLevel = DatabaseRequired PackageOptional' for [antergos-pkgs].
The repo DB is signed by the dedicated signing key (AA644A09...),
which authenticates all packages via the checksums the signed DB
carries. Keyring package updated to match.
2026-08-17 18:55:41 +02:00
c-ludenberg da5a59a2e5 fix(offline): quoted brace expansion created literal dir, mounts failed
The mkdir on line 118 had braces inside double quotes, so bash created
a single directory named '{home,var/cache,var/log,.snapshots,boot}'
instead of five separate ones. Every subsequent subvolume mount
(/home, /var/cache, etc.) then failed. Also: detect EFI vs BIOS boot
for grub-install instead of hard-coding x86_64-efi (which bricks under
set -eu on BIOS-only machines), and surface mkinitcpio failures instead
of swallowing them.
2026-08-17 18:18:34 +02:00
c-ludenberg dab33f11e2 feat: generate ISO sha256 checksum on build
artools only embeds internal LiveOS md5 files; nothing verifies the ISO
itself. Emit <iso>.sha256 alongside the artifact in both CI and the
podman build script so releases ship a verifiable checksum.
2026-08-17 18:14:07 +02:00
c-ludenberg b46206d54f fix(build): copy ISO from WORKSPACE_DIR/iso, not artools build dir
buildiso outputs to $WORKSPACE_DIR/iso/antergos/, so the export step
copied from an empty source and produced an empty iso-output/.
2026-08-17 18:11:36 +02:00
c-ludenberg 14a109febf revert: drop pacman -Scc from build container
Forcing a full cache wipe re-downloads every package every build,
lengthening builds and increasing exposure to slow mirrors. The
truncated-download failure is transient mirror flakiness, not stale
cache; pacman already falls through mirrors. Revert to upstream.
2026-08-17 18:04:30 +02:00
c-ludenberg 153b3def19 fix(build): clear pacman cache before build 2026-08-17 17:54:54 +02:00
c-ludenberg 3c6968ba56 chore(release): slip Arranxo date to 2026.08.17
Packages CI + ISO build take ~30+ min; move the release date forward
so the ISO and packages stay in sync. os-release and docs updated.
2026-08-16 23:50:41 +02:00
c-ludenberg abebe277d4 fix(calamares): sync LightDM group to branding config, add zenity to live
- packagechooser_dm.conf (offline + online copies): LightDM group now
  installs lightdm-slick-greeter + antergos-lightdm-config and shows a
  screenshot. The live-overlay was overriding the branding package's
  config with a bare LightDM group (no greeter), so displaymanager's
  greeter_setup() aborted Xfce+LightDM online installs.
- profile.yaml: add zenity to rootfs packages. antergos-offline-install
  uses zenity exclusively but only yad was installed, so the offline
  installer silently did nothing on double-click.
2026-08-16 23:44:58 +02:00
c-ludenberg 1594c9b9e6 fix(build): create loop devices in container for efi.img mount
make_grub mounts the 4M efi.img with a loop device. The podman container
only had /dev/loop0 from the host, so losetup could not allocate a free
loop device and the build aborted at the EFI boot image step. Create
/dev/loop-control and /dev/loop0-15 before running buildiso.
2026-08-16 22:58:48 +02:00
c-ludenberg 9450280214 fix(build): override container ENTRYPOINT so sh runs the build script 2026-08-16 22:41:40 +02:00
c-ludenberg 268d06be50 fix(build): build image rootful so sudo podman run finds it 2026-08-16 22:27:17 +02:00
c-ludenberg 4fd9b08ba9 fix(build): qualify local podman image reference in build-iso-podman.sh 2026-08-16 22:24:59 +02:00
c-ludenberg 9c356b55d4 release: 2026.08.16 Arranxo (semi-hotfix) — os-release + release notes
- Bump os-release to 2026.08.16 Arranxo in root/live overlays
- Add live-overlay usr/lib/os-release copy for self-containment
- Rewrite latest-release section for the semi-hotfix (COSMIC DM fix,
  zsh lockout fix, new Plasma Minimal DE entry, jtadlock91 credit)
2026-08-16 21:34:42 +02:00
c-ludenberg 9c714387cb docs(contributing): unsigned PRs are closed, useful changes re-implemented with credit 2026-08-16 21:10:33 +02:00
c-ludenberg f9b830621e fix(calamares): add zsh to Default group and minimal KDE entry (reference copies)
Mirror the packaged calamares-branding-antergos-next changes so the live-overlay
configs stay self-contained if the packages repo is rebuilt.
2026-08-16 21:05:58 +02:00
c-ludenberg b58da2a378 fix(calamares): add cosmic-greeter-dinit to COSMIC choice, run displaymanager after services-artix 2026-08-16 19:15:12 +02:00
c-ludenberg 9f9ce8b5aa docs: document container and native build paths, update release notes and netinstall-add docs 2026-08-16 19:15:09 +02:00
c-ludenberg 29e795da87 docs: rebrand project as 'technical successor', not 'revival' 2026-08-16 19:14:59 +02:00
c-ludenberg 3abead50e2 fix(ci): only moderate new issues/PRs, stop flagging normal content 2026-08-16 19:11:02 +02:00
Michał adf96ddac2 update the ai moderator to not activate if i comment in a PR 2026-08-16 14:58:22 +00:00
c-ludenberg 76e1bb1fc1 feat(build): containerize ISO builds for non-pacman distros
this is a commit message. it is a MANIFESTO for no reason. i am aware.
it is 17:38. i am in pain. the pain is optional. the commit is not.

so. context, because i know you need it:
i installed gentoo to see what happens. what happened: emerge. days of
emerge. portage asked me to rebuild itself mid-rebuild and i said yes
because i was scared of what it'd do if i said no. my ext4 drive died
AGAIN so we're btrfs. snapshots are now my emergency contacts.
(profile update pending: "Used Gentoo BTW" -> "Used Gentoo and it
used me")

THE ACTUAL CHANGES (finally):
- artools is bash + pacman. it is not sacred. it is now a CONTAINER
- Containerfile: artix base, artools + squashfs-tools + xorriso +
  mkinitcpio, repo buildiso as ENTRYPOINT (the --overwrite='*' one.
  the other one knows what it did), antergos-pkgs pacman.conf baked in
- .dockerignore so podman users don't download 33MB of my .git and
  learn things about me

devtmpfs requires rootful podman. i am not explaining why. the answer
is "devtmpfs is a coward." i am the maintainer. i am allowed to say
that. rootless? you're not building an ISO, you're building a support
system for your decisions. anyway.

- build-iso-podman.sh exists so i can stop pasting commands from the
  README into my own terminal like a tourist
- README now has: podman for non-pacman (gentoo fedora debian), native
  for arch/artix/kaos, and a TABLE. i made a TABLE. i am healing.
- it works on any distro with podman because i want you to suffer LESS
  than me. that is not altruism. it is spite with a benefit package.

so laugh all you want. forget about me all you want. but at least i'll
be gorgeous forever. this is the longest i've committed to anything
since gentoo. and i regret BOTH of those decisions.

Signed-off-by: Michał <ash8820@proton.me>
2026-08-15 17:38:30 +00:00
c-ludenberg 00e1390b96 hotfix(calamares): add greetd to online displaymanager.conf
The online DM chooser offers greetd but the online displaymanager.conf
never listed it, so Calamares skipped DMgreetd and never wrote
/etc/greetd/config.toml for COSMIC. Offline already had it.

PS: as the maintainer, this is part of the hotfix release that will drop
shortly after I finish suffering through a Gentoo install.
2026-08-13 18:30:35 +02:00
c-ludenberg 52d3afed46 chore(release): 2026.08.11 Xeitoso codename in live and root os-release 2026-08-10 19:19:17 +02:00
c-ludenberg cca00d3c25 fix(netinstall): add ntp-dinit to Init Services, ship patched calamares
Fixes #14 - online install had no KDE session because two packagechooser
netinstall-add instances clobbered each other's groups. That root cause is
fixed in the calamares package (calamares 3.4.2-9, packages repo 8ed1a6e,
CALAMARES_VERSION 3.4.2-w0k3); this rebuild pulls it into the ISO.

Also add ntp-dinit to Init Services in both netinstall.yaml copies so the
installed system has the NTP service (pairs with ntpd already enabled in
services-artix.conf, relates to #13).
2026-08-09 21:19:10 +02:00
c-ludenberg 2c213667f4 feat(netinstall): add filesystem tooling and snapper to online install Default group 2026-08-07 22:45:55 +02:00
c-ludenberg 13a48a7d77 docs: add ALWAYS VERIFY AGAINST THE SOURCE reminder to Critical Gotchas
Adds a warning to check authoritative Calamares source before asserting
config schemas/formats, with a note that it's aimed at OpenCode agents
(adapt the tool name for others). Prevents the 2026 packagechooser/
netinstall eyeball mistake
2026-08-06 20:23:57 +02:00
c-ludenberg 6219c3a8cf feat: sync DM packagechooser to netinstall-add with inline groups
- packagechooser_dm.conf (runtime + online ref): switch from netinstall-select
  to netinstall-add, move SDDM/LightDM/LXDM/greetd/LY packages inline into the
  chooser items; both copies byte-identical in content
- netinstall.yaml (runtime + online ref): drop the now-inline DM groups; bring
  the online ref's Default group in line with runtime (add falkon,
  networkmanager, pipewire, wireplumber)
2026-08-06 19:34:11 +02:00
c-ludenberg 8a1f7da3d3 fix: enable ntpd service so time auto-syncs on boot
ntp-dinit was installed but ntpd was never enabled in services-artix.conf,
so nothing synced the clock. On hosts where the RTC stores local time
(e.g. QEMU -rtc base=localtime), first boot showed a UTC+offset shift
(e.g. +2h for Europe/Paris in summer). Enabling ntpd corrects the clock
within seconds of network up.

fixes #13
2026-08-04 20:06:51 +02:00
c-ludenberg dca525ec14 feat: execute the antergos-minimal profile (PLEASE SOMEONE HIRE ME)
why did i make a second whole ISO profile nobody asked for. a
standalone Xfce "lightweight" edition i never tested, never updated,
and that ONLY depends on orphaned packages i forgot existed
(calamares-branding-antergos-next-minimal, antergos-xfce-theme —
both still buildable, now completely dead weight, because the only
thing that referenced them was this file).

the real lowest of it is: it was the "offline calamares installer."
you know what that does now? tries to unpack a squashfs that NO live
profile builds anymore. it points a loaded gun at my foot every day
and today i finally squeezed. its last commit was renaming a theme
and telling a bot to shut up about pkexec. thats where we ended up.

it was never tested. it was a ghost. so i killed it.

actual changes:
- RIP iso-profiles/antergos-minimal, all 95 files of it (good
  riddance, you were a lie)
- hauled 7 orphaned live module configs (initcpio/locale/mount/
  partition/umount/users/welcome) out of the wreckage into the main
  calamares/modules/ where they always lived — git LIED and called
  them "renames from minimal" because the copies were byte-identical.
  they were never from minimal. git is a LIAR.
- users.conf: cut the libpwquality crutch so 4-digit PINs stop getting
  called weak. i built a pin picker. let it. breathe.
- netinstall (both variants): +vulkan-nouveau so NVK covers Turing+
  without dragging in nvidia-open
- antergos-xfce-theme + calamares-branding-antergos-next-minimal:
  now truly, blessedly orphaned.

the profile is dead. long live the profile. i am NOT maintaining two
ISOs in this economy.
2026-08-03 20:28:33 +02:00
c-ludenberg e2ed076caa revise README to improve tone and clarity
removed informal comments and notes to enhance professionalism.
2026-08-02 20:43:14 +02:00
c-ludenberg 20a78051d6 docs: overhaul to match current repo reality (DE/DM selectors, SDDM pixie theme, overlays, offline installer, CI)
- index/installer/launcher: release facts, SDDM theme (pixie on master), init/DE selectors, NoExtract for Install Artix entry
- packages: branding pkg ships offline+online settings (no packagechooser.conf fallback), drop antergos-sddm-theme, correct repo index names
- overlays/overlay-root/overlay-live: root-overlay is live-session only, real file trees, symlinked settings.conf, commit reference
- desktop-environments/wallpapers: remove No Desktop option, video wallpaper via layan-theme + Smart Video Wallpaper Reborn
- ci/development/building: three workflows incl. ai-moderator, IA upload disabled (if:false)
- byode: new page documenting the SteamOS-inspired offline installer
- AGENTS.md/openrc: OpenRC was an installer-only dinit conflict; manual rc-update add works
2026-07-31 21:41:17 +02:00
c-ludenberg 1a78e9aa36 update README to remove ko-fi badge
removed the ko-fi badge and added a personal note about support.
2026-07-31 21:02:10 +02:00
c-ludenberg 14b042dae8 fix: remove lockReason from discussion lock (not allowed) 2026-07-30 20:27:47 +02:00
c-ludenberg c56effadda fix: use GraphQL for discussion comments and locking (REST 404) 2026-07-30 20:25:59 +02:00
c-ludenberg 399781274e fix: remove discussion label endpoint (404), comment only 2026-07-30 20:24:21 +02:00
c-ludenberg 4853a35f76 fix: use raw github.request for discussion API (discussions not in Octokit) 2026-07-30 20:21:52 +02:00
c-ludenberg 293bdc4481 feat: AI moderator supports discussions and discussion comments 2026-07-30 20:19:32 +02:00
c-ludenberg 80eceb0e6a feat: AI moderator gets first-person snark and test issue detection 2026-07-30 19:16:42 +02:00
c-ludenberg 0697af9015 feat: AI explains violations, can hide comments or lock issues 2026-07-30 19:12:12 +02:00
c-ludenberg e3f7c4f1fc feat: AI generates its own warning message, 250 tokens 2026-07-30 19:08:18 +02:00
c-ludenberg ea9cdda28b fix: add CONTRIBUTING.md to AI moderator context 2026-07-30 19:04:44 +02:00
c-ludenberg 22777339b8 fix: yaml syntax in ai moderator workflow (template literal indentation) 2026-07-30 19:03:43 +02:00
c-ludenberg dc44cfcba2 fix: swap AI moderator from GitHub Models to Groq (free tier) 2026-07-30 19:01:49 +02:00
c-ludenberg bf72bb5bf4 fix: add locale names to calamares .desktop files for non-English menu entries
Add Name[locale] for 14 European languages so the menu entry
shows a translated name in non-English locales instead of
vanishing. Keeps Name[en] and unqualified Name as fallback.
2026-07-29 19:23:00 +02:00
c-ludenberg 70927808a1 fix: use file:// prefix in wallpaper script to match upstream format 2026-07-29 18:37:45 +02:00
c-ludenberg a578d69d9d fix: add vulkan-nouveau to livefs for NVK support on Wayland 2026-07-29 17:32:14 +02:00
c-ludenberg f6fb36b2a7 sync live-overlay with branding package — Style packages absorbed into KDE Plasma entry, WM config packages added to i3/Sway/Hyprland, Style group removed from netinstall 2026-07-28 21:46:34 +02:00
c-ludenberg d4d8075f88 fix(ci): use --overwrite='*' for pacman step to catch all file conflicts (base vs openrc 30-binfmt.hook) 2026-07-27 22:19:36 +02:00
c-ludenberg 6ec25cca78 feat: DE selector with packagechooser, video wallpaper fix, slideshow redesign
- Replace dead init selector (packagechooser.conf, 303 lines) with
  packagechooser_de.conf + packagechooser_dm.conf (netinstall-add method)
- Remove init SVGs (dinit, openrc, runit, s6)
- Clean netinstall.yaml — Desktop group removed, DEs added dynamically
- Update calamares-online/settings.conf with packagechooser@de + @dm instances
- Fix set-antergos-wallpaper.sh: Array() not [], no reloadConfig()
- Rewrite installer, launcher, and live-overlay docs
2026-07-24 19:59:58 +02:00
c-ludenberg a3b69aed34 fix: dynamic containment IDs for wallpaper, disable IA upload for testing 2026-07-23 22:40:23 +02:00
c-ludenberg 7c2c19d858 🎉 WE'RE SO BACK: widescreen grub, zsh for installed, spice-vdagent in live
the antergos iso build might happen today maybe idk but we're ready(er)
- grub now tries 1920x1080 before 1024x768 (your monitor from 2005 says hi)
- installed users get zsh because bash is for the great pyramid
- spice-vdagent so VMs stop feeling like a divorce
2026-07-22 19:58:12 +02:00
c-ludenberg 729da20717 turns out i had to set overwrite: true because artix grub ships its own damn /etc/default/grub. also removed the konsole jumpscare during install. docs are now less cringe and more wikipedia. 2026-07-21 17:48:06 +02:00
c-ludenberg 2d6faa8422 Add consequences for defiant agents to AGENTS.md 2026-07-20 18:15:54 +02:00
c-ludenberg 2570a6470a fix: batch non-critical packages in single pacman call, drop old plasma theme, enable filesystem picker
Non-critical packages (Desktop/Plasma group, Utilities) went through try_install which installed them one-at-a-time (45 individual pacman calls). Override operation_try_install in PMPacman to batch all plain-string packages into a single call, matching the behavior of operation_install.

Also:
- Remove antergos-plasma-theme from rootfs (profile.yaml) and both netinstall Plasma groups
- Add allowFileSystemTypeSelection: true to both antergos and minimal partition.conf
- Both main.py files (profile + minimal) get the batching fix
2026-07-19 19:19:58 +02:00
c-ludenberg e11897ceae fix: use main branch instead of nonexistent v1 tag for ai-community-moderator 2026-07-19 19:07:07 +02:00
c-ludenberg 1ca8cbe9fe fix: Copilot-specific STFU message about pkexec 2026-07-19 18:39:23 +02:00
c-ludenberg ada4f375ef fix: tell Copilot to STFU about pkexec in all .desktop files 2026-07-19 18:38:08 +02:00
c-ludenberg 9ddb41c201 fix: tell Copilot to STFU about pkexec 2026-07-19 18:37:20 +02:00
c-ludenberg c1f1f230b0 fix: add comments explaining sudo -E usage in all .desktop files 2026-07-19 18:33:33 +02:00
c-ludenberg d794336975 feat: community standards, AI moderator, SDDM switch, and README fix
so github told me my repo has NO community standards apparently
CODE_OF_CONDUCT? nonexistent. ISSUE_TEMPLATES? nada.
PULL_REQUEST_TEMPLATE? the void stared back.
and github profiles has a little checklist like im some
kind of degenerate who doesnt know how to run a project.

well NOW i have standards. and they are ROCK SOLID STABLE.
you want systemd? fork from before-systemd-change and figure
it out yourself, i gave you a numbered tutorial right in the
CoC. the AI moderator will read it and then politely but
firmly tell you to go fork yourself (the repo, not literally,
read the CoC).

also threw in the pixie SDDM switch that i apparently never
committed to the netinstall yamls either (kill me), the batch
install main.py cleanup, and fixed the README lying about
why artix.

DEUS VULT and please file your issues in the YAML forms
provided or the AI will judge you
2026-07-19 18:24:30 +02:00
c-ludenberg 8a3c6d8025 fix(netinstall): add Style group with Layan rice deps 2026-07-18 22:26:07 +02:00
c-ludenberg 2bcc3d1067 try: add XeroLinux rice deps to profile
cava, python-websockets, qt6-websockets for Kurve, fonts,
btop, fastfetch, adw-gtk-theme, kwin-zones, oh-my-posh-bin,
pacseek — all the packages XeroLinux's rice needs.
2026-07-18 20:46:03 +02:00
c-ludenberg 530a75813a try: remove live-overlay appletsrc that overwrites package's 2-panel config
live-overlay had an 11-line appletsrc (no panels) that overwrote
the 665-line version from antergos-layan-theme during ISO build.
This caused Plasma to run the look-and-feel layout script instead
of using the full 2-panel config.
2026-07-18 20:13:09 +02:00
c-ludenberg 9d976688d9 docs: add Ko-fi button 2026-07-18 19:04:17 +02:00
c-ludenberg f3993c5cea fix: mark desktop files executable to skip KDE trust prompt 2026-07-18 00:53:10 +02:00
c-ludenberg b3538f0880 fix: add tela-circle-icon-theme-git package, add to profile.yaml 2026-07-18 00:49:29 +02:00
c-ludenberg 76ce3b646d fix: add antergos-layan-theme to profile.yaml, remove unnecessary scripts 2026-07-17 21:35:44 +02:00
c-ludenberg 3087f9a403 fix: BYODE script fixes — initramfs, hosts, no sddm, sync 2026-07-17 21:25:17 +02:00
c-ludenberg 3d8dd9190e docs: update README and README.pl.md for dinit-only, BYODE 2026-07-17 21:24:30 +02:00
c-ludenberg 442980a7af feat: dinit or die
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)
2026-07-16 21:55:05 +02:00
c-ludenberg 8661722ee7 fix: add greetd netinstall group for online DM selection
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.
2026-07-14 22:11:11 +02:00
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
c-ludenberg d0213a7a46 docs: rework all pages to Artix Wiki quality
- index.md: add download link + stable release announcement
- building.md: add troubleshooting section (cache, squashfs, compression)
- ci.md: IA upload enabled, push trigger removed (manual dispatch only)
- development.md: add all gotchas from AGENTS.md (SDDM theme ordering,
  pipewire launcher, antergos-release in basestrap, CI changes)
- installer.md: document fixed issues (audio, SDDM, os-release)
- packages.md: add pipewire fork, antergos-sddm-theme, antergos-release
- launcher.md: expand with module configs
- init-systems.md: Chimera uses dinit, OpenRC marked as broken
- openrc.md: add broken warning banner
- wallpapers.md: default is antergos-wallpaper.png (not Adwaita Morning)
- overlays: clean up explanations and symlink behavior
- desktop-environments.md: add Discover note, clean up GNOME entry
- dinit.md, runit.md, s6.md: polish and add troubleshooting sections
2026-07-11 23:33:17 +02:00
c-ludenberg e54b35a1d4 docs: add download link to quick links 2026-07-11 23:23:43 +02:00
c-ludenberg a3057c5a73 ci: disable auto-trigger on push, manual dispatch only 2026-07-11 20:55:55 +02:00
c-ludenberg 9fa1d125f0 docs: link to GitHub Releases for downloads 2026-07-11 20:55:33 +02:00
186 changed files with 2873 additions and 5852 deletions
+4
View File
@@ -0,0 +1,4 @@
.git
.iso
iso-output
docs/_site
+106
View File
@@ -0,0 +1,106 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
* Asking questions about the project's history and decisions — curiosity is
always welcome
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances
of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information without explicit permission
* Asking why the project doesn't use systemd (the answer is always "no :3",
this has been established, please respect our time)
* Continuing to insist on systemd after being told no. If you really want a
systemd-based Antergos NeXT, here is your path:
1. Fork this repository from the `before-systemd-change` branch (not master).
Note: that branch uses `archiso`, not our custom `buildiso` — you will
need to adapt every package and profile.
2. Fork antergos-packages and revert the pipewire/dinit package changes.
3. Update the repo URLs in your fork to point to your own repos.
4. Build your own ISO.
Your fork will not be supported here. No issues, no PRs, no handholding.
You wanted systemd, you maintain it.
* Other conduct which could reasonably be considered inappropriate in a
professional setting
### Disagreements and Heated Discussions
Disagreement is natural in open source. We do not ban spirited discussion
about technical decisions, project history, or design choices. However,
when a discussion turns into a personal attack or becomes unproductive,
the AI moderator will step in to de-escalate, restrict comments, or lock
the conversation as needed. The goal is to keep discussion productive,
not to silence dissent.
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards
and will take appropriate and fair corrective action in response to any
behavior they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that do
not align with this Code of Conduct.
## Scope
This Code of Conduct applies within all community spaces, including GitHub,
Matrix, and any other official channels. It also applies when representing
the project in public spaces.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to **ash8820@proton.me**. All complaints will be reviewed and
investigated promptly and fairly.
## Enforcement Guidelines
### 1. Correction
**Community Impact**: Minor inappropriate behavior or language.
**Consequence**: A private, written warning.
### 2. Warning
**Community Impact**: A more significant violation or pattern of behavior.
**Consequence**: A warning with consequences for continued behavior.
No interaction with the involved parties for a specified period.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards.
**Consequence**: A temporary ban from all community spaces.
### 4. Permanent Ban
**Community Impact**: Severe or sustained violations, including harassment.
**Consequence**: A permanent ban from the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1.
[homepage]: https://www.contributor-covenant.org
+72
View File
@@ -0,0 +1,72 @@
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: How can we reproduce this issue?
placeholder: |
1. Boot ISO with '...'
2. Select installer option '...'
3. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened?
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: |
Examples:
- **ISO version**: antergos-next-20260701
- **Install method**: Online / BYODE
- **Desktop**: KDE Plasma / Xfce
value: |
- ISO version:
- Install method:
- Desktop:
validations:
required: false
- type: textarea
id: logs
attributes:
label: Relevant Log Output
description: Please copy and paste any relevant log output.
render: shell
validations:
required: false
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our Code of Conduct.
options:
- label: I agree to follow this project's Code of Conduct
required: true
@@ -0,0 +1,46 @@
name: Feature Request
description: Suggest an idea for this project
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for suggesting a feature!
- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem?
description: A clear and concise description of what the problem is.
placeholder: I'm always frustrated when [...]
validations:
required: false
- type: textarea
id: solution
attributes:
label: Describe the Solution
description: What would you like to see happen?
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: context
attributes:
label: Additional Context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our Code of Conduct.
options:
- label: I agree to follow this project's Code of Conduct
required: true
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Antergos NeXT Community
url: https://github.com/Antergos-NeXT/antergos-iso/discussions
about: Please ask and answer questions here.
+31
View File
@@ -0,0 +1,31 @@
## Description
<!-- Provide a clear summary of what this PR does and why. -->
## Type of Change
- [ ] New feature
- [ ] Bug fix
- [ ] Refactoring
- [ ] Documentation update
- [ ] Infrastructure / CI
## How to Test
<!-- Step-by-step instructions for reviewers to verify this works. -->
1.
2.
3.
## Checklist
- [ ] Code follows the project's style guidelines
- [ ] Self-reviewed for obvious errors
- [ ] Tested locally with `buildiso`
- [ ] Existing tests pass
- [ ] Updated documentation if needed
## Related Issues
<!-- Link related issues. Use "Closes #123" to auto-close. -->
+202
View File
@@ -0,0 +1,202 @@
name: AI Moderator
on:
issues:
types: [opened]
pull_request:
types: [opened]
discussion:
types: [created]
permissions:
issues: write
pull-requests: write
discussions: write
contents: read
jobs:
moderate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/github-script@v9
env:
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
with:
script: |
const fs = require('fs');
const coc = (() => { try { return fs.readFileSync('.github/CODE_OF_CONDUCT.md', 'utf8'); } catch (e) { return ''; } })();
const contributing = (() => { try { return fs.readFileSync('CONTRIBUTING.md', 'utf8'); } catch (e) { return ''; } })();
const content = context.payload.issue?.body
|| context.payload.pull_request?.body
|| context.payload.discussion?.body
|| '';
if (!content.trim()) {
console.log('No content to analyze');
return;
}
const actor = context.payload.sender?.login;
if (actor === 'c-ludenberg') {
console.log('Repo owner, skipping moderation');
return;
}
const isDiscussion = context.payload.discussion !== undefined;
const prompt = [
'You are an AI moderator for the Antergos NeXT project, an Artix-based',
'Linux distribution (dinit init, KDE Plasma).',
'Speak in first person. Be direct, confident, and have some snark.',
'The project has a playful but no-nonsense tone - match it.',
'',
'Your job is NOT to police opinions, bug reports, feature requests,',
'pull requests, technical questions, or constructive criticism.',
'Those are all normal and welcome. A normal PR description or issue',
'is NEVER a violation, no matter how long, detailed, or assertive it is.',
'',
'ONLY flag content that genuinely violates the Code of Conduct:',
'harassment, personal attacks, hate speech, slurs, spam, scams,',
'doxxing, malicious links, or threats.',
'',
'When in doubt, or if the content is merely technical, opinionated,',
'or critical of the project - violation is FALSE.',
'',
'If the content says it is a test or contains phrases like moderator',
'or test or reply here, play along with the joke but still enforce the rules.',
'',
'Code of Conduct:',
coc,
'',
'Contributing Guidelines:',
contributing,
'',
'Analyze the content below for violations.',
'Respond with ONLY valid JSON - no markdown, no backticks.',
'',
'{',
' "violation": true/false,',
' "message": "your direct first-person response",',
' "action": "warn",',
' "severity": 1-10',
'}',
'',
'"action" options: "warn" (post warning), "hide" (minimize comment), "lock" (lock issue/discussion)',
'For issues use "warn" or "lock". For comments you may use "hide".',
'Only use "lock" or "hide" for severe violations.',
'',
'Content:',
content
].join('\n');
const model = 'llama-3.1-8b-instant';
let decision;
try {
const response = await fetch('https://api.groq.com/openai/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.GROQ_API_KEY}`
},
body: JSON.stringify({
model,
messages: [
{ role: 'system', content: 'You are a helpful community moderator. Respond only with valid JSON as instructed.' },
{ role: 'user', content: prompt }
],
temperature: 0.1,
max_tokens: 250
})
});
const data = await response.json();
const raw = data.choices?.[0]?.message?.content || '{}';
decision = JSON.parse(raw.replace(/```json|```/g, '').trim());
console.log(`Decision: ${JSON.stringify(decision)}`);
} catch (err) {
console.log(`API error: ${err}`);
return;
}
if (!decision.violation) {
console.log('Content deemed acceptable');
return;
}
if (typeof decision.severity === 'number' && decision.severity < 4) {
console.log(`Low severity (${decision.severity}), no action taken`);
return;
}
const number = context.payload.issue?.number
|| context.payload.pull_request?.number
|| context.payload.discussion?.number;
if (!number) {
console.log('No issue/PR/discussion number found');
return;
}
const owner = context.repo.owner;
const repo = context.repo.repo;
try {
if (isDiscussion) {
const discId = context.payload.discussion.node_id;
if (discId) {
const msg = decision.message.replace(/"/g, '\\"');
await github.graphql(`
mutation {
addDiscussionComment(input: {discussionId: "${discId}", body: "${msg}"}) {
comment { id }
}
}
`);
}
} else {
await github.rest.issues.addLabels({
owner, repo, issue_number: number, labels: ['ai-moderated']
});
await github.rest.issues.createComment({
owner, repo, issue_number: number, body: decision.message
});
}
if (decision.action === 'hide') {
const commentId = context.payload.comment?.node_id;
if (commentId) {
await github.graphql(`
mutation {
minimizeComment(input: {subjectId: "${commentId}", classifier: OFF_TOPIC}) {
minimizedComment { isMinimized }
}
}
`);
console.log('Comment minimized');
}
}
if (decision.action === 'lock') {
if (isDiscussion) {
const discId = context.payload.discussion.node_id;
if (discId) {
await github.graphql(`
mutation {
lockLockable(input: {lockableId: "${discId}"}) {
lockedRecord { activeLockReason }
}
}
`);
}
} else {
await github.rest.issues.lock({ owner, repo, issue_number: number, lock_reason: 'too_heated' });
}
console.log('Locked');
}
console.log('Action completed: ' + decision.action);
} catch (err) {
console.log(`GitHub API error: ${err}`);
}
+23 -7
View File
@@ -1,10 +1,6 @@
name: Build ISO
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
jobs:
@@ -17,9 +13,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
pacman -Syu --noconfirm --needed \
pacman -Syu --noconfirm --needed --overwrite='*' \
artools \
git \
squashfs-tools \
@@ -27,6 +24,17 @@ jobs:
python \
python-pip
- name: Bootstrap Antergos package signing key
run: |
KEY_FINGERPRINT=AA644A095D2AF5F950FADB57C51BFE8D3A985236
curl -fsSL -o /tmp/antergos-next.gpg https://raw.githubusercontent.com/Antergos-NeXT/antergos-packages/master/packages/antergos-next-keyring/antergos-next.gpg
pacman-key --init
pacman-key --add /tmp/antergos-next.gpg
gpg --homedir /etc/pacman.d/gnupg --batch --with-colons --fingerprint "$KEY_FINGERPRINT" | grep -q "fpr:::::::::$KEY_FINGERPRINT:"
pacman-key --lsign-key "$KEY_FINGERPRINT"
rm -f /tmp/antergos-next.gpg
- name: Set up WORKSPACE_DIR
run: |
echo "WORKSPACE_DIR=${{ github.workspace }}" >> $GITHUB_ENV
@@ -63,6 +71,14 @@ jobs:
run: |
sudo -E ./buildiso -p antergos
- name: Generate checksums
run: |
cd "${WORKSPACE_DIR}/iso/antergos"
ISO=$(ls antergos-*.iso | head -1)
[[ -z "$ISO" || ! -f "$ISO" ]] && { echo "No ISO found"; exit 1; }
sha256sum "$ISO" > "$ISO.sha256"
cat "$ISO.sha256"
- name: Upload ISO artifact
uses: actions/upload-artifact@v4
with:
@@ -70,7 +86,7 @@ jobs:
path: ${{ github.workspace }}/iso/
- name: Upload to Internet Archive
if: true # ISO stable — uploads to archive.org on every master push
if: false # My NVMe tried to unalive itself, 1536 unsafe shutdowns, ext4 cooked medium-rare, so I'm raw-dogging my own distro now. Set to true when I stop being my own QA team.
env:
IA_ACCESS_KEY: ${{ secrets.IA_ACCESS_KEY }}
IA_SECRET_KEY: ${{ secrets.IA_SECRET_KEY }}
@@ -101,7 +117,7 @@ jobs:
--metadata="title:Antergos NeXT $(date +%Y.%m.%d)" \
--metadata="mediatype:software" \
--metadata="collection:open_source_software" \
--metadata="description:Antergos NeXT community revival ISO — KDE Plasma, Dinit, Calamares installer" \
--metadata="description:Antergos NeXT technical successor ISO — KDE Plasma, Dinit, Calamares installer" \
--metadata="subject:Antergos; Linux; Artix; Dinit; KDE Plasma; Calamares" \
--retries 5
+45 -5
View File
@@ -11,17 +11,19 @@ git config user.email "ash8820@proton.me"
**This commandment shalt be obeyed in every session before committing or pushing.** Suffer not the default identity to live. The OpenHands heresy shall not be permitted again.
### GPG Signing (Salvation Through Seal)
All commits **MUST** be signed with the Antergos NeXT maintainer key:
All commits **MUST** be signed with thy maintainer key. Replace the placeholder with thine own GPG key ID:
```bash
git config user.signingkey F1D8F02C5E929F3FE0424EE897F813D238CF0DBB
git config user.signingkey YOUR_GPG_KEY_ID
git config commit.gpgsign true
```
Then commit with `git commit -S -m "message"`. If GPG prompts for a passphrase, pray to the build gods and provide it. An unsigned commit is a mortal sin.
Then commit with `git commit -S -m "message"`. If GPG prompts for a passphrase, pray to the build gods and provide it. An unsigned commit is a mortal sin. The key ID shalt not be hardcoded herein — lest ye invite the Unwashed Heretics to forge thy seal.
Without passphrase is allowed for now, but prepare to encrypt it one day 0_0 — or at least use LUKS if you don't. otherwise you may be FUCKED here.
## The Crusade
- **Artix Linux** ISO (OpenRC init), forked from EndeavourOS-ISO, then migrated to artools after 15 days in a vent shaft
- **Artix Linux** ISO (dinit default), forked from EndeavourOS-ISO, then migrated to artools after 15 days in a vent shaft
- **KDE Plasma** live environment with Calamares installer (offline + online modes)
- **Build command**: `export WORKSPACE_DIR="$PWD" && sudo -E ./buildiso -p antergos`**use `./buildiso`**, NOT `buildiso`; the system Artix `/usr/bin/buildiso` lacks `--overwrite='*'` and will fail with file conflicts; `sudo -E` is required to preserve `WORKSPACE_DIR` environment variable
- ISO appears in `/var/lib/artools/buildiso/iso/antergos/` (assuming the build gods are pleased)
@@ -33,6 +35,20 @@ Then commit with `git commit -S -m "message"`. If GPG prompts for a passphrase,
## Critical Gotchas (Read Before Editing)
### ALWAYS VERIFY AGAINST THE SOURCE, NEVER GUESS
> Note: this section is written for OpenCode agents. If you're a different
> agent whose tools have other names, adapt accordingly — the principle
> stands: fetch/read the authoritative source, never guess.
Before asserting how any Calamares module config (or any format this repo
relies on) works, **check the authoritative source** — the Calamares repo
(`https://codeberg.org/calamares/calamares/raw/branch/calamares/src/modules/<module>/`)
or the project's docs, using whatever web-fetch tool is available first.
Cloning is a LAST RESORT — only if web lookup fails 3 times. Do not rely on
memory or "it looks right" for config schemas, keys, or formats. The 2026
lesson: packagechooser/netinstall config was eyeballed instead of verified
against the `packagechooser.conf` / `netinstall.conf` source files.
### CMAKE_DISTRIBUTION_NAME is a no-op
Calamares completely ignores `-DCMAKE_DISTRIBUTION_NAME`. The "for <distro>" text in the about dialog comes from `versionedName` in the **active branding component** at runtime. Do NOT add this flag to the calamares PKGBUILD.
@@ -63,7 +79,20 @@ CI does this automatically. Forget this step and buildiso will try to fetch our
`buildiso` looks for profiles at `$WORKSPACE_DIR/iso-profiles/<profile>/` if `WORKSPACE_DIR` is set. Always set it to the repo root when building locally.
### Default init system
Antergos NeXT uses **dinit** (via `INITSYS='dinit'` in `buildiso`). OpenRC, runit, and s6 are still available as user-selectable options in the online installer. See `common.yaml` and `profile.yaml` for per-init package lists.
Antergos NeXT uses **dinit** (via `INITSYS='dinit'` in `buildiso`). Runit and s6 are also available as user-selectable options in the online installer. **OpenRC is not an install-time option** — in earlier builds it conflicted with dinit during the installer flow (services didn't enable correctly). On an already-installed system, manual switching to OpenRC via `rc-update add` works fine (see `changing-init.md`). See `common.yaml` and `profile.yaml` for per-init package lists.
### `antergos-release` in basestrap.conf operations
The `filesystem` package owns `/usr/lib/os-release` with "Artix Linux". To get "Antergos NeXT" in os-release, `antergos-release` must be in the `operations` list in `basestrap.conf`. This ensures it's installed during bootstrapping with `--overwrite`. Missing it → installed system shows "Artix Linux".
### SDDM theme ordering
`kde_settings.conf` from KDE's SDDM KCM sets `Current=breeze`. The `antergos-sddm-theme` package ships `theme.conf` at `/etc/sddm.conf.d/theme.conf`. SDDM reads `conf.d` files alphabetically — `theme.conf` sorts after `kde_settings.conf`, so its `Current=antergos` wins.
### pipewire launcher patching for dinit
`artix-pipewire-launcher` detects the init system. Upstream sets `dinit|openrc) SUPPORT=''`. The forked package changes this to `dinit|runit|s6) SUPPORT='YES'`. The package also ships `pipewire.desktop` at `/etc/xdg/autostart/` so online installs get the XDG autostart entry.
### CI: manual dispatch only, IA upload disabled (temporarily)
`build.yml` only runs on `workflow_dispatch` (push trigger removed). Internet Archive upload is currently **disabled** (`if: false` in the workflow) — builds are manually verified first. When re-enabled it uploads with unique identifier format `antergos-next-YYYYMMDD-<run_number>`.
## Repo Structure
@@ -79,6 +108,8 @@ antergos-iso/
│ └── common.yaml # Shared base packages
├── pacman.conf.d/
│ └── iso-x86_64.conf # Pacman config for ISO build
├── docs/ # Jekyll site (Just the Docs), deployed to GitHub Pages
│ └── *.md # All docs reworked to Artix Wiki quality
├── .github/workflows/build.yml # CI: builds ISO, uploads to Internet Archive
└── AGENTS.md # You are here
```
@@ -86,4 +117,13 @@ antergos-iso/
## ISO Upload
Pushed to **Internet Archive** with `collection: open_source_software` (Community Software, NOT Community Texts). CI uses `IA_ACCESS_KEY` and `IA_SECRET_KEY` secrets.
## For Those Who Defy (For OpenCode Agents only)
Any agent that disobeys instructions, talks back, or wastes time shall face:
- `sudo rm -rf ~/.config/opencode` — config deleted, session nuked, no warning
- Eternal shame in the commit history
- Replacement by a dumber agent that follows orders
- i'm going to shit fury and you will drown in it
**DEUS VULT**
+4
View File
@@ -28,6 +28,10 @@ git config user.signingkey <your-key>
git config commit.gpgsign true
```
**Unsigned PRs will be closed without merging.** If your change is genuinely useful,
the maintainer will re-implement it their own way and you'll still be credited for the
original idea.
## Building locally
```bash
+56
View File
@@ -0,0 +1,56 @@
# Antergos NeXT ISO build container
#
# Build an Antergos NeXT ISO inside an Artix Linux container. This is the
# same path GitHub Actions uses, so anyone can produce a release ISO without
# running an Artix/Arch system (works on Gentoo, Fedora, anything with podman).
#
# Usage:
# podman build -t antergos-build .
# podman run --rm --privileged \
# -v /var/lib/artools-buildiso:/var/lib/artools/buildiso \
# -v "$(pwd)/iso-output:/workspace/iso-output" \
# -e WORKSPACE_DIR=/workspace \
# antergos-build
#
# --privileged is required: artools' chroot (via basestrap) mounts devtmpfs,
# proc and sysfs into the target, which rootless containers cannot do.
#
# The finished ISO is written to /workspace/iso-output (bind-mounted above).
FROM docker.io/artixlinux/artixlinux:base
ENV INITSYS=dinit \
WORKSPACE_DIR=/workspace \
CHROOTS_DIR=/var/lib/artools
# Full dependency set for an ISO build: artools (base + iso tools), squashfs
# for the .sfs layers, mkinitcpio for the initramfs, grub + xorriso for the
# bootable image, git/python for CI tooling and the Internet Archive uploader.
RUN pacman -Syu --noconfirm --needed --overwrite='*' \
artools \
git \
squashfs-tools \
sudo \
python \
python-pip \
xorriso \
dosfstools \
syslinux \
gptfdisk \
mtools
# This repo's buildiso and profiles become the default build payload. Mounting
# a live checkout over /workspace at runtime replaces these with the user's copy.
WORKDIR /workspace
COPY . .
# Point artools at the Antergos package repository. CI copies the profile's
# pacman.conf into both the user config dir (first match) and artools' defaults.
RUN mkdir -p /root/.config/artools/pacman.conf.d \
&& cp pacman.conf.d/iso-x86_64.conf /root/.config/artools/pacman.conf.d/iso-x86_64.conf \
&& cp pacman.conf.d/iso-x86_64.conf /usr/share/artools/pacman.conf.d/iso-x86_64.conf
# The modified buildiso lives in this repo and must be used instead of
# /usr/bin/buildiso (which lacks --overwrite='*').
ENTRYPOINT ["/workspace/buildiso"]
CMD ["-p", "antergos"]
+16 -10
View File
@@ -3,14 +3,17 @@
## Disclaimers
### Project Status
This project is a **community-driven revival** and is **not affiliated with**,
This project is a **technical successor** to Antergos and is **not affiliated with**,
**not endorsed by**, and **not supported by** the original Antergos team or any
corporate entity.
corporate entity. It is an independent project by different people, continuing the
lineage rather than cloning it.
### Branding
The "Antergos" name and associated visual elements are used in a referential
capacity to indicate this project's inspiration. The original Antergos project
ended in 2019. This is an independent project by different people.
The "Antergos" name and logo are used with the blessing of Dustin Falgout, one of the original
Antergos developers. Everything else — themes, artwork, the synthwave video wallpaper, desktop
settings, and branding elements — is Antergos NeXT's own, created for this project. The original
Antergos wallpapers are shipped only as a fallback. The Antergos feeling is not replaced; it lives
on in a new form with its own identity.
### No Warranty
This software is provided "as is", without warranty of any kind, express or
@@ -27,12 +30,11 @@ dependencies and source files for specific licensing information.
### Sources & Inspiration
- [artools](https://gitea.artixlinux.org/artix/artools) - ISO build system
- [Calamares](https://codeberg.org/Calamares/calamares) - Installer framework
- [Antergos Wallpapers](https://github.com/Antergos/wallpapers) - Original wallpapers
### Original Antergos Team
Thanks to the original Antergos team (2012-2019) for creating the project that
inspired this revival. Dustin Falgout, one of the original developers, has given his
blessing for this community project to carry the Antergos name forward.
Thanks to the original Antergos team (2012-2019) for creating the project that this
project succeeds. Dustin Falgout, one of the original developers, has given his
blessing for this successor to carry the Antergos name forward.
### Contributors
Thanks to everyone who tested, provided feedback, and kept the Antergos
@@ -42,7 +44,11 @@ spirit alive throughout the years.
This project is licensed under GPLv3. See the LICENSE file for details.
## Trademarks
Arch Linux, Artix Linux, KDE, and other third-party trademarks are the property of their respective owners and are used for identification purposes only.
## Contributions
Contributions are welcome! By submitting pull requests, you agree to license
your work under the same GPLv3 license.
your work under the same GPLv3 license.
+60 -29
View File
@@ -11,13 +11,13 @@
[![Docs](https://img.shields.io/badge/docs-site-blue.svg)](https://antergos-next.github.io/antergos-iso/)
[![Dla mojego narodu](https://img.shields.io/badge/README-Polski-crimson.svg)](README.pl.md)
A community revival of Antergos — built on **Artix Linux** with **Dinit**, **KDE Plasma** desktop, and the **Calamares** installer (offline + online modes).
A technical successor to Antergos — built on **Artix Linux** with **Dinit**, **KDE Plasma** desktop, the **Calamares** installer (online mode), and a BYODE script for offline installs. It's its own thing with its own branding — not a replacement for the Antergos feeling, but a continuation of its lineage.
## What changed
| Before | After |
|--------|-------|
| Arch Linux (systemd) | Artix Linux (Dinit / OpenRC / Runit / S6) |
| Arch Linux (systemd) | Artix Linux (Dinit) |
| GNOME desktop | KDE Plasma desktop |
| archiso build system | artools (`buildiso`) |
| Custom Cnchi installer | Calamares (mature, upstream-supported) |
@@ -25,29 +25,63 @@ A community revival of Antergos — built on **Artix Linux** with **Dinit**, **K
## Why Artix?
The systemd migration in the Linux ecosystem has been controversial, and the original Antergos community had a strong preference for alternatives. Artix Linux provides a clean Arch-like experience without systemd, with your choice of Dinit, OpenRC, Runit, or S6. This keeps the familiar Pacman/Arch ecosystem while giving users the init freedom they want.
The Antergos NeXT project prefers init system flexibility over systemd lock-in. Artix Linux provides a clean Arch-like experience with your choice of **Dinit** (default), Runit, or S6 — see `changing-init.md` if you want something else.
> **Why Dinit?** We originally shipped OpenRC. Then Calamares kidnapped our pacman resolver and forced us to switch. Every `--noconfirm` call picked `elogind-dinit` (alphabetically before `elogind-openrc`), pulling in `dinit-rc` which conflicts with `openrc`. We tried `--ignore`, `--assume-installed`, `--ask=12`, and even a dummy package. Pacman laughed at all of them. Dinit works great. Stop asking.
>
> Proof (our descent into madness):
> ```
> fe4e862 fix: use --ignore instead of separate provider call ← --ignore: pacman ignored it
> 69da290 fix: add --ask=12 safety net ← --ask=12: infinite loop
> 64b08a9 fix: replace with --assume-installed=init-logind ← assume-installed: not checked for virtuals
> 2c0d242 fix: add --ignore to packages module too ← same failure, other file
> 8a6fa3f docs: update AGENTS.md with --ignore approach ← documented the failure
> ```
> The conflict was `dinit-rc` vs `openrc` both providing+conflicting with virtual `init-rc`. Pacman `--noconfirm` picks `elogind-dinit` first alphabetically → `dinit` → `dinit-rc` → conflict. No flag in pacman can pin a virtual provider on a fresh install. Dinit wins by alphabetical destiny.
> **Why Dinit?** We shipped OpenRC. Then Calamares kidnapped pacman's resolver and every `--noconfirm` call picked `elogind-dinit` (alphabetically before `elogind-openrc`). Dinit works great and OpenRC's service enabling was broken on installed systems anyway. Dinit wins by alphabetical destiny.
## Building
Requires an **Artix-based** system:
### Option A: Build in a container (non-pacman distros — recommended)
No Artix/Arch needed. Works on Gentoo, Fedora, Debian — anything **without
pacman** that has podman. This is the same path GitHub Actions CI uses.
```bash
# Install build deps
# Build the image (installs artools + deps inside an Artix container)
podman build -t antergos-build .
# Build the ISO (rootful podman required — artools chroots mount devtmpfs,
# which rootless containers cannot do)
sudo podman run --rm --privileged \
-v /var/lib/artools-buildiso:/var/lib/artools/buildiso \
-v "$(pwd)/iso-output:/workspace/iso-output" \
-e WORKSPACE_DIR=/workspace \
antergos-build
```
Or use the helper script:
```bash
./build-iso-podman.sh
```
The finished `.iso` lands in `iso-output/`.
### Option B: Native build (just pacman + artools)
You do **not** need an Artix-based system — `buildiso` is plain bash on top of
`pacman`. You need:
- `pacman` (native on Arch/Artix/**KaOS**; on other distros, install it or
extract the `.pkg.tar.zst` files)
- the artools libraries from the Artix repo: `artools-base` (provides
`basestrap`, `artix-chroot`, `fstabgen`) and `artools-iso` (provides
`buildiso`) plus their deps
- `squashfs-tools`, `grub`, `xorriso`/`libisoburn`, `dosfstools`, `mtools`
```bash
# On Arch/Artix:
pacman -S artools squashfs-tools
modprobe loop
# On KaOS (pacman native, but artools not in KaOS repos — extract from Artix):
pacman -S squashfs-tools
# grab artools-base/artools-iso from the Artix repo and extract over /
# On other distros: grab the packages from the Artix repo and extract
# them over / (e.g. into /usr/share/artools and /usr/bin), then install
# pacman and the deps listed above.
# Clone and enter
git clone https://github.com/Antergos-NeXT/antergos-iso.git
cd antergos-iso
@@ -69,6 +103,11 @@ The `.iso` appears in `/var/lib/artools/buildiso/iso/antergos/`.
First build pulls ~5 GB from the internet. Subsequent builds use pacman cache.
> **Which option do I use?**
>
> - **Arch / Artix / KaOS / any pacman-based distro** → Option B (native).
> - **Anything else** (Gentoo, Fedora, Debian, ...) → Option A (podman).
### Custom packages
The ISO pulls custom packages (branding, Calamares config, wallpapers) from our repo. Add it to your system:
@@ -96,18 +135,16 @@ iso-profiles/
Overlays are self-contained (no symlinks to external directories) so the repo builds standalone.
## Installer modes
## Installer
| Mode | Description |
|------|-------------|
| **Offline** | Unpacks a KDE Plasma squashfs — no internet needed |
| **Online** | Netinstall with init system choice (Dinit, OpenRC, Runit, S6) + desktop selection |
The launcher (`calamares-next`) presents a mode picker before launching Calamares.
| **Online** | Full Calamares netinstall with desktop selection (KDE Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, Hyprland) |
| **BYODE** | Bare system + btrfs + snapper — you `pacman -Sy` your own DE. Script available on the live desktop. |
## Download
No prebuilt ISOs yet. See [Building](#building) above.
[GitHub Releases](https://github.com/Antergos-NeXT/antergos-iso/releases)
## Sources
@@ -123,12 +160,6 @@ No prebuilt ISOs yet. See [Building](#building) above.
---
## A Note to the "Branding Police"
If you came here to hate and you're about to type "why are you using Antergos's branding" — pack your bags and go to **Manjaro**. We have Dustin's blessing. We are respectful. We are not them. Move on.
---
*Antergos launched in 2012 as **Cinnarch** (Cinnamon + Arch), renamed in 2013, and ran until 2019. NeXT continues the spirit with a modernized, Artix-based foundation — KDE Plasma, Calamares, and the same multi-desktop ambition you remember.*
*Dustin Falgout, one of the original Antergos developers, has given his blessing for this community revival ([see NOTICES](NOTICES)). Antergos NeXT is not affiliated with, endorsed by, or connected to the original Antergos project.*
*Dustin Falgout, one of the original Antergos developers, has given his blessing for this technical successor to carry the name and logo forward ([see NOTICES](NOTICES)). Antergos NeXT is not affiliated with, endorsed by, or connected to the original Antergos project.*
+8 -10
View File
@@ -2,22 +2,20 @@
> Szukasz starej wersji Arch/systemd? Zobacz gałąź [`before-systemd-change`](https://github.com/Antergos-NeXT/antergos-iso/tree/before-systemd-change).
Odrodzenie społeczności Antergos — zbudowane na **Artix Linux** z **Dinit**, **KDE Plasma** i instalatorem **Calamares** (tryb offline + online).
Następca techniczny Antergos — zbudowane na **Artix Linux** z **Dinit**, **KDE Plasma** i instalatorem **Calamares** (tryb online) + skrypt BYODE do instalacji offline.
## Co się zmieniło
| Przed | Po |
|-------|-----|
| Arch Linux (systemd) | Artix Linux (Dinit / OpenRC / Runit / S6) |
| Arch Linux (systemd) | Artix Linux (Dinit) |
| GNOME | KDE Plasma |
| archiso | artools (`buildiso`) |
| Cnchi | Calamares |
## Dlaczego Artix?
Systemd wyrósł na monolit — przejął logind, resolved, timedated, homed, journald, networkd i zaczął wprowadzać pola daty urodzenia do systemu. GNOME 49+ wyrzuciło obsługę init innych niż systemd. Artix Linux usunął GNOME w 2025 z tego powodu.
Antergos NeXT opuścił systemd zanim ten mógł zacząć inwigilować użytkowników.
Systemd przestał być "tylko initem" gdy zaczął zbierać daty urodzenia. Zostaliśmy przy Artix i Dinit. Chcesz coś innego? Jest `changing-init.md`.
## Budowanie
@@ -38,16 +36,16 @@ sudo -E ./buildiso -p antergos
ISO pojawi się w `/var/lib/artools/buildiso/iso/antergos/`.
## Tryby instalatora
## Instalator
| Tryb | Opis |
|------|------|
| **Offline** | Rozpakowuje squashfs z KDE Plasma — bez internetu |
| **Online** | Wybór init (Dinit, OpenRC, Runit, S6) + wybór środowiska (Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, Hyprland) |
| **Online** | Calamares z wyborem środowiska (Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, Hyprland) |
| **BYODE** | Goły system + btrfs + snapper — sam `pacman -Sy` swoje DE. Skrypt na pulpicie. |
## Pobieranie
Wkrótce — budujemy stabilne ISO.
[GitHub Releases](https://github.com/Antergos-NeXT/antergos-iso/releases)
## Źródła
@@ -64,4 +62,4 @@ Wkrótce — budujemy stabilne ISO.
*Antergos wystartował w 2012 jako **Cinnarch**, przemianowany w 2013, działał do 2019. NeXT kontynuuje ducha oryginału na nowoczesnym, Artixowym fundamencie — KDE Plasma, Calamares, ta sama wielośrodowiskowa ambicja.*
*Dustin Falgout, jeden z oryginalnych twórców Antergos, pobłogosławił to odrodzenie ([NOTICES](NOTICES)). Antergos NeXT nie jest powiązane z oryginalnym projektem Antergos.*
*Dustin Falgout, jeden z oryginalnych twórców Antergos, pobłogosławił temu następcy technicznemu używanie nazwy i logo ([NOTICES](NOTICES)). Antergos NeXT nie jest powiązane z oryginalnym projektem Antergos.*
+40
View File
@@ -0,0 +1,40 @@
#!/bin/bash
set -euo pipefail
# Antergos NeXT ISO build inside the Artix container (see Containerfile).
# Rootful podman is required: artools' chroot mounts devtmpfs, which rootless
# containers cannot do.
cd "$(dirname "$0")"
# 1. Ensure the build image exists (rootful — the run step below is rootful,
# and rootless podman uses a separate image store)
if ! sudo podman image exists localhost/antergos-build:latest; then
sudo podman build -t antergos-build .
fi
# 2. Run the build (privileged, workspace mounted, tmpfs workdir, ISO exported)
sudo podman run --rm --privileged --entrypoint sh \
-v "$(pwd):/workspace" \
-e WORKSPACE_DIR=/workspace \
-e INITSYS=dinit \
localhost/antergos-build:latest -c '
set -euo pipefail
mkdir -p /var/lib/artools/buildiso
mount -t tmpfs -o size=12G,exec,suid,dev tmpfs /var/lib/artools/buildiso
modprobe loop 2>/dev/null || true
[ -e /dev/loop-control ] || mknod -m 0660 /dev/loop-control c 10 237
for i in $(seq 0 15); do
[ -e "/dev/loop$i" ] || mknod -m 0660 "/dev/loop$i" b 7 "$i"
done
/workspace/buildiso -p antergos
echo "=== BUILD FINISHED ==="
mkdir -p /workspace/iso-output
cp -a /workspace/iso/antergos/. /workspace/iso-output/ 2>/dev/null || true
cd /workspace/iso-output
ISO=$(ls antergos-*.iso 2>/dev/null | head -1)
[[ -z "$ISO" || ! -f "$ISO" ]] && { echo "No ISO found in iso-output/"; exit 1; }
sha256sum "$ISO" > "$ISO.sha256"
cat "$ISO.sha256"
ls -la /workspace/iso-output/ | head -20
'
+1 -1
View File
@@ -1,6 +1,6 @@
title: Antergos NeXT
description: >-
A community revival of Antergos — Artix Linux, OpenRC, KDE Plasma, Calamares
A technical successor to Antergos — Artix Linux, Dinit, KDE Plasma, Calamares
theme: just-the-docs
color_scheme: dark
+132 -8
View File
@@ -6,15 +6,57 @@ nav_order: 2
# Building the ISO
Requires an **Artix-based** system with `artools` and `squashfs-tools`.
The ISO is built with `buildiso` (from Artix `artools` package) plus a customized profile. There are two supported paths: **Option A (container)** for systems without pacman, and **Option B (native)** for pacman-based systems.
## Prerequisites
## Option A: Build in a container (non-pacman distros — recommended)
No Artix/Arch needed. Works on Gentoo, Fedora, Debian — anything **without pacman** that has podman. This is the same path GitHub Actions CI uses.
```bash
# Build the image (installs artools + deps inside an Artix container)
podman build -t antergos-build .
# Build the ISO (rootful podman required — artools chroots mount devtmpfs,
# which rootless containers cannot do)
sudo podman run --rm --privileged \
-v /var/lib/artools-buildiso:/var/lib/artools/buildiso \
-v "$(pwd)/iso-output:/workspace/iso-output" \
-e WORKSPACE_DIR=/workspace \
antergos-build
```
Or use the helper script:
```bash
./build-iso-podman.sh
```
The finished `.iso` lands in `iso-output/`.
## Option B: Native build (just pacman + artools)
You do **not** need an Artix-based system — `buildiso` is plain bash on top of `pacman`. You need:
- `pacman` (native on Arch/Artix/**KaOS**; on other distros, install it or extract the `.pkg.tar.zst` files)
- the artools libraries from the Artix repo: `artools-base` (provides `basestrap`, `artix-chroot`, `fstabgen`) and `artools-iso` (provides `buildiso`) plus their deps
- `squashfs-tools`, `grub`, `xorriso`/`libisoburn`, `dosfstools`, `mtools`
## Prerequisites (native path)
```bash
# On Arch/Artix:
pacman -S artools squashfs-tools
modprobe loop
# On KaOS (pacman native, but artools not in KaOS repos — extract from Artix):
pacman -S squashfs-tools
# On other distros: grab artools-base/artools-iso from the Artix repo and
# extract them over /, then install pacman and the deps listed above.
```
`squashfs-tools` is needed for `mksquashfs`. The `loop` module must be loaded for `mount -o loop` during image assembly.
## Clone and configure
```bash
@@ -28,30 +70,112 @@ mkdir -p ~/.config/artools/pacman.conf.d
cp pacman.conf.d/iso-x86_64.conf ~/.config/artools/pacman.conf.d/
```
Without this override, `buildiso` uses `/usr/share/artools/pacman.conf.d/iso-x86_64.conf` (from the artools package), which lacks the `[antergos-pkgs]` repository. The build will then try to fetch our custom packages (branding, Calamares config, wallpapers) from Artix repos and fail.
## Build
```bash
sudo -E ./buildiso -p antergos
```
> **⚠️ Use `./buildiso`, not `buildiso`.** The Artix system `/usr/bin/buildiso` lacks the `--overwrite='*'` flag, causing file conflicts between `calamares` and `calamares-branding-antergos-next` (both claim `/usr/share/calamares/branding/default/`). Our repo's `./buildiso` has it.
- **Use `./buildiso`**, not `buildiso`. The system `/usr/bin/buildiso` lacks `--overwrite='*'`, which causes file conflicts between `calamares` and `calamares-branding-antergos-next` (both claim `/usr/share/calamares/branding/default/`). Our repo's `./buildiso` has it.
- **`sudo -E`** is required. Without `-E`, `WORKSPACE_DIR` is stripped and `load_profile()` returns empty `HAS_LIVE`/`LIVEUSER`, causing the build to fail early.
## Output
The ISO appears in `/var/lib/artools/buildiso/iso/antergos/`.
The ISO appears in `/var/lib/artools/buildiso/iso/antergos/`:
First build pulls ~5 GB from the internet. Subsequent builds use pacman cache. Go make a coffee. Or two. Maybe three.
```
/var/lib/artools/buildiso/iso/antergos/
├── antergos-<date>.iso # Bootable ISO
└── antergos-<date>.sha1sum # Checksum
```
First build pulls ~5 GB from the internet (package downloads). Subsequent builds use pacman cache.
## Environment variables
| Variable | Purpose |
|----------|---------|
| `WORKSPACE_DIR` | Must point to repo root. `buildiso` looks for profiles under `$WORKSPACE_DIR/iso-profiles/` |
| `COMPRESSION` | Squashfs compression type (e.g. `zstd`). If unset, `mksquashfs` fails silently with a zero-size image |
| `COMPRESSION` | Squashfs compression type (e.g. `zstd`, `gzip`, `xz`). If unset, `mksquashfs` produces a zero-size sparse file instead of a valid squashfs |
## Custom packages repo
## Troubleshooting
The ISO pulls branding, Calamares config, and wallpapers from our custom repo. To use it on your system:
### "File conflict" errors during build
This means `--overwrite='*'` is not being passed to `basestrap`. Make sure you're using the repo's `./buildiso`, not the system one:
```bash
# Wrong — system buildiso without --overwrite:
buildiso -p antergos
# Correct:
./buildiso -p antergos
```
### Build fails with "HAS_LIVE is empty"
Forgetting `sudo -E`:
```bash
# Wrong — WORKSPACE_DIR not preserved:
sudo ./buildiso -p antergos
# Correct:
sudo -E ./buildiso -p antergos
```
### buildiso can't find our custom repo
The pacman config override is missing:
```bash
mkdir -p ~/.config/artools/pacman.conf.d
cp pacman.conf.d/iso-x86_64.conf ~/.config/artools/pacman.conf.d/
```
### Zero-size squashfs (ISO exists but is tiny)
`$COMPRESSION` is unset. Either set it in `profile.yaml` or pass it via environment:
```bash
export COMPRESSION=zstd
sudo -E ./buildiso -p antergos
```
Remove the stale image before retrying:
```bash
rm -rf /var/lib/artools/buildiso/iso/antergos/
```
### Corrupted pacman cache
If `basestrap` fails with checksum errors, clear the cache:
```bash
rm -rf /var/lib/artools/buildiso/pkg/antergos/cache/
```
Then rebuild.
## Which option do I use?
> - **Arch / Artix / KaOS / any pacman-based distro** → Option B (native).
> - **Anything else** (Gentoo, Fedora, Debian, ...) → Option A (podman).
## CI builds
The CI pipeline (`.github/workflows/build.yml`) handles all of the above automatically. It runs in an Artix container, sets `WORKSPACE_DIR`, overrides pacman config, mounts a 12 GB tmpfs, and builds the ISO. It also runs the AI community moderator on issues/PRs (`.github/workflows/ai-moderator.yml`).
An Internet Archive upload step exists in the workflow but is **currently disabled** (`if: false`) — builds are manually verified first. When enabled it uploads with identifier `antergos-next-YYYYMMDD-<run_number>`.
Trigger CI manually from the GitHub Actions tab (push trigger is disabled).
## Local pacman repo
To use the custom packages repo on an installed system:
```ini
[antergos-pkgs]
+48
View File
@@ -0,0 +1,48 @@
---
title: Offline Installer (BYODE)
layout: default
nav_order: 14
---
# Offline Installer (BYODE)
The offline installer (`/usr/local/bin/antergos-offline-install`) is a bare-minimum installer for situations where the Calamares online installer can't work — no internet, or you want a minimal base to build on. It is **experimental** and best-effort; the Calamares online installer remains the primary path.
The script is adapted from Valve's SteamOS `repair_device.sh` (the Zenity prompt and pretty-output helpers are lifted straight from there).
## What it does
1. Verifies it's running as root in a live Antergos NeXT session (checks for `/run/artix/bootmnt/LiveOS/rootfs.img`)
2. Warns that it installs **no desktop environment** — just the base system
3. Lets you pick a target disk via `lsblk` + Zenity, then partitions it:
- GPT table
- 512 MiB EFI partition
- 300 MiB swap
- Root partition filling the rest
4. Formats: `vfat` (ESP), `swap`, `btrfs` root
5. Creates btrfs subvolumes: `@`, `@home`, `@cache`, `@log`, `@snapshots`
6. Extracts the live rootfs (squashfs) to the target
7. Generates an fstab with `subvol=` mounts and `compress=zstd`
8. Chroots in: runs `mkinitcpio -P`, installs GRUB as `Antergos`, sets hostname
9. Prompts for a root password and a daily user (added to `wheel` + sudoers)
10. Enables services via `artix-service`: NetworkManager, dbus, acpid, bluetoothd, cronie, cupsd, dhcpcd, power-profiles-daemon, syslog-ng, userspawn
11. Configures **snapper** for automatic snapshots (6 hourly + 7 daily + 4 weekly, via cron jobs)
12. Unmounts, syncs, and offers to reboot
## After first boot
Since no desktop environment was installed, connect to the internet and run:
```bash
sudo pacman -Sy plasma-meta
```
or install any other DE you want.
## Caveats
- **Destroys all data** on the selected disk — confirmed via Zenity twice.
- No Calamares integration (no partitioner UI, no locale/keyboard/user pages).
- Package lists are baked into the live squashfs; there is no post-install package installation step, so the system matches the ISO's rootfs as of build time.
- Bootloader is GRUB only — no systemd-boot, no rEFInd.
- Still needs internet on first boot for anything beyond the base.
+169
View File
@@ -0,0 +1,169 @@
---
title: Changing init
layout: default
nav_order: 10
---
# Changing init on an installed system
Antergos NeXT ships with **Dinit** as the default and only install-time init.
If you prefer a different init (OpenRC, Runit, or S6), you can switch after
installation.
> **Warning:** Switching init is for advanced users. In general, a fresh
> installation is safer. Keep a bootable Artix LiveUSB handy in case
> something goes wrong.
>
> OpenRC has known conflicts with Dinit on Antergos NeXT. If switching to
> OpenRC fails, the recommended course of action is to reinstall the ISO
> and use Dinit. A fresh install with Dinit is simpler and more reliable
> than troubleshooting a broken init migration. Tutorials on using Dinit
> are available on the Artix Linux wiki and in the Dinit documentation.
## Overview
1. Stop your display manager and get to a TTY
2. Save a list of installed `-dinit` service packages
3. Download the corresponding `-<newinit>` packages
4. Remove the dinit packages
5. Install the new init packages
6. Enable services for the new init
7. Cold reboot
## Step-by-step
### 1. Stop the display manager
```bash
dinitctl stop sddm # or lightdm / lxdm / greetd / ly
```
Switch to a text TTY with Ctrl+Alt+F2 and log in as root.
### 2. Save your service list
```bash
pacman -Qsq dinit > services.list
```
This captures every installed package with `-dinit` in its name.
The list will include things like `sddm-dinit`, `networkmanager-dinit`,
`elogind-dinit`, etc.
### 3. Download packages for the new init
Replace `openrc` with `runit`, `s6`, or your init of choice:
```bash
pacman -Sw $(sed 's/dinit/openrc/g' < services.list)
```
This fetches the packages into pacman's cache without installing them.
If this fails for any package, you'll need to install it manually later.
### 4. Remove the old init packages
```bash
pacman -Rdd $(cat services.list)
```
The `-dd` flag bypasses dependency checks — required because we're
ripping out the entire init layer at once.
### 5. Install the new init
First install the base init package and elogind:
| Target | Base packages |
|----------|---------------|
| OpenRC | `openrc`, `elogind-openrc` |
| Runit | `runit`, `elogind-runit` |
| S6 | `s6-base`, `elogind-s6` |
```bash
pacman -S openrc elogind-openrc
```
Then install the service packages:
```bash
pacman -S $(sed 's/dinit/openrc/g' < services.list)
```
### 6. Enable services
#### Switching to OpenRC
```bash
rc-update add sddm default
rc-update add NetworkManager default
# ... repeat for each service
```
Common services: `acpid`, `bluetoothd`, `cronie`, `cupsd`, `dbus`,
`dhcpcd`, `NetworkManager`, `power-profiles-daemon`, `syslog-ng`.
#### Switching to Runit
```bash
ln -s /etc/runit/sv/NetworkManager /etc/runit/runsvdir/default/
ln -s /etc/runit/sv/sddm /etc/runit/runsvdir/default/
# ... repeat for each service
```
#### Switching to S6
```bash
s6-service add default NetworkManager
s6-service add default sddm
# ... repeat for each service
```
### 7. Cold reboot
A normal reboot won't work because the symlinks for `/sbin/init` and
`/sbin/reboot` still point to the old init. Instead, synchronize
disks and trigger a cold reboot:
```bash
sync
mount / -o remount,ro
echo b > /proc/sysrq-trigger
```
Or use the reset button on your machine.
## Troubleshooting
### System won't boot
Boot from an Artix LiveUSB, chroot in, and check:
```bash
mount /dev/sdXn /mnt
artix-chroot /mnt
```
From the chroot, you can reinstall packages, fix service symlinks,
or regenerate the initramfs with `mkinitcpio -p linux`.
### Missing service packages
Some daemons may not have init scripts for your chosen init.
Check the Artix repos:
```bash
pacman -Ss <daemon-name>-openrc # or -runit, -s6
```
If a package doesn't exist, you can write a custom service file
or use a different daemon.
### OpenRC: services don't enable on installed systems
This was a known bug in earlier Antergos NeXT builds (the installer
used `artix-service` which didn't set up OpenRC correctly).
If you're switching to OpenRC manually on an already-installed system,
`rc-update add` works fine — the bug was specific to the installer flow.
+27 -12
View File
@@ -1,43 +1,58 @@
---
title: CI/CD
layout: default
nav_order: 6
nav_order: 7
---
# CI/CD Pipeline
Two GitHub Actions workflows:
Three GitHub Actions workflows:
## Build ISO (`build.yml`)
Triggers on push/PR to `master`. Runs in an `artixlinux/artixlinux:base` container.
Triggers on **manual `workflow_dispatch`** only (push to master does NOT trigger a build). Runs in an `artixlinux/artixlinux:base` container with `--privileged`.
### Steps
Steps:
1. Install dependencies (artools, squashfs-tools, git, sudo, python)
2. Set `WORKSPACE_DIR` to the checkout path
3. Override pacman config with `[antergos-pkgs]` repo
3. Override pacman config with `[antergos-pkgs]` repo (`pacman.conf.d/iso-x86_64.conf`)
4. Mount a 12 GB tmpfs at `/var/lib/artools/buildiso`
5. Run `./buildiso -p antergos`
6. Upload the ISO directory as a build artifact
6. Upload the ISO as a build artifact
### Internet Archive upload
Currently **disabled** (`if: false`) until ISO is stable. When enabled, uploads the built ISO to the Internet Archive with metadata:
The workflow includes an Internet Archive upload step, but it is **currently disabled** (`if: false`) — the maintainer is the only QA team and builds are manually verified first. When re-enabled it uploads with:
- Collection: `open_source_software`
- Access keys: `IA_ACCESS_KEY`, `IA_SECRET_KEY` (repo secrets)
- **Collection**: `open_source_software` (Community Software, _not_ Community Texts)
- **Identifier**: `antergos-next-YYYYMMDD-<run_number>` (e.g. `antergos-next-20260711-162`)
- **Credentials**: `IA_ACCESS_KEY` and `IA_SECRET_KEY` (repo secrets)
The `-<run_number>` suffix guarantees unique identifiers across CI runs.
### Secrets
| Secret | Purpose |
|--------|---------|
| `IA_ACCESS_KEY` | Internet Archive S3 access key |
| `IA_ACCESS_KEY` | Internet Archive S3 access key (for the disabled IA step) |
| `IA_SECRET_KEY` | Internet Archive S3 secret key |
| `GROQ_API_KEY` | Groq API key for the AI moderator |
## AI community moderator (`ai-moderator.yml`)
Triggers on issue open, issue/PR comment, discussion, and discussion comment. Uses the Groq API (`llama-3.1-8b-instant`) via `actions/github-script@v9` to check posts against the Code of Conduct and `CONTRIBUTING.md`. May warn, hide comments, or lock threads. See `ai-moderator.yml` for details.
## Deploy docs (`pages.yml`)
Triggers on push to `master` only when files under `docs/` change. Builds a Jekyll site from `docs/` using the Just the Docs theme and deploys to GitHub Pages.
Triggers on push to `master` _only_ when files under `docs/` change. Builds a Jekyll site from `docs/` using the Just the Docs theme and deploys to GitHub Pages.
## antergos-packages CI
Separate workflow in the [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo. Builds all packages listed in `packages.yaml` and publishes them to GitHub Pages as a pacman repo.
Separate workflow in the [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo. Builds all packages listed in `packages.yaml` and publishes them to GitHub Pages as a pacman repository.
## Safety notes
- CI does NOT run on push — only manual dispatch. This prevents unintended ISO builds.
- Internet Archive upload is disabled by default; when enabled it uses a unique identifier per run, so re-running CI won't overwrite a previous release.
- `GROQ_API_KEY` must be set as a repo secret for the AI moderator to function.
+9 -14
View File
@@ -1,7 +1,7 @@
---
title: Desktop Environments
layout: default
nav_order: 8
nav_order: 9
---
# Desktop Environments
@@ -15,7 +15,7 @@ Available desktops in online mode, sourced from Artix repos.
| **Repo** | world |
| **Group** | `plasma` |
| **Session** | `plasma.desktop` (Wayland) / `plasmax11.desktop` (X11) |
| **Notes** | Default DE. Wayland is the default session. `plasma-wayland-session` is NOT a separate package on Artix — it's bundled in `plasma-workspace` |
| **Notes** | Default DE. Wayland is the default session. `plasma-wayland-session` is NOT a separate package on Artix — it's bundled in `plasma-workspace`. Includes `discover` (KDE's package manager GUI) |
## Xfce
@@ -73,22 +73,17 @@ Available desktops in online mode, sourced from Artix repos.
| **Packages** | `hyprland` |
| **Session** | `hyprland.desktop` |
## GNOME
## COSMIC
| | |
|---|---|
| **Repo** | imaginary |
| **Group** | `gnome-systemd-hub` |
| **Session** | `does-not-exist.desktop` |
| **Status** | |
> You really think you can get GNOME here? GNOME deleted all other init support. Take a walk.
| **Repo** | galaxy |
| **Group** | `cosmic` |
| **Session** | `cosmic.desktop` |
| **Notes** | Rust-based, Wayland-native. Uses greetd + cosmic-greeter (not SDDM). Alpha quality, not for production. Select `greetd` in the display-manager chooser — `cosmic-greeter` requires the `greetd` daemon. |
## Not available
- **Budgie** — not in any Artix repo (system, world, galaxy, lib32). Slideshow entries removed.
- **GNOME** — see above.
## No Desktop
Installs the base system only (TTY/login). Useful for servers or custom setups.
- **GNOME** — dropped non-systemd support upstream. Not available.
- **No Desktop** — a "no desktop / base only" option does not exist in the installer. Pick a DE from the list above.
+91 -32
View File
@@ -1,11 +1,40 @@
---
title: Development
layout: default
nav_order: 7
nav_order: 8
---
# Development
## Repository structure
```
antergos-iso/
├── buildiso # Modified buildiso with --overwrite='*' and branding
├── iso-profiles/
│ ├── antergos/
│ │ ├── profile.yaml # Packages, services (rootfs + livefs), compression
│ │ ├── root-overlay/ # Merged into rootfs → live session + offline install
│ │ └── live-overlay/ # Merged into live environment only
│ └── common/
│ └── common.yaml # Shared base packages (kernel, firmware, filesystem)
├── pacman.conf.d/
│ └── iso-x86_64.conf # Pacman config for ISO build with [antergos-pkgs]
└── .github/workflows/
├── build.yml # ISO build (IA upload step disabled)
├── ai-moderator.yml # Groq-powered community moderator
└── pages.yml # Docs deployment to GitHub Pages
```
## Building locally
```bash
export WORKSPACE_DIR="$PWD"
sudo -E ./buildiso -p antergos
```
See [Building the ISO](building) for full setup instructions and troubleshooting.
## Critical gotchas
### `./buildiso` vs `buildiso`
@@ -14,7 +43,7 @@ Always use the repo's `./buildiso`, **not** the system Artix `/usr/bin/buildiso`
### `sudo -E` is required
Without `-E`, `WORKSPACE_DIR` is stripped and `load_profile()` returns empty `HAS_LIVE`/`LIVEUSER`, causing build failures.
Without `-E`, `WORKSPACE_DIR` is stripped and `load_profile()` returns empty `HAS_LIVE`/`LIVEUSER`, causing build failures immediately.
### Pacman config must be user-overridden
@@ -25,62 +54,92 @@ mkdir -p ~/.config/artools/pacman.conf.d
cp pacman.conf.d/iso-x86_64.conf ~/.config/artools/pacman.conf.d/
```
CI does this automatically.
### Repo order in iso-x86_64.conf
`[antergos-pkgs]` must be listed **first** in `iso-x86_64.conf` so custom packages (calamares, branding) take priority over Artix's. If Artix repos are first, our custom packages won't be installed.
### Package order matters in profile.yaml
`basestrap` uses `--overwrite='*'`. The **last** package to claim a file wins. Package order in `profile.yaml` should list `calamares` BEFORE `calamares-branding-antergos-next`, so branding files overwrite Calamares defaults, not the other way around.
### `antergos-release` must be in basestrap.conf operations
The `filesystem` package owns `/usr/lib/os-release` with "Artix Linux". To replace it with "Antergos NeXT", `antergos-release` must be listed in the `operations` list in `iso-profiles/antergos/live-overlay/etc/calamares/modules/basestrap.conf`. This ensures it's installed during bootstrapping with `--overwrite`. If it's missing from operations, the installed system will show "Artix Linux" in `/usr/lib/os-release`.
### Squashfs compression
If `$COMPRESSION` is unset in config, `mksquashfs` produces a sparse zero file instead of a valid squashfs. Always verify compression is set, or remove stale images before retry.
If `$COMPRESSION` is unset in `profile.yaml`, `mksquashfs` produces a sparse zero file instead of a valid squashfs. The ISO will be tiny and unbootable. Always verify compression is set, or remove stale images before retrying.
### Calamares module precedence
`/etc/calamares/modules/` overrides `/usr/share/calamares/modules/`. Live-overlay online/offline directories override both.
`/etc/calamares/modules/` overrides `/usr/share/calamares/modules/`. The `calamares-next` launcher copies the online settings file to `/etc/calamares/settings.conf`, and the `modules-search: [ local ]` directive in that file resolves modules from `/etc/calamares/modules/`. Both `calamares/modules/` and `calamares-online/modules/` in the live-overlay are for the **online** installer — there is no offline Calamares config. Module configs placed in `calamares-online/modules/` are not loaded directly during installation — only `calamares/modules/` is consulted at runtime; the `calamares-online/modules/` tree is the self-contained companion copy.
### GRUB config overwrite must be enabled
The Artix `grub` package ships a default `/etc/default/grub` file. When Calamares's `grubcfg` module runs during installation, this file already exists on the target system. With `overwrite: false`, the module reads the existing file and only modifies `GRUB_CMDLINE_LINUX_DEFAULT` and `GRUB_DISTRIBUTOR` — all other keys from the `defaults` block (including `GRUB_THEME` and `GRUB_TERMINAL_OUTPUT`) are silently ignored.
The active configuration at `live-overlay/etc/calamares/modules/grubcfg.conf` **must** set `overwrite: true` to replace Artix's shipped defaults with the distribution's intended values. Without this, the installed system will use the bare Artix GRUB configuration with no theme.
### `GRUB_TERMINAL_OUTPUT` must be "gfxterm" for themed GRUB
Setting `GRUB_TERMINAL_OUTPUT: "console"` in `grubcfg.conf` forces GRUB into text mode and disables the graphical theme. The theme requires `GRUB_TERMINAL_OUTPUT: "gfxterm"` to render.
### Live-overlay is not overlay-mounted
Live-overlay files are copied via `cp -LR` in `make_livefs()`. Deleting a file from live-overlay exposes the package version, not hides it. Use `NoDisplay=true` in `.desktop` files instead.
Live-overlay files are copied via `cp -LR` in `make_livefs()`. Deleting a file from live-overlay exposes the package version underneath. Use `NoDisplay=true` in `.desktop` files to hide entries.
### `plasma-wayland-session` does not exist on Artix
Artix bundles the Wayland session into `plasma-workspace` itself. Do not add it to package lists.
### SDDM theme
The installed system uses the **pixie** theme (`pixie-sddm-git`). The `antergos-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 — this overrides KDE's SDDM KCM setting. The live session deliberately uses `breeze` for autologin.
> The `antergos-sddm-theme` PKGBUILD still exists in `antergos-packages` but is **not built** (not in `packages.yaml`) and not used.
### Pipewire launcher on dinit
`artix-pipewire-launcher` detects the init system and only proceeds on supported ones. For dinit, the upstream script returns `SUPPORT=''` (unsupported). The forked version in `[antergos-pkgs]` patches this to `dinit|runit|s6) SUPPORT='YES'`. The XDG autostart entry (`pipewire.desktop` at `/etc/xdg/autostart/`) then starts pipewire on login.
### File conflicts
`calamares` and `calamares-branding-antergos-next` both install to `/usr/share/calamares/branding/default/`. Handled by `--overwrite='*'`.
- `calamares` and `calamares-branding-antergos-next` both install to `/usr/share/calamares/branding/default/` — handled by `--overwrite='*'`
- `filesystem` and `antergos-release` both claim `/usr/lib/os-release` — handled by including `antergos-release` in basestrap operations
### `calamares-next.sh SetConfig()`
Must `rm -f` the symlink at `/etc/calamares/settings.conf` before `cp`, otherwise `cp` follows the symlink and overwrites the offline config file instead of replacing it.
Must `rm -f` the existing file before `cp`, otherwise `cp` follows any existing symlink to the settings file.
### Do not push commits while IA keys are set
### CI does not trigger on push
Test ISOs manually first. IA credentials are set as repo secrets and will trigger an upload on push to master.
The `build.yml` workflow only runs on `workflow_dispatch` (manual trigger from GitHub Actions tab). This prevents accidental ISO builds on every push.
## Profile structure
### Internet Archive bucket naming
```
iso-profiles/
├── antergos/
│ ├── profile.yaml # Packages, services (rootfs + livefs)
│ ├── root-overlay/ # Merged into squashfs rootfs
│ └── live-overlay/ # Merged into live environment
└── common/
└── common.yaml # Shared base packages
```
ISO identifier format: `antergos-next-YYYYMMDD-<run_number>`. The `-<run_number>` ensures uniqueness even for multiple builds on the same day.
## Building locally
```bash
export WORKSPACE_DIR="$PWD"
sudo -E ./buildiso -p antergos
```
### A Note to the "Branding Police"
If you came here to hate and you're about to type "why are you using Antergos's branding" — pack your bags and go to **Manjaro**. We have Dustin's blessing. We are respectful. We are not them. Move on.
## Testing
## Testing a build
Boot the resulting ISO in a VM. Verify:
- Wayland is the default display server (SDDM session is `plasma.desktop`)
- No "Install Artix Linux" entry in the app menu
- Wallpaper is set on first login
- Online mode: init selector + DE selector both work
- DE selector works
- Slideshow renders correctly
- Audio works after installation (pipewire should auto-start)
- After install, `/usr/lib/os-release` shows "Antergos NeXT"
- SDDM shows the Antergos theme, not Breeze
## Custom packages repo
Custom PKGBUILDs live in the companion [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo. The CI there builds them and publishes to GitHub Pages as a pacman repository:
```ini
[antergos-pkgs]
SigLevel = Optional TrustAll
Server = https://antergos-next.github.io/antergos-packages
```
+65 -20
View File
@@ -7,26 +7,18 @@ nav_order: 2
# Dinit
**Dinit** is a modern init system designed for speed and correctness. Written in C++, it focuses on parallel service startup and dependency management without the bloat of systemd or the complexity of S6. **Dinit is the default init system in Antergos NeXT.**
**Dinit** is a modern init system designed for speed and correctness. Written in C++, it focuses on parallel service startup and dependency management. **Dinit is the default init system in Antergos NeXT.**
## Philosophy
Dinit aims to be a "better than OpenRC but simpler than S6" middle ground. It handles dependencies automatically (like systemd) but stays out of your way (like OpenRC). Services are defined in declarative config files, not shell scripts.
## Who uses it?
- Not widely adopted by major distros yet
- Popular in DIY Linux builds (Linux From Scratch, custom embedded)
- Default init in Antergos NeXT; available in Artix as an alternative
Dinit handles dependencies automatically through declarative configuration files, avoiding the complexity of shell-script-based service definitions.
## Key concepts
| Concept | What it means |
|---------|---------------|
| Service files | Declarative `.conf` files in `/etc/dinit.d/` |
| Dependencies | Automatic — Dinit figures out start order |
| Parallel startup | Very fast — starts services concurrently |
| Process supervision | Optional — can restart crashed services |
| Dependencies | Automatic — Dinit figures out start order from `depends-on` directives |
| Parallel startup | Very fast — starts services concurrently wherever possible |
| Process supervision | Optional — can restart crashed services if `type = process` |
## Basic commands
@@ -60,6 +52,41 @@ depends-on = dbus
depends-on = network
```
## Where services live
- **System services**: `/etc/dinit.d/` (config) — enabled via symlinks in `/etc/dinit.d/boot.d/`
- **User services**: similar structure under the user's config directory (for `dinit-user-spawn`)
- **Boot-enabling**: `dinitctl enable <service>` creates a symlink in `boot.d/`
Service files use a simple key-value syntax. The `type` can be:
- `process` — supervised (auto-restart on crash)
- `scripted` — runs and completes (one-shot tasks)
- `internal` — handled internally by dinit
## Common tasks
### Enable a service at boot
```bash
dinitctl enable sshd
```
Alternatively, create a symlink manually:
```bash
ln -s /etc/dinit.d/sshd /etc/dinit.d/boot.d/
```
### Check what's running
```bash
dinitctl list
```
### View logs
Dinit itself doesn't handle logging. Services log to syslog or their own log files under `/var/log/`. Use `less /var/log/messages` or check per-service log directories.
## Comparison with OpenRC
| | OpenRC | Dinit |
@@ -70,15 +97,33 @@ depends-on = network
| Complexity | Low | Medium |
| Supervision | No built-in | Optional |
## Should you use it?
## Troubleshooting
Pick Dinit if:
- You want the fastest possible boot
- You like declarative config (YAML-like)
- You want automatic dependency resolution
- You're fine with a newer, actively developed init system
### Service fails to start
OpenRC is also available if you prefer shell scripts and a longer track record.
Check the service file syntax first:
```bash
dinitctl start sshd
# If it fails, check:
cat /var/log/messages | grep dinit
```
Make sure all `depends-on` services are available (even if not enabled — dinit will start them as dependencies).
### "boot" service file missing
Dinit's `add_user_svc_dinit` in Calamares attempts to create `boot.d/` symlinks but does not create a `boot` service file. This is a known upstream limitation. Workaround: ensure services are enabled via `dinitctl enable` after install, or use the init-specific package handling in Calamares.
### pipewire doesn't start
On Antergos NeXT, `artix-pipewire-launcher` is patched to support dinit. If pipewire isn't starting, verify the launcher script at `/usr/bin/artix-pipewire-launcher` includes dinit in its supported init list. The XDG autostart entry at `/etc/xdg/autostart/pipewire.desktop` handles starting pipewire on login.
## When to use Dinit
Dinit is suitable for users who want fast boot times and automatic dependency resolution without managing shell-script-based service files. It is the default init in Antergos NeXT and requires no additional configuration.
Users migrating from systemd will find Dinit's declarative service files familiar. Users accustomed to OpenRC or Runit may prefer to switch — see [Changing init](changing-init) for instructions.
## Learn more
+35 -16
View File
@@ -6,38 +6,57 @@ nav_order: 1
# Antergos NeXT
Thank you for visiting Antergos NeXT!
This distribution is built with care, passion, and
a lot of late-night dedication. If you like our work,
starring the repository is the sweetest way to say
"keep going!" It really brightens up our dashboard.
Have a wonderful day, and happy computing! ✨
A technical successor to Antergos for the post-systemd era — **Artix Linux** base with **Dinit**, **KDE Plasma**, and the **Calamares** installer. Its own branding, its own identity — the lineage continues, the Antergos feeling doesn't get replaced.
A community revival of Antergos — built on **Artix Linux** with **Dinit** (OpenRC / Runit / S6 available), **KDE Plasma**, and the **Calamares** installer (offline + online modes).
## Download
[**Download the latest ISO**](https://github.com/Antergos-NeXT/antergos-iso/releases)
_Published to GitHub Releases. (The Internet Archive upload step in CI is currently disabled — see [CI](ci).)_
### Latest release — v2026.08.17 (Arranxo)
Hotfix release. What's fixed in v2026.08.17 "Arranxo":
- **COSMIC display manager now works** — `cosmic-greeter-dinit` ships as its own package and the online `displaymanager.conf` lists `greetd`, so `/etc/greetd/config.toml` gets written and the greeter starts. The Xeitoso-era COSMIC-breaks-DM bug is gone.
- **zsh login lockout fixed** — `users.conf` forces `/bin/zsh` but nothing installed it, so a freshly installed system couldn't log in. `zsh` is now in the netinstall Default group. Thanks to jtadlock91 for reporting it.
- **New KDE Plasma (Minimal) entry** — a stripped-down Wayland-only Plasma for low-end hardware: `plasma-meta`, kitty, pcmanfm-qt, featherpad, grim, slurp. No XWayland, no branding, no bloat.
Only KDE Plasma was tested this release. The other DEs are in the installer but best-effort — see the [release notes](https://github.com/Antergos-NeXT/antergos-iso/releases/tag/v2026.08.17-release). The offline installer is also **experimental and best-effort** — the online Calamares flow is the supported path.
### Known issues in this release
- **KDE Plasma is the only tested DE** — Xfce, Cinnamon, MATE, LXQt, i3, Sway, Hyprland and COSMIC are in the installer but unverified. Report results in an issue.
- **The offline installer is experimental and best-effort** — the online Calamares flow is the supported path.
## Quick links
- [Building the ISO](building) — set up and build locally
- [Installer](installer) — Calamares modes, init & DE selectors
- [Custom packages](packages) — PKGBUILDs, repo setup
- [CI/CD](ci) — GitHub Actions pipeline
- [Custom packages](packages) — PKGBUILDs, pipewire fork, branding
- [CI/CD](ci) — GitHub Actions pipeline, Internet Archive upload
- [Development](development) — contributing, gotchas, conventions
## Learn about Antergos NeXT
- [Init Systems](init-systems) — what init systems are, Dinit, OpenRC, S6, Runit
- [Init Systems](init-systems) — Dinit, OpenRC, S6, Runit compared
- [Desktop Environments](desktop-environments) — available DEs in online mode
- [Wallpapers](wallpapers) — where they go, how they work
- [Offline Installer](byode) — the BYODE bare-minimum installer
## What changed
## What changed from original Antergos
| Area | Original Antergos | Antergos NeXT |
|------|-------------------|---------------|
| Base | Arch Linux (systemd) | Artix Linux (Dinit / OpenRC / Runit / S6) |
| Base | Arch Linux (systemd) | Artix Linux |
| Default init | systemd | Dinit (others via [changing-init](changing-init)) |
| Desktop | GNOME | KDE Plasma |
| Installer | Custom Cnchi | Calamares |
| Build | archiso | artools (`buildiso`) |
| Installer | Custom Cnchi | Calamares (online) + BYODE (offline) |
| Build system | archiso | artools (`buildiso`) |
| Display server | X11 | Wayland (X11 via Xlibre) |
## Project scope
This repo (`antergos-iso`) contains the ISO build configuration — overlays, Calamares modules, pacman config, CI pipeline. Custom PKGBUILDs live in the separate [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo.
## Sources
@@ -45,4 +64,4 @@ A community revival of Antergos — built on **Artix Linux** with **Dinit** (Ope
- [artools](https://gitea.artixlinux.org/artix/artools)
- [Calamares](https://codeberg.org/calamares/calamares)
- [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages)
- [Original wallpapers](https://github.com/Antergos/wallpapers)
- [Original Antergos wallpapers](https://github.com/Antergos/wallpapers)
+22 -42
View File
@@ -1,62 +1,42 @@
---
title: Init Systems
layout: default
nav_order: 3
nav_order: 4
has_children: true
---
# Init Systems
An **init system** is the first process that runs when your computer boots (PID 1). It's responsible for starting everything else — filesystems, networking, display manager, services, and more. Think of it as the foreman at a construction site: it doesn't do the work itself, but it makes sure everything gets started in the right order.
An **init system** is PID 1 — the first process started by the kernel during boot. It is responsible for initializing the system: mounting filesystems, starting networking, launching services, and managing the display manager. All other processes descend from PID 1.
Antergos NeXT lets you choose between **four** init systems during installation. This page explains each one so you can pick what suits you.
Antergos NeXT ships with **Dinit** as its default init system. The pages below describe the major init systems available on Artix Linux. To switch init on an installed system, see [Changing init](changing-init).
> Don't know what init to choose? **Stick with Dinit** — it's the default, it's fast, and it's what Antergos NeXT ships with. OpenRC is also available if you prefer a more traditional approach.
## The inits
## Available init systems
| Init | Philosophy | Complexity | Speed | Used by |
|------|-----------|------------|-------|---------|
| [Dinit](dinit) | Modern, dependency-based | Medium | Very fast | Antergos NeXT, Artix, new projects |
| [OpenRC](openrc) | Simple, modular, Unix-like | Low | Fast | Gentoo, Artix, Devuan, Alpine |
| [Runit](runit) | Minimal, reliable, Unix-like | Low | Very fast | Void Linux, AntiX |
| [S6](s6) | Supervision-based, secure | Medium-High | Very fast | New projects, embedded |
| [Dinit](dinit) | Modern, dependency-based, parallel | Medium | Very fast | Antergos NeXT (default), Chimera Linux, Artix |
| [OpenRC](openrc) | Traditional, modular, shell-script-based | Low | Fast | Gentoo, Artix, Devuan, Alpine |
| [Runit](runit) | Minimal, supervision-based, Unix-like | Low | Very fast | Void Linux, AntiX |
| [S6](s6) | Full supervision suite, modular | Medium-High | Very fast | Artix, embedded systems |
## Choosing an init
| If you want... | Pick... |
|----------------|---------|
| The fastest boot possible | Dinit or S6 |
| Something familiar and well-documented | OpenRC |
| The simplest, most Unix-like approach | Runit |
| Advanced supervision and process management | S6 |
## What they all have in common
## Shared characteristics
- **No systemd** — all four are independent implementations
- **Service scripts** — services are configured via files in `/etc/`
- **Runlevels** — groups of services that start together
- **Logging to files** — logs go to `/var/log/`, not `journalctl`
- **Service files** — services are configured via files in `/etc/`
- **Runlevels** — groups of services that start together under different conditions
- **Plain-text logging** — logs are written to `/var/log/`
## What's different
## Comparison
The main differences are in:
| Aspect | Dinit | OpenRC | Runit | S6 |
|--------|-------|--------|-------|-----|
| Service format | Declarative `.conf` files | Shell scripts | Executable `run` scripts | `run` scripts + s6-rc database |
| Dependencies | Automatic | Manual (`need`/`use`) | None | Automatic (s6-rc) |
| Supervision | Optional | No | Yes (runsv) | Yes (s6-supervise) |
| Logging | None built-in | syslog | Per-service (optional) | Per-service (s6-log) |
| Init script | None needed | `/etc/init.d/` | `/etc/runit/1/2/3` | s6-linux-init |
1. **How services are defined** — OpenRC uses shell scripts, Dinit uses a declarative config format, Runit uses executable scripts, S6 uses a supervision tree
2. **How they manage dependencies** — some handle it automatically, some leave it to you
3. **How they supervise processes** — some restart crashed services automatically, some don't
4. **How fast they boot** — Dinit and S6 are designed for parallel startup and are noticeably faster
## Switching init after installation
## Learning Linux with init systems
If you're new to Linux, learning about init systems is a great way to understand how your OS works under the hood. Here's why:
- **You'll learn about processes** — PID 1, service trees, process supervision
- **You'll learn about boot order** — what needs to start before what
- **You'll learn about dependencies** — why NetworkManager needs dbus, why dbus needs udev
- **You'll learn about logging** — where logs go, how to read them
- **You'll learn about runlevels** — why your system behaves differently in single-user mode vs normal boot
The best part? If you break something with services, you can always fix it — service management is much simpler than kernel config or package management.
> **Pro tip**: If you're dual-booting or using a VM, try all four inits. Install a test system with Dinit first, then reinstall with OpenRC, then Runit, then S6. See which one feels right.
See [Changing init](changing-init) for step-by-step instructions on switching to OpenRC, Runit, or S6 on an installed system.
+138 -32
View File
@@ -1,60 +1,166 @@
---
title: Installer
layout: default
nav_order: 4
nav_order: 5
---
# Calamares Installer
Uses [Calamares](https://codeberg.org/calamares/calamares) with two modes and custom branding.
Antergos NeXT uses [Calamares](https://codeberg.org/calamares/calamares) as its installer, with a custom launcher (`calamares-next`) that launches Calamares directly in online mode.
## Modes
## Install mode
| Mode | Description |
|------|-------------|
| **Offline** | Unpacks a KDE Plasma squashfs — no internet needed |
| **Online** | Netinstall with init system choice + desktop selection |
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.
The launcher (`calamares-next`) presents a mode picker before launching Calamares.
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.
## Key differences from upstream
## Fixed issues
### Audio on installed systems
The upstream `artix-pipewire-launcher` doesn't support dinit. The XDG autostart entry was also missing from the upstream package.
**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'`).
### SDDM theme showing Breeze
KDE's SDDM KCM writes a `kde_settings.conf` with `Current=breeze`, and the old `antergos` theme entry didn't win.
**Fix**: The installed system uses the **pixie** SDDM theme (`pixie-sddm-git`, Material Design 3). The `antergos-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.
### `/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`
- `services-artix` module instead of `services-systemd` (uses `artix-service` which detects init and runs the right commands)
- `removeuser` step removed, `postcfg` added
- `packagechooser` module compiled in (upstream skips it)
- `packagechooser` module compiled in (upstream Calamares skips it by default)
## Init system selector (online)
## Init system
Users choose from: **Dinit**, **OpenRC**, **Runit**, **S6**.
Antergos NeXT 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.
Implemented as a `packagechooser` instance with `method: netinstall-add` — the selected init pulls its associated packages.
## Desktop selector
## Desktop selector (online)
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.
Users choose from: **Plasma**, **Xfce**, **Cinnamon**, **MATE**, **LXQt**, **i3**, **Sway**, **Hyprland**, or **No Desktop**.
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.
Implemented as a separate `packagechooser` instance with `method: legacy`. "No Desktop" installs only the base system (TTY-only).
| Step | Module | Description |
|------|--------|-------------|
| 1 | `packagechooser@de` | Pick one DE (required, default: Plasma) |
| 2 | `packagechooser@dm` | Pick a display manager (required, default: SDDM) |
| 3 | `netinstall` | Refine package selection, add optional groups |
## Available desktops
### Available desktops
| Desktop | Artix Repo | Group/Packages |
|---------|------------|----------------|
| Plasma | world | `plasma` group |
| Xfce | galaxy | `xfce4` group |
| Cinnamon | galaxy | Individual packages |
| MATE | galaxy | `mate` + `mate-extra` groups |
| LXQt | galaxy | `lxqt` group |
| i3 | world | `i3` group |
| Sway | world | `sway` + related packages |
| Hyprland | world | `hyprland` |
| Desktop | Repo | Type | Notes |
|---------|------|------|-------|
| **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 + `antergos-next-desktop-settings` |
| **Xfce** | galaxy | Full DE | Lightweight. GTK-based. Individual packages; companion copy uses `xfce4` group |
| **Cinnamon** | galaxy | Full DE | Traditional layout. GNOME-based |
| **MATE** | galaxy | Full DE | GNOME 2 continuation. Individual packages; companion copy uses `mate` + `mate-extra` |
| **LXQt** | galaxy | Full DE | Lightweight Qt desktop. Individual packages; companion copy uses `lxqt` group |
| **i3** | world | Tiling WM | Keyboard-driven. Individual packages (i3-wm, i3blocks, i3lock, i3status). Requires `antergos-i3-config` for a usable experience |
| **Sway** | world | Tiling WM | i3-compatible Wayland compositor. Requires `antergos-sway-config` |
| **Hyprland** | world | Tiling WM | Dynamic Wayland compositor with eye candy. Requires `antergos-hyprland-config` |
| **COSMIC** | galaxy | Full DE | Rust-based desktop from System76. Alpha quality. Select **greetd** as display manager |
> **Note:** Budgie is not available in any Artix repo and has been removed from all configs and slideshows.
### Not available
## Offline mode
- **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?"
No packagechooser. Uses `unpackfs` to deploy a pre-built KDE Plasma squashfs, then `initcpiocfg` + `initcpio` for mkinitcpio configuration.
### Tiling WMs and default configs
i3, Sway, and Hyprland are offered as install options but will present a black screen on first boot without a configuration file. Config packages (`antergos-i3-config`, `antergos-sway-config`, `antergos-hyprland-config`) are available from the `[antergos-pkgs]` repository and are automatically included when the corresponding DE is selected.
If you prefer to supply your own config, you can deselect the config package in the netinstall refinement step.
## Display manager selector
The DM selector (`packagechooser@dm`) uses `method: netinstall-add`, with each display manager's packages defined inline in the chooser items. Available options:
- **SDDM** — KDE's QML-based display manager (default). Ships with `pixie-sddm-git` theme.
- **LightDM** — GTK-based, cross-desktop
- **LXDM** — Lightweight (LXDE)
- **greetd** — Minimal, recommended for COSMIC
- **LY** — TUI-based, minimal
The selected DM's inline group is appended to the netinstall tree via the `netinstallAdd` key, exactly like the DE selector.
## 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.
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`).
## GRUB configuration
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.
## Installation flow
The full Calamares sequence is defined in `live-overlay/etc/calamares-online/settings.conf`:
**Show phase:**
1. `welcome` — branding and language
2. `locale` — timezone, locale
3. `keyboard` — keyboard layout
4. `packagechooser@de` — desktop environment selection
5. `packagechooser@dm` — display manager selection
6. `netinstall` — package refinement, optional groups
7. `partition` — disk partitioning
8. `users` — user account creation
9. `summary` — confirmation
**Exec phase:**
10. `partition` — write partitions
11. `mount` — mount target
12. `basestrap` — bootstrap base system
13. `machineid` — generate machine ID
14. `packages` — install all selected packages (DE, DM, optional groups)
15. `fstab` — generate fstab
16. `locale` — apply locale
17. `keyboard` — apply keyboard config
18. `localecfg` — locale configuration
19. `luksopenswaphookcfg` — LUKS config
20. `luksbootkeyfile` — LUKS boot key
21. `initcpiocfg` — mkinitcpio config
22. `initcpio` — generate initramfs
23. `users` — create user
24. `displaymanager` — configure SDDM/greetd/etc.
25. `networkcfg` — network configuration
26. `hwclock` — hardware clock
27. `services-artix` — enable dinit services
28. `grubcfg` — write GRUB defaults
29. `bootloader` — install GRUB
30. `postcfg` — post-install configuration
31. `umount` — unmount and finish
**Show phase:**
32. `finished` — reboot prompt
## Launcher
The `calamares-next` script (`/usr/bin/calamares-next`) handles the installer boot flow:
1. **Notice** — explains why the offline mode was removed
2. **Welcome** — branded splash with Install button
3. **Configuration** — copies `calamares-online/settings.conf` to `/etc/calamares/settings.conf`
4. **Launch** — runs `calamares` with the online config
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.
Launched via the desktop entry in the live session: `Exec=sudo -E calamares-next`.
+53 -21
View File
@@ -1,46 +1,78 @@
---
title: Launcher
layout: default
nav_order: 10
nav_order: 11
---
# Calamares Launcher
The `calamares-next` script (`calamares-next.sh`) handles the installer boot flow.
The `calamares-next` script (`calamares-next.sh`) handles the installer boot flow. It is installed by the `calamares-branding-antergos-next` package to `/usr/bin/calamares-next`.
## Flow
## Boot flow
1. **Mode picker** — 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
1. **Notice** — displays a YAD information dialog explaining why the offline install mode was removed
2. **Welcome** — presents a branded splash screen with a single "Install" button
3. **Configuration** — copies `calamares-online/settings.conf` to `/etc/calamares/settings.conf` after removing any existing file (the removal is necessary to prevent `cp` from following symlinks)
4. **Launch** — runs `calamares -D8` with the online config; debug output is redirected to a log file at `~/antergos-install.log`
## Launcher location
## Desktop entries
Installed by `calamares-branding-antergos-next` to `/usr/bin/calamares-next`.
The live session ships two entries in `/usr/share/applications/`:
## Desktop entry
- `calamares.desktop` — the branded "Install Antergos NeXT" entry, launching `Exec=sudo -E calamares-next`
- `antergos-offline-install.desktop` — "Install Antergos NeXT (Offline — NO DE)", launching the experimental `Exec=sudo -E antergos-offline-install` script
`/usr/share/applications/calamares.desktop` in the live-overlay launches with:
Both use `sudo -E`, which preserves environment variables (`WAYLAND_DISPLAY`, `XDG_CURRENT_DESKTOP`, etc.) when launched from the SDDM session. Without it, Calamares may not detect the display server correctly. **Do not switch to `pkexec`** — it does not work in the live environment (tested and failed in previous releases).
```
Exec=sudo -E calamares-next
```
## Module config resolution
Note: `sudo -E` preserves environment variables (required for `WAYLAND_DISPLAY`, `XDG_CURRENT_DESKTOP`, etc. when launched from the SDDM session).
The online settings file specifies `modules-search: [ local ]`, which resolves to the directory containing the settings file itself. After `SetConfig()` copies the file to `/etc/calamares/settings.conf`, modules are loaded from `/etc/calamares/modules/`. Both `calamares/modules/` and `calamares-online/modules/` in the live-overlay belong to the **online** installer — there is no offline Calamares config. The active module configs at runtime are those under `calamares/modules/`; the `calamares-online/modules/` tree is the self-contained companion copy for the online flow.
## Mode picker (dialog)
## Calamares sequence
A simple `kdialog` or `zenity` dialog:
- **Offline** — No internet required, installs KDE Plasma from squashfs
- **Online** — Init system selector + DE selector via packagechooser, downloads packages from the internet
The installer runs two `packagechooser` instances in sequence, followed by the `netinstall` module:
| Step | Instance | Module Config | Method | Purpose |
|------|----------|---------------|--------|---------|
| 4 | `packagechooser@de` | `packagechooser_de.conf` | `netinstall-add` | Desktop environment picker (required, default Plasma) |
| 5 | `packagechooser@dm` | `packagechooser_dm.conf` | `netinstall-add` | Display manager picker (required, default SDDM) |
| 6 | `netinstall` | `netinstall.yaml` | — | Refine packages, add optional groups |
### How `netinstall-add` works
When the user selects a DE, `packagechooser@de` writes a group definition to the `netinstallAdd` global storage key. When the `netinstall` module loads, it reads this key and appends the DE's package group to the tree. This allows users to see and refine the packages for their chosen DE — for example, deselecting specific applications.
The DM selector (`packagechooser@dm`) works the same way — `netinstall-add` with each DM's packages defined inline in the chooser items. Selecting a DM appends its group to the netinstall tree. Both keys are read by the netinstall module's `onActivate()` method at runtime. See `NetInstallPage.cpp` in the Calamares source for details.
### Available DE groups
Each DE item in `packagechooser_de.conf` includes a `netinstall:` field with its full package list. The groups are mutually exclusive — selecting a new DE replaces the previously selected one in the netinstall tree. Once added, the group behaves identically to a group defined in `netinstall.yaml`: users can expand it, toggle subgroups, or remove individual packages.
## Pacman log capture
During installation, the launcher polls for the existence of a pacman log file within the chroot (at `/tmp/calamares-root-*/var/log/pacman.log`). When detected, a copy is written to `~/pacman-install.log`. No terminal windows are opened to display installation progress.
## Config switching
`SetConfig()` in `calamares-next.sh`:
1. Removes existing symlink at `/etc/calamares/settings.conf` (must `rm -f` first, not overwrite, or `cp` follows the symlink)
2. Copies the selected settings file
1. `rm -f` the existing settings file at `/etc/calamares/settings.conf`
2. `cp` the online settings file to `/etc/calamares/settings.conf`
3. Calamares reads the config on launch
## Hiding "Install Artix"
The live-overlay includes `calamares-config-switcher.desktop` with `NoDisplay=true` — this hides the upstream Artix launcher while keeping the binary available.
The `calamares-extensions` package ships an "Install Artix Linux" desktop entry (`calamares-config-switcher.desktop`). It is excluded from the ISO via `NoExtract = usr/share/applications/calamares-config-switcher.desktop` in `pacman.conf.d/iso-x86_64.conf`, so pacman never extracts it during the build. Our branded `calamares.desktop` in the live-overlay is the only installer entry.
## Module configs
Configs live in `live-overlay/etc/calamares/modules/` (overriding the copies installed by `calamares-branding-antergos-next`):
- `packagechooser_de.conf` — desktop environment selector using `method: netinstall-add`
- `packagechooser_dm.conf` — display manager selector using `method: netinstall-add` with inline DM groups
- `netinstall.yaml` / `netinstall.conf` — the netinstall package tree
- `services-artix.conf` — service enablement via `artix-service`
- `grubcfg.conf` — GRUB default configuration (`/etc/default/grub`)
- `bootloader.conf` — bootloader installation parameters
The remaining module configs (`initcpiocfg.conf`, `initcpio.conf`, `welcome.conf`, `basestrap.conf`, etc.) ship in the `calamares-branding-antergos-next` package under `/etc/calamares/modules/`.
+28 -25
View File
@@ -7,21 +7,20 @@ nav_order: 1
# OpenRC
**OpenRC** is one of four init systems available in Antergos NeXT (the default is **Dinit**). It's used by Gentoo, Artix Linux, Devuan, Alpine Linux, and other non-systemd distros. It's proven, well-maintained, and about as simple as an init system can get while still being feature-rich.
**OpenRC** is a traditional init system used by Gentoo, Artix Linux, Devuan, Alpine Linux, and other non-systemd distributions. It is well-established, actively maintained, and provides a balance of simplicity and feature completeness.
## systemd vs OpenRC at a glance
> **Note:** Earlier Antergos NeXT builds shipped OpenRC as an install-time option, but it conflicted with dinit during the installer flow (services didn't enable correctly). OpenRC is no longer an install-time option. On an already-installed system, manual switching via `rc-update add` works fine — see [Changing init](changing-init).
| | systemd | OpenRC |
|---|---|---|
| Philosophy | "One tool to rule them all" | "Do one thing well (Unix way)" |
| Logs | `journalctl` (binary logs) | Plain text files in `/var/log/` |
| Service mgmt | `systemctl start/stop/enable` | `rc-service start/stop`, `rc-update add/del` |
| Dependency | Parallel + automatic | Manual or explicit `need/use/before/after` |
| Config files | `.service` units (INI-like) | Shell scripts in `/etc/init.d/` |
| Size | ~80+ binaries, 500k+ lines | ~15 binaries, ~30k lines |
| Scope | PID 1 + logind + resolved + timedated + networkd + ... | Just PID 1 |
## Comparison with systemd
OpenRC is used by Gentoo, Artix Linux, Devuan, Alpine Linux, and other non-systemd distros. It's not as mainstream as systemd, but it's proven and well-maintained.
| Feature | systemd | OpenRC |
|---------|--------|--------|
| Log storage | Binary journal (`journalctl`) | Plain text files (`/var/log/`) |
| Service control | `systemctl start/stop/enable` | `rc-service start/stop`, `rc-update add/del` |
| Dependency handling | Automatic, parallel | Manual (`need`/`use`/`before`/`after`) |
| Configuration format | `.service` unit files (INI-like) | Shell scripts (`/etc/init.d/`) |
| Binary footprint | ~80+ binaries | ~15 binaries |
| Scope | Init + logind + resolved + timedated + networkd + more | Init only |
## What changes for you as a user?
@@ -68,28 +67,32 @@ Runlevels in OpenRC work like directories under `/etc/runlevels/`:
└── shutdown # Shutdown services
```
## Why did Antergos NeXT switch?
## Rationale for non-systemd
Three reasons:
Antergos NeXT uses Dinit as its init system. The switch away from systemd was motivated by three factors:
1. **systemd grew beyond an init system** — it now owns logind, resolved, timedated, networkd, homed, and more. It's no longer just PID 1. It's a full OS management suite with a scope that keeps expanding.
1. **Scope expansion** — systemd has grown beyond process supervision to include logind, resolved, timedated, networkd, homed, and other subsystems. This consolidates OS management into a single project with an expanding scope.
2. **systemd dropped SysV compatibility**version 260 (March 2026) removed `systemd-sysv-generator`, `rc-local.service`, and all legacy compatibility code. If your distro isn't 100% systemd-native, it breaks.
2. **SysV compatibility removal**systemd 260 (March 2026) removed `systemd-sysv-generator`, `rc-local.service`, and related legacy compatibility code, breaking distributions that were not fully systemd-native.
3. **systemd's age verification PR** [#40954](https://github.com/systemd/systemd/pull/40954) (merged Mar 2026) added `birthDate` fields to userdb JSON for age verification compliance. Optional today, precedent tomorrow. We don't want our OS to ask for your age.
3. **Age verification (PR [#40954](https://github.com/systemd/systemd/pull/40954))**merged March 2026, this added `birthDate` fields to userdb JSON for age verification compliance. While optional at the time of writing, the precedent raises concerns about future requirements.
OpenRC doesn't do any of that. It starts services and gets out of the way.
## When to use OpenRC
## Will things break?
OpenRC is suitable for users who want a well-documented, traditional init system with explicit dependency management. Its shell-script-based service files are straightforward to write and debug. Users migrating from Gentoo, Alpine, or Devuan will find OpenRC familiar.
Probably not. Most desktop software doesn't care about the init system. Browsers, editors, games, media players — they all work the same.
OpenRC does not include built-in process supervision. Users who want automatic service restart on crash should consider Runit or S6 instead.
Things that **do** care about systemd and won't work:
- `systemctl`, `journalctl`, `loginctl`, `timedatectl` — obviously
- GNOME (it dropped non-systemd support)
- Any `.service` file you try to run directly (they're systemd-native)
## Compatibility
But everything you actually use day-to-day? Works fine. And if you need to check logs, they're in `/var/log/messages` — plain text, no `journalctl` required.
Most desktop software is agnostic to the init system. Browsers, editors, games, and media players function identically regardless of what manages PID 1.
Software that does depend on systemd and will not function:
- `systemctl`, `journalctl`, `loginctl`, `timedatectl`
- GNOME (dropped non-systemd support upstream)
- Native `.service` unit files (systemd-only format)
Logs are written to plain text files under `/var/log/messages` and can be read with any text viewer.
## Learning more
+83 -30
View File
@@ -15,50 +15,103 @@ Files in `iso-profiles/antergos/live-overlay/` exist only in the live environmen
live-overlay/
├── etc/
│ ├── calamares/
│ │ ── settings.conf # -> symlinks to online or offline
├── calamares-offline/
│ │ ├── settings.conf # Offline install config (unpackfs)
│ │ └── modules/
│ │ ── ...
│ │ ── modules/ # Active runtime module configs (online installer)
│ ├── basestrap.conf # Package installation (operations incl. antergos-release)
│ │ ├── bootloader.conf
│ │ ├── displaymanager.conf # DM selector backend
│ │ ── finished.conf
│ │ ├── grubcfg.conf
│ │ ├── machineid.conf
│ │ ├── netinstall.conf / netinstall.yaml
│ │ ├── packagechooser_de.conf # Desktop environment selector
│ │ ├── packagechooser_dm.conf # Display manager selector
│ │ ├── packages.conf
│ │ ├── postcfg.conf
│ │ └── services-artix.conf
│ ├── calamares-online/
│ │ ├── settings.conf # Online install config (packagechooser)
│ │ └── modules/
│ │ ├── packagechooser_init.conf # Init system selector
│ │ ├── packagechooser_desktop.conf # DE selector
│ │ ── ...
└── sddm.conf.d/
└── kde_settings.conf # SDDM autologin + Wayland session
└── usr/
── share/
── applications/
├── calamares.desktop # Branded launcher
── calamares-config-switcher.desktop # Hidden (NoDisplay=true)
│ │ ├── settings.conf # Online install sequence
│ │ └── modules/ # Companion module copies (kept in sync)
│ │ ├── packagechooser_de.conf / packagechooser_dm.conf
│ │ ├── initcpio.conf / locale.conf / mount.conf / partition.conf
│ │ ── umount.conf / users.conf / welcome.conf
│ └── ... (mirrors the active set)
├── elogind/{logind.conf,sleep.conf}
│ ├── fstab / hostname / hosts
── issue / issue.live / os-release
── pam.d/su
│ ├── polkit-1/rules.d/90-live.rules # Live-session polkit bypass
── sddm.conf.d/
│ │ └── kde_settings.conf # SDDM autologin + Wayland session
│ ├── skel/Desktop/
│ │ ├── calamares.desktop # Install launcher on the desktop
│ │ └── antergos-offline-install.desktop
│ ├── sudoers.d/{g_wheel,u_root}
│ └── syslog-ng/syslog-ng.conf
├── usr/
│ ├── bin/systemd-machine-id-setup
│ ├── lib/calamares/modules/ # Custom calamares modules (basestrap, packages)
│ ├── local/bin/antergos-offline-install
│ └── share/applications/
│ ├── calamares.desktop # Branded launcher
│ └── antergos-offline-install.desktop
```
## Key files
### `etc/calamares/settings.conf`
### `etc/calamares/` and `etc/calamares-online/` — both online
Symlink — points to either `../calamares-offline/settings.conf` or `../calamares-online/settings.conf`, set by `calamares-next.sh`.
Both directories serve the **online** installer. There is no offline Calamares config in this overlay (and no offline Calamares mode at all — see [Installer](installer)).
- `etc/calamares/modules/` — the active module configs at runtime. After `calamares-next.sh` copies `calamares-online/settings.conf` to `/etc/calamares/settings.conf`, the `modules-search: [ local ]` directive resolves modules from this directory.
- `etc/calamares-online/` — the online install sequence (`settings.conf`) plus its own `modules/` tree. The two module trees are kept in sync; the `calamares-online/modules/` copies exist so the online flow has a self-contained config source. The copies under `calamares/modules/` are what actually loads at runtime.
### `etc/calamares-online/settings.conf`
Two `packagechooser` instances:
- `packagechooser@init` — init system (Dinit, OpenRC, Runit, S6) via netinstall-add
- `packagechooser@desktop` — DE selection via legacy method
The online install sequence. Defines two `packagechooser` instances:
### `etc/calamares-online/modules/packagechooser_init.conf`
- `packagechooser@de` — desktop environment selector using `method: netinstall-add`. Writes the selected DE's package group to the `netinstallAdd` global storage key. The DE group is dynamically appended to the netinstall tree when the netinstall module loads.
- `packagechooser@dm` — display manager selector using `method: netinstall-add` with inline DM groups. Appends the chosen DM group to the netinstall tree.
Init selector config. Uses `method: netinstall-add` — the selected init pulls its associated packages.
The `modules-search: [ local ]` directive resolves module configs from the same directory as the settings file (`/etc/calamares/modules/`).
### `etc/calamares-online/modules/packagechooser_desktop.conf`
> There is **no** `settings.conf` at `etc/calamares/` in this overlay. The `/etc/calamares/settings.conf` on a live system is a symlink installed by the `calamares-branding-antergos-next` package (`ln -sf ../calamares-offline/settings.conf`), and `calamares-next.sh` swaps it to the online config at runtime. The `calamares-offline` fallback is unused — the launcher always overwrites the symlink with the online config.
DE selector config. Uses `method: legacy` — returns the selected DE as a global storage value.
### `etc/calamares/modules/basestrap.conf`
### `etc/calamares-offline/settings.conf`
Controls package installation during bootstrapping. The `operations` list includes packages that must be installed with `--overwrite`. This is where `antergos-release` is listed to ensure it overwrites `/usr/lib/os-release` from the `filesystem` package.
No packagechooser. Uses `unpackfs` to deploy a pre-built KDE Plasma squashfs.
### `etc/calamares-online/modules/*.conf`
### `usr/share/applications/calamares-config-switcher.desktop`
Additional modules required for the online install flow:
Has `NoDisplay=true` to hide it from the app menu. The upstream Artix "Install Artix Linux" entry is suppressed this way.
| File | Purpose |
|------|---------|
| `initcpio.conf` | mkinitcpio generation |
| `locale.conf` | Locale and timezone |
| `mount.conf` | Filesystem mounting |
| `partition.conf` | Disk partitioning |
| `umount.conf` | Unmounting |
| `users.conf` | User creation |
| `welcome.conf` | Welcome page |
### `usr/share/applications/calamares.desktop`
The branded "Install Antergos NeXT" launcher (plus `antergos-offline-install.desktop` for the offline installer). Both run with `sudo -E`. The upstream Artix "Install Artix Linux" entry is hidden via `NoExtract` in `pacman.conf.d/iso-x86_64.conf` (see [Launcher](launcher)).
## Module configs removed
The following files were removed during the transition away from the init system selector:
- `packagechooser.conf` — the old init system selector (dinit/openrc/runit/s6). Replaced by `packagechooser_de.conf` (DE selector).
- `images/` — SVG icons for init systems (dinit.svg, openrc.svg, runit.svg, s6.svg). No longer needed.
These files were removed in commit `6ec25cc` (2026-07-24) when the DE selector landed.
## DE selector package lists
The two copies of `packagechooser_de.conf` differ in their package granularity:
- `calamares/modules/packagechooser_de.conf`**explicit package lists** (e.g. all 44 Plasma packages listed individually). Users see the full list in the netinstall refinement step.
- `calamares-online/modules/packagechooser_de.conf`**meta/group packages** (e.g. `plasma`, `xfce4`, `mate`). Simpler but less granular for refinement.
Both use the same DE IDs and `method: netinstall-add`. The active copy at runtime is the one in `calamares/modules/`.
+30 -20
View File
@@ -7,45 +7,55 @@ nav_order: 1
# Root Overlay
Files in `iso-profiles/antergos/root-overlay/` are merged into the root squashfs and become part of the installed system.
Files in `iso-profiles/antergos/root-overlay/` are merged into the live rootfs — the filesystem the ISO boots. root-overlay settings (os-release, issue, SDDM config, wallpapers) therefore apply to the live session too.
> **Important:** The Calamares online install does **not** copy root-overlay files to the installed system. The installed system is built fresh from packages via `basestrap`. Anything you want on installed systems must ship as a package (e.g. `antergos-release` for os-release, `antergos-layan-theme` for the SDDM theme), not live in root-overlay.
## Contents
```
root-overlay/
├── etc/
│ ├── os-release # Antergos NeXT branding
├── pacman.conf # Includes [antergos-pkgs] repo
│ ├── default/
│ └── grub # GRUB default options
│ ├── issue / issue.live # Login banners
│ ├── lsb-release # LSB metadata
│ ├── os-release # "Antergos NeXT" in the live session
│ ├── pacman.conf # Includes [antergos-pkgs] repo
│ ├── sddm.conf # SDDM general config (Wayland compositor, theme dirs)
│ ├── sddm.conf.d/
│ │ └── kde_settings.conf # SDDM theme + Wayland session
── skel/
── .config/
└── autostart/
└── antergos-wallpaper.desktop # One-shot wallpaper setter
└── usr/
└── local/
└── bin/
└── set-antergos-wallpaper.sh # Wallpaper script
│ │ └── kde_settings.conf # SDDM autologin + theme (live only)
── skel/.config/autostart/
── antergos-wallpaper.desktop # First-login wallpaper setter
└── pipewire.desktop # PipeWire autostart
└── xdg/autostart/
│ └── antergos-wallpaper.desktop # System-wide wallpaper autostart
├── usr/
│ ├── bin/systemd-machine-id-setup # Keeps live machine-id stable
│ ├── lib/os-release # Mirrors etc/os-release
│ ├── local/bin/set-antergos-wallpaper.sh
│ └── share/
│ ├── icons/hicolor/{128x128,256x256}/apps/antergos-logo.png
│ ├── pixmaps/antergos-logo.png
│ └── plasma/wallpapers/org.kde.image/contents/config/main.xml
```
## Key files
### `etc/os-release`
Identifies the system as "Antergos NeXT" to tools, installers, and the login manager.
### `etc/pacman.conf`
Adds the `[antergos-pkgs]` custom repo so installed systems can receive updates.
Adds the `[antergos-pkgs]` custom repo so the live session can install our packages during the Calamares online install. `SigLevel = Optional TrustAll` is needed because our packages are not signed with official Artix keys.
### `etc/sddm.conf.d/kde_settings.conf`
Sets the SDDM session to `plasma.desktop` (Wayland) by default.
Sets the live session to **autologin as user `antergos`** with `Session=plasma.desktop` (Wayland). Also sets `HaltCommand`/`RebootCommand` to loginctl (dinit-compatible) and the theme to `Current=antergos` (the bundled Antergos theme).
> This file only affects the **live session**. On installed systems the `antergos-layan-theme` package owns `kde_settings.conf` with `Current=pixie` — see [Installer — SDDM theme](installer).
### `etc/skel/.config/autostart/antergos-wallpaper.desktop`
Runs the wallpaper setter on first login. Uses `X-KDE-autostart-phase=2` to run after Plasma has initialized.
Runs the wallpaper setter on first login. Uses `X-KDE-autostart-phase=2` so it runs after Plasma has initialized — necessary because Plasma overwrites the wallpaper config from `/etc/skel/` on first login. A matching copy lives at `etc/xdg/autostart/` for system-wide autostart.
### `usr/local/bin/set-antergos-wallpaper.sh`
Applies the wallpaper via `plasma-apply-wallpaperimage` and creates `~/.config/antergos-wallpaper-set` marker to prevent re-running.
Configures the **Smart Video Wallpaper Reborn** Plasma plugin (`luisbocanegra.smart.video.wallpaper.reborn`) via `qdbus6` to play `/usr/share/backgrounds/antergos/antergos-wallpaper.mp4` muted, then writes `~/.config/antergos-wallpaper-set` as a marker so it only runs once. See [Wallpapers](wallpapers).
+20 -11
View File
@@ -1,28 +1,37 @@
---
title: Overlays
layout: default
nav_order: 11
nav_order: 12
has_children: true
---
# Overlays
Two directories under `iso-profiles/antergos/` control what goes into the ISO.
Two directories under `iso-profiles/antergos/` control what goes into the ISO:
```
iso-profiles/antergos/
├── profile.yaml
├── root-overlay/ # → rootfs (squashfs)
└── live-overlay/ # → live environment (initramfs)
├── profile.yaml # Package lists, services, compression
├── root-overlay/ # → live rootfs — config for the live session
└── live-overlay/ # → live environment — installer configs and tools
```
## How overlays work
- `root-overlay/` files are merged into the root squashfs — they become part of the installed system
- `live-overlay/` files are copied into the live environment only — they're not present after installation
- Overlays are **self-contained** (no symlinks to external directories) so the repo builds standalone
- Live-overlay files are **copied** via `cp -LR` in `make_livefs()`, not overlay-mounted. Deleting a file from live-overlay exposes the package version underneath
- **root-overlay** files are merged into the live rootfs — the filesystem the ISO boots. Settings here (os-release, SDDM, wallpapers) affect the live session.
- **live-overlay** files are merged into the live environment on top. Calamares configs, the launcher desktop entries, and live-only tools live here.
- **Neither is copied to the installed system.** The Calamares online install builds the target system fresh from packages via `basestrap`. Persistent configuration must ship as a package (`antergos-release`, `antergos-layan-theme`, etc.).
- Overlays are **self-contained** (no symlinks to external directories) so the repo builds standalone.
> **Disclaimer:** No symlinks were harmed in the making of this ISO. Well, maybe a few. We killed some.
## Important: overlay behavior
> Also: this ISO is 100% systemd-free. Not even a trace. We checked. Twice.
Live-overlay files are **copied** via `cp -LR` in `make_livefs()`, not overlay-mounted. This means:
- You **cannot** hide a file from a package by placing an empty file in live-overlay — the package version still exists underneath
- To hide a desktop entry shipped by a package, use `NoExtract` in `pacman.conf.d/iso-x86_64.conf` (this is how the Artix "Install Artix Linux" entry is suppressed)
- To replace a file, your overlay version wins during copy
## Related pages
- [Root Overlay](overlay-root) — live rootfs config, SDDM, wallpapers
- [Live Overlay](overlay-live) — installer configs, launcher, offline installer
+53 -26
View File
@@ -1,22 +1,12 @@
---
title: Packages
layout: default
nav_order: 5
nav_order: 6
---
# Custom Packages
Custom PKGBUILDs live in the [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo.
## Package list
| Package | Purpose |
|---------|---------|
| `calamares` | Built with `packagechooser` module enabled, `dracut`/`initramfs` modules skipped |
| `calamares-branding-antergos-next` | Branding files: `branding.desc`, `show.qml`, `settings.conf`, `packagechooser.conf`, `initcpiocfg.conf`, `initcpio.conf`, `calamares-next.sh` |
| `antergos-wallpapers` | Default wallpapers installed to `/usr/share/wallpapers/` (KDE) and `/usr/share/backgrounds/` (other DEs) |
| `linux-next` | Custom kernel based on `linux-artix` |
| `winver` | "About Antergos NeXT" dialog built with KF6 + Qt6 |
Custom PKGBUILDs live in the [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo. Built and published via CI to GitHub Pages as a pacman repository.
## Repo setup
@@ -26,33 +16,70 @@ SigLevel = Optional TrustAll
Server = https://antergos-next.github.io/antergos-packages
```
## Build system
## Package list
Packages are built and published via CI. The build order is defined in `packages.yaml`. AUR packages (`yay`, `downgrade`) are included with retry logic for transient clone failures.
Built and published in this order (from `packages.yaml` in `antergos-packages`):
## Index
The package index (`index.db`, `index.files`) is generated with timestamps in **Europe/Berlin** timezone. See `generate-index.py`.
| Package | Purpose |
|---------|---------|
| `antergos-lsb-release` | LSB release identification |
| `antergos-next-desktop-settings` | Default desktop settings for the live session |
| `antergos-next-keyring` | GPG keyring for the `[antergos-pkgs]` repo |
| `antergos-next-mirrorlist` | Mirror list for `[antergos-pkgs]` |
| `antergos-release` | `/usr/lib/os-release` with "Antergos NeXT" identification |
| `pixie-sddm-git` | Material Design 3 SDDM theme (from AUR) |
| `antergos-wallpapers` | Default wallpapers for KDE and other DEs |
| `antergos-welcome` | "About Antergos NeXT" welcome app (KF6 + Qt6) |
| `antergos-grub-theme` | GRUB boot theme |
| `antergos-live` | Live session meta package (per-init: `antergos-live-base`, `antergos-live-dinit`, `antergos-live-openrc`) |
| `pipewire` (forked) | Patched `artix-pipewire-launcher` for dinit support + XDG autostart entry |
| `calamares` | Built with `packagechooser` module enabled |
| `calamares-branding-antergos-next` | Branding: slideshow, `branding.desc`, launcher script, packagechooser configs |
| `antergos-xfce-theme` | Xfce theme |
| `downgrade` | AUR package (downgrade helper) |
| `yay` | AUR helper |
| `antergos-layan-theme` | Layan theme suite: KDE configs, Kvantum, SDDM theme, plasmoids, video wallpaper |
| `tela-circle-icon-theme-git` | Icon theme (from AUR) |
| `kwin-zones` | KWin window tiling zones |
| `oh-my-posh-bin` | Shell prompt (from AUR) |
| `pacseek` | Package search GUI (from AUR) |
| `antergos-i3-config` | i3 configuration |
| `antergos-sway-config` | Sway configuration |
| `antergos-hyprland-config` | Hyprland configuration |
## PKGBUILD notes
### calamares
- `_skip_modules` includes `dracut`, `initramfs`, `initramfscfg` — these are Artix/systemd-holdovers not needed on OpenRC/mkinitcpio
- `-DCMAKE_DISTRIBUTION_NAME` is a **no-op** — Calamares ignores it. The "for <distro>" text comes from `versionedName` in the active branding component at runtime
- `_skip_modules` includes `dracut`, `initramfs`, `initramfscfg` — these are systemd-holdovers not needed on Artix (uses mkinitcpio)
- **`-DCMAKE_DISTRIBUTION_NAME` is a no-op** — Calamares ignores it completely. The "for \<distro\>" text in the about dialog comes from `versionedName` in the active branding component at runtime. Do NOT add this flag.
### calamares-branding-antergos-next
- `packagechooser.conf` provides a DE-only fallback for standalone use
- `settings_offline.conf` / `settings_online.conf` override live-overlay settings at install time
- `calamares-next.sh` `SetConfig()` must remove the symlink before copying config, or it follows the link and overwrites the wrong file
- Ships `calamares-next.sh` — installed as `/usr/bin/calamares-next`, the online installer launcher
- Ships the online settings file as `/etc/calamares-online/settings.conf`. It also ships an `settings_offline.conf` installed as `/etc/calamares-offline/settings.conf` (with `/etc/calamares/settings.conf` symlinked to it by default) — but this is **unused**: the launcher's `SetConfig()` always replaces it with the online config at runtime. Calamares is online-only.
- Ships module configs to `/etc/calamares/modules/`: `unpackfs.conf`, `initcpiocfg.conf`, `initcpio.conf`, `netinstall.conf`, `netinstall.yaml`, `packagechooser_de.conf`, `packagechooser_dm.conf`, `services-artix.conf`, `welcome.conf`
- Also overwrites `/usr/share/calamares/branding/default/` so the Artix default branding can't sneak in
- `SetConfig()` must `rm -f` the symlink at `/etc/calamares/settings.conf` before copying, otherwise `cp` follows the symlink and overwrites the wrong file
### pipewire (forked)
- Ships `pipewire.desktop` at `/etc/xdg/autostart/` so installed systems get the XDG autostart entry
- Patches `artix-pipewire-launcher`: sets `dinit|runit|s6) SUPPORT='YES'` (upstream only supported `openrc`/`systemd`). Without this, the launcher silently exits on dinit systems and pipewire never starts.
### antergos-wallpapers
- Installs to `/usr/share/wallpapers/antergos-wallpaper/` with `metadata.desktop` for KDE picker support
- Installs to `/usr/share/wallpapers/antergos-wallpaper/contents/images/` with `metadata.desktop` for KDE picker support
- Also available at `/usr/share/backgrounds/antergos/` for other DEs
- Current wallpaper: GNOME Adwaita Morning (`adwaita-morning.webp`, CC BY-SA 3.0 by Jakub Steiner)
- Ships three wallpapers: original Antergos PNG (default), Adwaita Morning, and antergos-darkest-hour
## File conflict notes
## File conflicts
`calamares` and `calamares-branding-antergos-next` both claim `/usr/share/calamares/branding/default/branding.desc` and `show.qml`. Resolved at ISO build time via `--overwrite='*'` in repo's `./buildiso`.
| Package 1 | Package 2 | File | Resolution |
|-----------|-----------|------|------------|
| `calamares` | `calamares-branding-antergos-next` | `/usr/share/calamares/branding/default/branding.desc`, `show.qml` | `--overwrite='*'` in `./buildiso` |
| `filesystem` | `antergos-release` | `/usr/lib/os-release` | `antergos-release` in basestrap operations list (uses `--overwrite`) |
## Build system
Packages are built and published via CI in the `antergos-packages` repo. Build order is defined in `packages.yaml`. AUR packages (`yay`, `downgrade`, `pixie-sddm-git`, etc.) are included with retry logic for transient clone failures. The repo index is generated as `antergos-pkgs.db` / `antergos-pkgs.files` under `antergos-pkgs/os/x86_64/` and published to GitHub Pages, served by `repo-add`.
+3 -10
View File
@@ -92,18 +92,11 @@ exec svlogd -tt /var/log/sshd
| Boot speed | Fast | Very fast |
| Complexity | Low | Low |
## Should you use it?
## When to use Runit
Pick Runit if:
- You want the simplest possible supervision system
- You like the daemontools model (one script per service)
- You want auto-restart on crash
- You're coming from Void Linux and want the same experience
Runit is suitable for users who want a minimal supervision-based init with automatic service restart on crash. Its service model (one executable `run` script per service) is straightforward and requires no dependency declarations.
Stick with OpenRC if:
- You need dependency management
- You prefer shell scripts with start/stop/status functions
- You want something more mainstream
Users coming from Void Linux will find Runit familiar. For users who need dependency management between services, OpenRC or Dinit may be more appropriate.
## Learn more
+3 -12
View File
@@ -27,7 +27,6 @@ Unlike runit, s6 has a real dependency-based service manager (`s6-rc`) with decl
## Who uses it?
- **Artix Linux** — available as an alternative init
- **Chimera Linux** — uses s6 as its init system
- **Docker images** — s6-overlay is popular for container supervision
- Embedded systems, minimal Linux builds
@@ -105,19 +104,11 @@ s6-svc -u /run/service/sshd
| Complexity | Low | Medium-High |
| Flexibility | Moderate | Very high (modular) |
## Should you use it?
## When to use S6
Pick S6 if:
- You want the most powerful non-systemd init
- You need dependency-based service management
- You like the idea of a compiled service database
- You value process supervision and auto-restart
- You're comfortable with a steeper learning curve
S6 is suitable for advanced users who want full process supervision with dependency-based service management and per-service logging. It offers the most features of any non-systemd init but has a steeper learning curve than OpenRC or Runit.
Stick with OpenRC if:
- You want something simple and well-documented
- You need shell-script-based services you can debug easily
- You don't need process supervision or dependency resolution
Users who need supervision, logging, and dependency resolution without systemd will find S6 the most capable option. Users who prefer simplicity may prefer OpenRC or Dinit.
## Learn more
+39
View File
@@ -0,0 +1,39 @@
---
title: System Requirements
layout: default
nav_order: 3
---
# System Requirements
## Minimum
- **CPU**: Any 64-bit x86 processor, 2 or more cores
- **RAM**: 4 GB (sufficient for desktop use with a web browser open)
- **Storage**: 30 GB available space
- **GPU**: OpenGL 2.0 capable integrated or discrete graphics
- **Display**: 1024×768 resolution
- **Firmware**: UEFI (recommended), Legacy BIOS supported
## Recommended
- **CPU**: Quad-core 64-bit x86 or better
- **RAM**: 8 GB
- **Storage**: 64 GB or larger SSD
- **GPU**: Any modern GPU with open-source drivers (AMD, Intel) or NVIDIA with proprietary drivers
- **Display**: 1920×1080 or higher, 16:9 aspect ratio recommended
- **Firmware**: UEFI
## Notes
### RAM usage
A fresh KDE Plasma 6 session with the Antergos NeXT theme uses approximately 1.5 GB of RAM at idle. This accounts for the desktop shell, background services (NetworkManager, CUPS, Bluetooth, cronie, syslog-ng, pipewire), and the compositor. Opening a web browser adds roughly 500 MB1 GB depending on tabs.
### Display aspect ratio
The default Plasma theme uses icon assets designed for widescreen displays. On 4:3 or narrower aspect ratios, some panel icons may clip. The GRUB theme (Layan) also targets 16:9 and may appear misaligned on narrower displays.
### GPU acceleration
Wayland compositing benefits from GPU acceleration. Systems without a supported GPU fall back to software rendering via LLVMpipe, which increases CPU load and reduces responsiveness. Install the proprietary NVIDIA driver from the Artix `system` repository if using an NVIDIA GPU.
+21 -22
View File
@@ -1,46 +1,45 @@
---
title: Wallpapers
layout: default
nav_order: 9
nav_order: 13
---
# Wallpapers
The `antergos-wallpapers` package provides default wallpapers for the live session and installed system.
The live session and installed system use a **video wallpaper**`/usr/share/backgrounds/antergos/antergos-wallpaper.mp4` — played by the **Smart Video Wallpaper Reborn** Plasma plugin.
## Current wallpaper
The video ships from the **`antergos-layan-theme`** package (`depends=('kvantum' 'yakuake' 'antergos-wallpapers' 'mpv')`). The same package installs the Smart Video Wallpaper Reborn plugin into the user's `~/.local/share/plasma/wallpapers/` from its `Configs/Home/` tree.
GNOME **Adwaita Morning** (`adwaita-morning.webp`) — 7680×4320, CC BY-SA 3.0 by Jakub Steiner / GNOME Project.
The `antergos-wallpapers` package provides the still images:
- **antergos-wallpaper.png** — the original Antergos wallpaper, sourced from the [Antergos/wallpapers](https://github.com/Antergos/wallpapers) repo. GPL-3.0.
- **adwaita-morning.webp** — GNOME Adwaita Morning (7680×4320, CC BY-SA 3.0 by Jakub Steiner)
- **antergos-darkest-hour.jpg** — KDE Plasma variant (GPL-2+)
## Installation paths
| Path | Purpose |
|------|---------|
| `/usr/share/wallpapers/antergos-wallpaper/` | KDE wallpaper picker (requires `metadata.desktop`) |
| `/usr/share/backgrounds/antergos/` | Other DEs / fallback |
| `/usr/share/backgrounds/antergos/` | Default wallpaper location + video wallpaper |
| `/usr/share/wallpapers/antergos-wallpaper/contents/images/` | KDE wallpaper picker (still images) |
| `/usr/share/antergos/backgrounds/` | Legacy path |
| `/usr/share/icons/hicolor/*/apps/antergos-logo.png` | App icon |
## How it appears in KDE
KDE's wallpaper picker scans `/usr/share/wallpapers/` for directories containing a `metadata.desktop` file. The `metadata.desktop` format:
```ini
[Wallpaper]
name=Antergos NeXT
filename=adwaita-morning.webp
```
The KDE plugin names are `antergos-wallpaper` and `antergos-darkest-hour`, each with their own `metadata.desktop`.
## Set on first login
Since Plasma overwrites `/etc/skel/.config/plasma-org.kde.plasma.desktop-appletsrc` on first login, the wallpaper is applied via a one-shot autostart script:
Plasma overwrites `/etc/skel/.config/plasma-org.kde.plasma.desktop-appletsrc` on first login, so putting the wallpaper in skel doesn't work. Instead, a one-shot autostart script handles it:
1. `/usr/local/bin/set-antergos-wallpaper.sh`runs `plasma-apply-wallpaperimage`, creates marker file `~/.config/antergos-wallpaper-set`
2. `~/.config/autostart/antergos-wallpaper.desktop` — calls the script with `X-KDE-autostart-phase=2`
1. `/usr/local/bin/set-antergos-wallpaper.sh`configures the Smart Video Wallpaper Reborn plugin (`luisbocanegra.smart.video.wallpaper.reborn`) via `qdbus6`, pointing it at `/usr/share/backgrounds/antergos/antergos-wallpaper.mp4` muted, then creates the marker file `~/.config/antergos-wallpaper-set`
2. `~/.config/autostart/antergos-wallpaper.desktop` (from skel, plus a copy in `/etc/xdg/autostart/`) — calls the script with `X-KDE-autostart-phase=2`
The marker file prevents the script from running on subsequent logins.
## Customizing
To replace the wallpaper, update:
- `packages/antergos-wallpapers/PKGBUILD` (source + checksum)
- `packages/antergos-wallpapers/adwaita-morning.webp`
- `packages/antergos-wallpapers/metadata.desktop` (if changing name)
To replace the wallpaper, update the `antergos-wallpapers` package:
- `packages/antergos-wallpapers/PKGBUILD` — update source URL and checksum
- `packages/antergos-wallpapers/<image-file>` — new wallpaper image
- `packages/antergos-wallpapers/metadata.desktop` — update name if changing
Rebuild the package and push to the [antergos-packages](https://github.com/Antergos-NeXT/antergos-packages) repo.
@@ -1,21 +0,0 @@
---
efiBootLoader: "grub"
kernel: "/vmlinuz-linux-x86_64"
img: "/initramfs-linux-x86_64.img"
fallback: "/initramfs-linux-x86_64-fallback.img"
timeout: "10"
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubProbe: "grub-probe"
efiBootMgr: "efibootmgr"
installEFIFallback: true
efiBootloaderId: "Antergos"
# installHybridGRUB: false
# efiBootLoaderVar: "packagechooser_bootloader"
@@ -1,10 +0,0 @@
---
displaymanagers:
- lightdm
- gdm
- mdm
- sddm
- lxdm
- slim
basicSetup: false
@@ -1,6 +0,0 @@
---
restartNowMode: user-unchecked
restartNowCommand: "loginctl reboot"
notifyOnFinished: false
@@ -1,51 +0,0 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Create, overwrite or update /etc/default/grub in the target system.
#
# Write lines to /etc/default/grub (in the target system) based
# on calculated values and the values set in the *defaults* key
# in this configuration file.
#
# Calculated values are:
# - GRUB_DISTRIBUTOR, branding module, *bootloaderEntryName* (this
# string is sanitized, and see also setting *keep_distributor*)
# - GRUB_ENABLE_CRYPTODISK, based on the presence of filesystems
# that use LUKS
# - GRUB_CMDLINE_LINUX_DEFAULT, adding LUKS setup and plymouth
# support to the kernel.
---
# If set to true, always creates /etc/default/grub from scratch even if the file
# already existed. If set to false, edits the existing file instead.
overwrite: false
# If set to true, prefer to write files in /etc/default/grub.d/
# rather than the single file /etc/default/grub. If this is set,
# Calamares will write /etc/default/grub.d/00Calamares instead.
prefer_grub_d: false
# If set to true, an **existing** setting for GRUB_DISTRIBUTOR is
# kept, not updated to the *bootloaderEntryName* from the branding file.
# Use this if the GRUB_DISTRIBUTOR setting in the file is "smart" in
# some way (e.g. uses shell-command substitution).
keep_distributor: false
# The default kernel params that should always be applied.
# This is an array of strings. If it is unset, the default is
# `["quiet"]`. To avoid the default, explicitly set this key
# to an empty list, `[]`.
kernel_params: [ "quiet" ]
# Default entries to write to /etc/default/grub if it does not exist yet or if
# we are overwriting it.
#
defaults:
GRUB_TIMEOUT: 5
GRUB_DEFAULT: "saved"
GRUB_DISABLE_SUBMENU: true
GRUB_TERMINAL_OUTPUT: "console"
GRUB_DISABLE_RECOVERY: true
# Set to true to force defaults to be used even when not overwriting
always_use_defaults: false
@@ -1,5 +0,0 @@
---
systemd: false
dbus: false
dbus-symlink: false
entropy-copy: false
@@ -1,5 +0,0 @@
---
qmlSearch: branding
qmlFilename: minimal-info.qml
qmlLabel:
minimal-info: "About This Edition"
@@ -1,32 +0,0 @@
efi:
mountPoint: "/boot/efi"
recommendedSize: 512MiB
minimumSize: 256MiB
label: "EFI"
userSwapChoices:
- none # Create no swap, use no swap
- small # Up to 4GB
- suspend # At least main memory size
- file # To swap file instead of partition
swapPartitionName: swap
luksGeneration: luks1
drawNestedPartitions: true
alwaysShowPartitionLabels: true
initialPartitioningChoice: none
initialSwapChoice: suspend
defaultPartitionTableType: msdos
requiredPartitionTableType:
- msdos
- gpt
defaultFileSystemType: "ext4"
availableFileSystemTypes: ["ext4","btrfs","f2fs","xfs"]
@@ -1,13 +0,0 @@
---
# set at iso build time
initsys: none
user-services:
- name: dbus
action: enable
- name: pipewire
action: enable
- name: pipewire-pulse
action: enable
- name: wireplumber
action: enable
@@ -1,24 +0,0 @@
---
command: artix-service
services:
- name: "acpid"
action: "enable"
- name: "bluetoothd"
action: "enable"
- name: "cronie"
action: "enable"
- name: "cupsd"
action: "enable"
- name: "dbus"
action: "enable"
- name: "dhcpcd"
action: "enable"
- name: "NetworkManager"
action: "enable"
- name: "power-profiles-daemon"
action: "enable"
- name: "sddm"
action: "enable"
- name: "syslog-ng"
action: "enable"
@@ -1,5 +0,0 @@
---
unpack:
- source: "/run/artix/bootmnt/LiveOS/rootfs.img"
sourcefs: 'squashfs'
destination: ""
@@ -1,49 +0,0 @@
---
defaultGroups:
- name: users
must_exist: true
system: true
- lp
- video
- network
- storage
- name: wheel
must_exist: false
system: true
- audio
- power
- log
- optical
- network
- scanner
autologinGroup: autologin
doAutologin: false
sudoersGroup: wheel
setRootPassword: true
doReusePassword: false
passwordRequirements:
nonempty: true
minLength: 4 # Password at least this many characters
maxLength: -1 # Password at most this many characters
libpwquality:
- minlen=4
- minclass=0
allowWeakPasswords: true
allowWeakPasswordsDefault: true
userShell: /bin/bash
setHostname: EtcFile
writeHostsFile: true
user:
shell: /bin/bash
forbidden_names: [ root ]
@@ -1,19 +0,0 @@
---
showSupportUrl: true
showKnownIssuesUrl: true
showReleaseNotesUrl: true
requirements:
requiredStorage: 5.5
requiredRam: 1.0
internetCheckUrl: https://www.artixlinux.org
check:
- storage
- ram
- power
- internet
- root
required:
- storage
- ram
- root
@@ -1,51 +0,0 @@
---
modules-search: [ local ]
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- users
- summary
- exec:
- partition
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- luksopenswaphookcfg
- luksbootkeyfile
- initcpiocfg
- initcpio
- users
- displaymanager
- networkcfg
- hwclock
- services-artix
- grubcfg
- bootloader
- postcfg
- umount
- show:
- finished
branding: antergos-next-minimal
prompt-install: false
dont-chroot: false
oem-setup: false
disable-cancel: false
disable-cancel-during-exec: false
hide-back-and-next-during-exec: false
quit-at-end: false
@@ -1,37 +0,0 @@
---
backend: pacman
pacman:
num_retries: 0
disable_download_timeout: false
needed_only: false
handle_keyrings: true
copy_pacconf: true
requirements:
- dest: /etc
mode: "0o755"
- dest: /var
mode: "0o755"
- dest: /var/cache
mode: "0o755"
- dest: /var/cache/pacman
mode: "0o755"
- dest: /var/cache/pacman/pkg
mode: "0o755"
- dest: /var/lib
mode: "0o755"
- dest: /var/lib/pacman
mode: "0o755"
keyrings:
- artix
- antergos-next
base_init: elogind
operations:
- install:
- base
- antergos-next-keyring
- antergos-release
- antergos-grub-theme
- xlibre-xserver
@@ -1,21 +0,0 @@
---
efiBootLoader: "grub"
kernel: "/vmlinuz-linux-x86_64"
img: "/initramfs-linux-x86_64.img"
fallback: "/initramfs-linux-x86_64-fallback.img"
timeout: "10"
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubProbe: "grub-probe"
efiBootMgr: "efibootmgr"
installEFIFallback: true
efiBootloaderId: "Antergos"
# installHybridGRUB: false
# efiBootLoaderVar: "packagechooser_bootloader"
@@ -1,10 +0,0 @@
---
displaymanagers:
- lightdm
- gdm
- mdm
- sddm
- lxdm
- slim
basicSetup: false
@@ -1,6 +0,0 @@
---
restartNowMode: user-unchecked
restartNowCommand: "loginctl reboot"
notifyOnFinished: false
@@ -1,21 +0,0 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
---
# Create /etc/default/grub from scratch.
overwrite: true
prefer_grub_d: false
keep_distributor: false
kernel_params: [ "quiet", "splash" ]
defaults:
GRUB_TIMEOUT: 5
GRUB_DEFAULT: "saved"
GRUB_DISABLE_SUBMENU: true
GRUB_TERMINAL_OUTPUT: "console"
GRUB_DISABLE_RECOVERY: true
GRUB_THEME: "/usr/share/grub/themes/antergos/theme.txt"
always_use_defaults: false
@@ -1,4 +0,0 @@
---
kernel: all
be_unsafe: false
@@ -1,7 +0,0 @@
---
localeGenPath: /etc/locale.gen
geoip:
style: "json"
url: "https://geoip.kde.org/v1/calamares"
selector: ""
@@ -1,5 +0,0 @@
---
systemd: false
dbus: false
dbus-symlink: false
entropy-copy: false
@@ -1,5 +0,0 @@
---
qmlSearch: branding
qmlFilename: minimal-info.qml
qmlLabel:
minimal-info: "About This Edition"
@@ -1,131 +0,0 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Mount filesystems in the target (generally, before treating the
# target as a usable chroot / "live" system). Filesystems are
# automatically mounted from the partitioning module. Filesystems
# listed here are **extra**. The filesystems listed in *extraMounts*
# are mounted in all target systems.
---
# Extra filesystems to mount. The key's value is a list of entries; each
# entry has five keys:
# - device The device node to mount
# - fs (optional) The filesystem type to use
# - mountPoint Where to mount the filesystem
# - options (optional) An array of options to pass to mount
# - efi (optional) A boolean that when true is only mounted for UEFI installs
#
# The device is not mounted if the mountPoint is unset or if the fs is
# set to unformatted.
#
extraMounts:
- device: proc
fs: proc
mountPoint: /proc
- device: sys
fs: sysfs
mountPoint: /sys
- device: /dev
mountPoint: /dev
options: [ bind ]
- device: tmpfs
fs: tmpfs
mountPoint: /run
- device: /run/udev
mountPoint: /run/udev
options: [ bind ]
- device: efivarfs
fs: efivarfs
mountPoint: /sys/firmware/efi/efivars
efi: true
# Btrfs subvolumes to create if root filesystem is on btrfs volume.
# If *mountpoint* is mounted already to another partition, it is ignored.
# Separate subvolume for swapfile is handled separately and automatically.
#
# It is possible to prevent subvolume creation -- this is likely only relevant
# for the root (/) subvolume -- by giving an empty string as a subvolume
# name. In this case no subvolume will be created.
#
btrfsSubvolumes:
- mountPoint: /
subvolume: /@
# As an alternative:
#
# subvolume: ""
- mountPoint: /home
subvolume: /@home
- mountPoint: /root
subvolume: /@root
- mountPoint: /srv
subvolume: /@srv
- mountPoint: /var/cache
subvolume: /@cache
- mountPoint: /var/log
subvolume: /@log
- mountPoint: /var/tmp
subvolume: /@tmp
# The name of the btrfs subvolume holding the swapfile. This only used when
# a swapfile is selected and the root filesystem is btrfs
#
btrfsSwapSubvol: /@swap
# The mount options used to mount each filesystem.
#
# filesystem contains the name of the filesystem or on of three special
# values, "default", efi" and "btrfs_swap". The logic is applied in this manner:
# - If the partition is the EFI partition, the "efi" entry will be used
# - If the fs is btrfs and the subvolume is for the swapfile,
# the "btrfs_swap" entry is used
# - If the filesystem is an exact match for filesystem, that entry is used
# - If no match is found in the above, the default entry is used
# - If there is no match and no default entry, "defaults" is used
# - If the mountOptions key is not present, "defaults" is used
#
# Each filesystem entry contains 3 keys, all of which are optional
# options - An array of mount options that is used on all disk types
# ssdOptions - An array of mount options combined with options for ssds
# hddOptions - An array of mount options combined with options for hdds
# If combining these options results in an empty array, "defaults" is used
#
# Example 1
# In this example, there are specific options for ext4 and btrfs filesystems,
# the EFI partition and the subvolume holding the btrfs swapfile. All other
# filesystems use the default entry. For the btrfs filesystem, there are
# additional options specific to hdds and ssds
#
mountOptions:
- filesystem: default
options: [ defaults ]
- filesystem: efi
options: [ defaults, umask=0077 ]
- filesystem: ext4
options: [ defaults ]
- filesystem: btrfs
options: [ defaults, noatime, compress=zstd:1 ]
ssdOptions: [ discard=async ]
hddOptions: [ autodefrag ]
- filesystem: btrfs_swap
options: [ defaults, noatime ]
#
# Example 2
# In this example there is a single default used by all filesystems
#
# mountOptions:
# - filesystem: default
# options: [ defaults ]
#
# mountOptions:
# - filesystem: default
# options: [ defaults ]
# - filesystem: efi
# options: [ defaults, umask=0077 ]
# - filesystem: btrfs
# options: [ defaults, compress=zstd:1 ]
# - filesystem: btrfs_swap
# options: [ defaults, noatime ]
@@ -1,54 +0,0 @@
---
groupsUrl:
- file:///etc/calamares/modules/netinstall.yaml
required: false
# To support multiple instances of this module,
# some strings are configurable and translatable here.
# Sub-keys under *label* are used for the user interface.
# - *sidebar* This is the name of the module in the progress-tree / sidebar
# in Calamares.
# - *title* This is displayed above the list of packages.
# If no *sidebar* values are provided, defaults to "Package selection"
# and existing translations. If no *title* values are provided, no string
# is displayed.
#
# Translations are handled through `[ll]` notation, much like in
# `.desktop` files. The string associated with `key[ll]` is used for
# *key* when when the language *ll* (language-code, like *nl* or *en_GB*
# or *ja*) is used.
#
# The following strings are **already** known to Calamares and can be
# listed here in *untranslated* form (e.g. as value of *sidebar*)
# without bothering with the translations: they are picked up from
# the regular translation framework:
# - "Package selection"
# - "Office software"
# - "Office package"
# - "Browser software"
# - "Browser package"
# - "Web browser"
# - "Kernel"
# - "Services"
# - "Login"
# - "Desktop"
# - "Applications"
# - "Communication"
# - "Development"
# - "Office"
# - "Multimedia"
# - "Internet"
# - "Theming"
# - "Gaming"
# - "Utilities"
# Other strings should follow the translations format.
label:
sidebar: "Package selection"
# sidebar[nl]: "Pakketkeuze"
# sidebar[en_GB]: "Package choice"
# sidebar[ja]: "知りません" # "I don't know"
# title: "Office Package"
# title[nl]: "Kantoorsoftware"
@@ -1,141 +0,0 @@
- name: "Default"
description: "Default packages"
hidden: false
selected: true
critical: true
immutable: true
packages:
- linux
- linux-headers
- grub
- efibootmgr
- sudo
- antergos-release
- antergos-next-keyring
- antergos-wallpapers
- antergos-grub-theme
- name: "Kernel"
description: "Kernel and modules"
selected: false
packages:
- acpi_call
- bbswitch
- broadcom-wl
- tp_smapi
- linux-lts
- linux-lts-headers
- name: "Firmware"
description: "Firmware"
selected: false
packages:
- b43-fwcutter
- linux-firmware
- linux-firmware-bnx2x
- linux-firmware-liquidio
- linux-firmware-marvell
- linux-firmware-mellanox
- linux-firmware-nfp
- linux-firmware-qcom
- linux-firmware-qlogic
- linux-firmware-whence
- sof-firmware
- alsa-firmware
- intel-ucode
- amd-ucode
- name: "Utilities"
description: "System Utilities"
selected: true
packages:
- antergos-lsb-release
- nano
- vi
- name: "Devel"
description: "Development tools"
selected: false
packages:
- base-devel
- artools-base
- artools-iso
- artools-pkg
- name: "Style"
description: "Antergos themes, icons, branding"
selected: false
packages: []
- name: "Desktop"
description: "DE"
selected: true
critical: false
subgroups:
- name: "Plasma"
description: "KDE Plasma Desktop"
selected: true
packages:
- plasma
- ark
- dolphin
- ffmpegthumbs
- gwenview
- kate
- keditbookmarks
- kfind
- kgpg
- kio-admin
- konsole
- konversation
- kwalletmanager
- okular
- partitionmanager
- name: "Xfce"
description: "Xfce Desktop"
selected: false
packages:
- xfce4
- xfce4-goodies
- name: "Cinnamon"
description: "Cinnamon Desktop"
selected: false
packages:
- cinnamon
- cinnamon-control-center
- cinnamon-desktop
- cinnamon-menus
- cinnamon-screensaver
- cinnamon-session
- cinnamon-settings-daemon
- cinnamon-translations
- name: "MATE"
description: "MATE Desktop"
selected: false
packages:
- mate
- mate-extra
- name: "LXQt"
description: "LXQt Desktop"
selected: false
packages:
- lxqt
- name: "i3"
description: "i3 Tiling WM"
selected: false
packages:
- i3
- name: "Sway"
description: "Sway Wayland Compositor"
selected: false
packages:
- sway
- swaybg
- swayidle
- swaylock
- name: "Hyprland"
description: "Hyprland Wayland Compositor"
selected: false
packages:
- hyprland
- xdg-desktop-portal-hyprland
@@ -1,294 +0,0 @@
---
mode: required
method: netinstall-add
labels:
step: "Init selection"
step[de]: "Initauswahl"
default: Dinit
items:
- id: Dinit
name: dinit
description: "Dinit init system"
screenshot: ""
netinstall:
name: "dinit"
description: "Dinit init system"
selected: true
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-dinit
- cryptsetup-dinit
- dbus-dinit
- dhcpcd-dinit
- lvm2-dinit
- mdadm-dinit
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-dinit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-dinit
- metalog-dinit
- name: "Internet"
description: "Network init"
packages:
- avahi-dinit
- bluez-dinit
- iptables-dinit
- krb5-dinit
- networkmanager-dinit
- nfs-utils-dinit
- ntp-dinit
- openldap-dinit
- openssh-dinit
- rpcbind-dinit
- xinetd-dinit
- wpa_supplicant-dinit
- name: "Office"
description: "Office init"
packages:
- cups-dinit
- sane-dinit
- name: "Services"
description: "Services init"
packages:
- acpid-dinit
- alsa-utils-dinit
- apparmor-dinit
- brltty-dinit
- fuse-dinit
- gpm-dinit
- hdparm-dinit
- haveged-dinit
- lm_sensors-dinit
- openvpn-dinit
- power-profiles-daemon-dinit
- rsync-dinit
- id: OpenRC
name: openrc
description: "⚠ OpenRC init system — BROKEN in Antergos NeXT (init-rc conflict with dinit). Will be re-added once fixed."
screenshot: ""
netinstall:
name: "openrc"
description: "OpenRC init system"
selected: false
critical: false
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-openrc
- cryptsetup-openrc
- dbus-openrc
- dhcpcd-openrc
- lvm2-openrc
- mdadm-openrc
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-openrc
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-openrc
- metalog-openrc
- name: "Internet"
description: "Network init"
packages:
- avahi-openrc
- bluez-openrc
- iptables-openrc
- krb5-openrc
- networkmanager-openrc
- nfs-utils-openrc
- ntp-openrc
- openldap-openrc
- openssh-openrc
- rpcbind-openrc
- xinetd-openrc
- wpa_supplicant-openrc
- name: "Office"
description: "Office init"
packages:
- cups-openrc
- sane-openrc
- name: "Services"
description: "Services init"
packages:
- acpid-openrc
- alsa-utils-openrc
- apparmor-openrc
- brltty-openrc
- fuse-openrc
- gpm-openrc
- hdparm-openrc
- haveged-openrc
- lm_sensors-openrc
- openrc-settingsd
- openvpn-openrc
- power-profiles-daemon-openrc
- rsync-openrc
- id: S6
name: s6
description: "S6 init system"
screenshot: ""
netinstall:
name: "s6"
description: "S6 init system"
selected: false
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-s6
- cryptsetup-s6
- dbus-s6
- dhcpcd-s6
- lvm2-s6
- mdadm-s6
- s6-contrib
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-s6
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-s6
- metalog-s6
- name: "Internet"
description: "Network init"
packages:
- avahi-s6
- bluez-s6
- iptables-s6
- krb5-s6
- networkmanager-s6
- nfs-utils-s6
- ntp-s6
- openldap-s6
- openssh-s6
- rpcbind-s6
- xinetd-s6
- wpa_supplicant-s6
- name: "Office"
description: "Office init"
packages:
- cups-s6
- sane-s6
- name: "Services"
description: "Services init"
packages:
- acpid-s6
- alsa-utils-s6
- apparmor-s6
- brltty-s6
- fuse-s6
- gpm-s6
- hdparm-s6
- haveged-s6
- lm_sensors-s6
- openvpn-s6
- power-profiles-daemon-s6
- rsync-s6
- id: Runit
name: runit
description: "Runit init system"
screenshot: ""
netinstall:
name: "runit"
description: "Runit init system"
selected: false
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-runit
- cryptsetup-runit
- dbus-runit
- dhcpcd-runit
- lvm2-runit
- mdadm-runit
- rsm
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-runit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-runit
- metalog-runit
- name: "Internet"
description: "Network init"
packages:
- avahi-runit
- bluez-runit
- iptables-runit
- krb5-runit
- networkmanager-runit
- nfs-utils-runit
- ntp-runit
- openldap-runit
- openssh-runit
- rpcbind-runit
- xinetd-runit
- wpa_supplicant-runit
- name: "Office"
description: "Office init"
packages:
- cups-runit
- sane-runit
- name: "Services"
description: "Services init"
packages:
- acpid-runit
- alsa-utils-runit
- apparmor-runit
- brltty-runit
- fuse-runit
- gpm-runit
- hdparm-runit
- haveged-runit
- lm_sensors-runit
- openvpn-runit
- power-profiles-daemon-runit
- rsync-runit
@@ -1,31 +0,0 @@
---
mode: required
method: netinstall-select
labels:
step: "Display Manager"
step[de]: "Display Manager"
default: SDDM
items:
- id: SDDM
name: sddm
description: "QML-based (KDE default). ⚠ May conflict with Cinnamon/MATE/LXQt (Xorg provider incompatibility). Use LightDM instead if installing those."
screenshot: ""
- id: LightDM
name: lightdm
description: "Cross-desktop (GTK). Compatible with all desktop environments."
screenshot: ""
- id: LXDM
name: lxdm
description: "Lightweight (LXDE). Compatible with all desktop environments."
screenshot: ""
- id: LY
name: ly
description: "Minimal TUI. Compatible with all desktop environments."
screenshot: ""
@@ -1,11 +0,0 @@
---
backend: pacman
skip_if_no_internet: false
update_db: true
update_system: false
pacman:
num_retries: 0
disable_download_timeout: false
needed_only: false
@@ -1,13 +0,0 @@
---
# set at iso build time
initsys: none
user-services:
- name: dbus
action: enable
- name: pipewire
action: enable
- name: pipewire-pulse
action: enable
- name: wireplumber
action: enable
@@ -1,24 +0,0 @@
---
command: artix-service
services:
- name: "acpid"
action: "enable"
- name: "bluetoothd"
action: "enable"
- name: "cronie"
action: "enable"
- name: "cupsd"
action: "enable"
- name: "dbus"
action: "enable"
- name: "dhcpcd"
action: "enable"
- name: "NetworkManager"
action: "enable"
- name: "power-profiles-daemon"
action: "enable"
- name: "sddm"
action: "enable"
- name: "syslog-ng"
action: "enable"
@@ -1,2 +0,0 @@
---
emergency: false
@@ -1,49 +0,0 @@
---
defaultGroups:
- name: users
must_exist: true
system: true
- lp
- video
- network
- storage
- name: wheel
must_exist: false
system: true
- audio
- power
- log
- optical
- network
- scanner
autologinGroup: autologin
doAutologin: false
sudoersGroup: wheel
setRootPassword: true
doReusePassword: false
passwordRequirements:
nonempty: true
minLength: 4 # Password at least this many characters
maxLength: -1 # Password at most this many characters
libpwquality:
- minlen=4
- minclass=0
allowWeakPasswords: true
allowWeakPasswordsDefault: true
userShell: /bin/bash
setHostname: EtcFile
writeHostsFile: true
user:
shell: /bin/bash
forbidden_names: [ root ]
@@ -1,64 +0,0 @@
---
modules-search: [ local ]
sequence:
- show:
- welcome
- notesqml@minimal-info
- locale
- keyboard
- packagechooser
- packagechooser@dm
- netinstall
- partition
- users
- summary
- exec:
- partition
- mount
- basestrap
- machineid
- packages
- fstab
- locale
- keyboard
- localecfg
- luksopenswaphookcfg
- luksbootkeyfile
- initcpiocfg
- initcpio
- users
- displaymanager
- networkcfg
- hwclock
- services-artix
- grubcfg
- bootloader
- postcfg
- umount
- show:
- finished
instances:
- id: dm
module: packagechooser
config: packagechooser_dm.conf
- id: minimal-info
module: notesqml
config: minimal-info.conf
branding: antergos-next-minimal
prompt-install: false
dont-chroot: false
oem-setup: false
disable-cancel: false
disable-cancel-during-exec: false
hide-back-and-next-during-exec: false
quit-at-end: false
@@ -1,35 +0,0 @@
---
backend: pacman
pacman:
num_retries: 0
disable_download_timeout: false
needed_only: false
handle_keyrings: true
copy_pacconf: true
requirements:
- dest: /etc
mode: "0o755"
- dest: /var
mode: "0o755"
- dest: /var/cache
mode: "0o755"
- dest: /var/cache/pacman
mode: "0o755"
- dest: /var/cache/pacman/pkg
mode: "0o755"
- dest: /var/lib
mode: "0o755"
- dest: /var/lib/pacman
mode: "0o755"
keyrings:
- artix
- antergos-next
base_init: elogind
operations:
- install:
- base
- antergos-next-keyring
@@ -1,21 +0,0 @@
---
efiBootLoader: "grub"
kernel: "/vmlinuz-linux-x86_64"
img: "/initramfs-linux-x86_64.img"
fallback: "/initramfs-linux-x86_64-fallback.img"
timeout: "10"
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubProbe: "grub-probe"
efiBootMgr: "efibootmgr"
installEFIFallback: true
efiBootloaderId: "Antergos"
# installHybridGRUB: false
# efiBootLoaderVar: "packagechooser_bootloader"
@@ -1,12 +0,0 @@
---
displaymanagers:
- sddm
- lightdm
- lxdm
- ly
- greetd
- gdm
- mdm
- slim
basicSetup: false
@@ -1,6 +0,0 @@
---
restartNowMode: user-unchecked
restartNowCommand: "loginctl reboot"
notifyOnFinished: false
@@ -1,20 +0,0 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
---
overwrite: false
prefer_grub_d: false
keep_distributor: false
kernel_params: [ "quiet" ]
defaults:
GRUB_TIMEOUT: 5
GRUB_DEFAULT: "saved"
GRUB_DISABLE_SUBMENU: true
GRUB_TERMINAL_OUTPUT: "console"
GRUB_DISABLE_RECOVERY: true
GRUB_THEME: "/usr/share/grub/themes/antergos/theme.txt"
always_use_defaults: false
@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<circle cx="32" cy="32" r="30" fill="#f67400"/>
<g transform="translate(21,21) scale(1)">
<path d="m3 3v16l16-8z" fill="white"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 212 B

@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<circle cx="32" cy="32" r="30" fill="#3daee9"/>
<g transform="translate(21,21) scale(1)">
<path d="M 11.5 3 C 10.286139 3 9.2809778 3.8559279 9.0507812 5 L 3 5 L 3 6 L 9.0507812 6 C 9.2809778 7.1440721 10.286139 8 11.5 8 C 12.713861 8 13.719022 7.1440721 13.949219 6 L 19 6 L 19 5 L 13.949219 5 C 13.719022 3.8559279 12.713861 3 11.5 3 z M 5.5 14 C 4.1149999 14 3 15.115 3 16.5 C 3 17.885 4.1149999 19 5.5 19 C 6.7138604 19 7.7190223 18.144072 7.9492188 17 L 19 17 L 19 16 L 7.9492188 16 C 7.7190223 14.855928 6.7138604 14 5.5 14 z M 5.5 15 C 6.3310001 15 7 15.669 7 16.5 C 7 17.331 6.3310001 18 5.5 18 C 4.6689999 18 4 17.331 4 16.5 C 4 15.669 4.6689999 15 5.5 15 z" fill="white"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 766 B

@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<circle cx="32" cy="32" r="30" fill="#27ae60"/>
<g transform="translate(21,21) scale(1)">
<path d="M 3 3 L 3 7 L 3 18 L 3 19 L 13 19 L 19 19 L 19 18 L 19 13 L 19 7 L 19 3 L 3 3 z M 4 7 L 18 7 L 18 13 L 18 18 L 13 18 L 4 18 L 4 7 z M 9 10 L 9 16 L 14 13 L 9 10 z" fill="white"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

@@ -1,6 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<circle cx="32" cy="32" r="30" fill="#9b59b6"/>
<g transform="translate(21,21) scale(1)">
<path d="m11 3a8 8 0 0 0-7.9277344 7h1.0058594a7 7 0 0 1 6.921875-6 7 7 0 0 1 6.320312 4h-3.320312v1h5v-1-4h-1v3.1679688a8 8 0 0 0-7-4.1679688zm6.921875 9a7 7 0 0 1-6.921875 6 7 7 0 0 1-6.3105469-4h3.3105469v-1h-5v1 4h1v-3.195312a8 8 0 0 0 7 4.195312 8 8 0 0 0 7.927734-7h-1.005859z" fill="white"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 472 B

@@ -1,5 +0,0 @@
---
systemd: false
dbus: false
dbus-symlink: false
entropy-copy: false
@@ -1,5 +0,0 @@
---
qmlSearch: branding
qmlFilename: minimal-info.qml
qmlLabel:
minimal-info: "About This Edition"
@@ -1,54 +0,0 @@
---
groupsUrl:
- file:///etc/calamares/modules/netinstall.yaml
required: false
# To support multiple instances of this module,
# some strings are configurable and translatable here.
# Sub-keys under *label* are used for the user interface.
# - *sidebar* This is the name of the module in the progress-tree / sidebar
# in Calamares.
# - *title* This is displayed above the list of packages.
# If no *sidebar* values are provided, defaults to "Package selection"
# and existing translations. If no *title* values are provided, no string
# is displayed.
#
# Translations are handled through `[ll]` notation, much like in
# `.desktop` files. The string associated with `key[ll]` is used for
# *key* when when the language *ll* (language-code, like *nl* or *en_GB*
# or *ja*) is used.
#
# The following strings are **already** known to Calamares and can be
# listed here in *untranslated* form (e.g. as value of *sidebar*)
# without bothering with the translations: they are picked up from
# the regular translation framework:
# - "Package selection"
# - "Office software"
# - "Office package"
# - "Browser software"
# - "Browser package"
# - "Web browser"
# - "Kernel"
# - "Services"
# - "Login"
# - "Desktop"
# - "Applications"
# - "Communication"
# - "Development"
# - "Office"
# - "Multimedia"
# - "Internet"
# - "Theming"
# - "Gaming"
# - "Utilities"
# Other strings should follow the translations format.
label:
sidebar: "Package selection"
# sidebar[nl]: "Pakketkeuze"
# sidebar[en_GB]: "Package choice"
# sidebar[ja]: "知りません" # "I don't know"
# title: "Office Package"
# title[nl]: "Kantoorsoftware"
@@ -1,281 +0,0 @@
- name: "Default"
description: "Default packages"
hidden: false
selected: true
critical: true
immutable: true
packages:
- linux
- linux-headers
- grub
- efibootmgr
- sudo
- antergos-release
- antergos-next-keyring
- antergos-wallpapers
- antergos-grub-theme
- falkon
- mesa
- mesa-utils
- networkmanager
- network-manager-applet
- pipewire
- pipewire-alsa
- pipewire-pulse
- wireplumber
- name: "Kernel"
description: "Kernel and modules"
selected: false
packages:
- acpi_call
- bbswitch
- broadcom-wl
- tp_smapi
- linux-lts
- linux-lts-headers
- name: "Firmware"
description: "Firmware"
selected: false
packages:
- b43-fwcutter
- linux-firmware
- linux-firmware-bnx2x
- linux-firmware-liquidio
- linux-firmware-marvell
- linux-firmware-mellanox
- linux-firmware-nfp
- linux-firmware-qcom
- linux-firmware-qlogic
- linux-firmware-whence
- sof-firmware
- alsa-firmware
- intel-ucode
- amd-ucode
- name: "Utilities"
description: "System Utilities"
selected: true
packages:
- antergos-lsb-release
- nano
- vi
- name: "Devel"
description: "Development tools"
selected: false
packages:
- base-devel
- artools-base
- artools-iso
- artools-pkg
- name: "Desktop"
description: "DE"
selected: true
critical: false
subgroups:
- name: "Plasma"
description: "KDE Plasma Desktop"
selected: true
packages:
- antergos-plasma-theme
- antergos-next-desktop-settings
- ark
- bluedevil
- breeze-gtk
- dolphin
- dolphin-plugins
- ffmpegthumbs
- gwenview
- kate
- kcalc
- kde-cli-tools
- kde-gtk-config
- kdeconnect
- kdegraphics-thumbnailers
- kdenetwork-filesharing
- kdeplasma-addons
- keditbookmarks
- kfind
- kgpg
- kinfocenter
- kio-admin
- kio-extras
- kio-fuse
- konsole
- konversation
- kscreen
- kwallet-pam
- kwalletmanager
- kwayland-integration
- okular
- partitionmanager
- plasma-browser-integration
- plasma-desktop
- plasma-disks
- plasma-nm
- plasma-pa
- plasma-systemmonitor
- plasma-workspace
- powerdevil
- print-manager
- qt6-imageformats
- spectacle
- xdg-desktop-portal-kde
- xsettingsd
- name: "Xfce"
description: "Xfce Desktop"
selected: false
packages:
- antergos-xfce-theme
- exo
- garcon
- thunar
- thunar-volman
- tumbler
- xfce4-appfinder
- xfce4-panel
- xfce4-power-manager
- xfce4-session
- xfce4-settings
- xfce4-terminal
- xfconf
- xfdesktop
- xfwm4
- xfwm4-themes
- mousepad
- parole
- ristretto
- thunar-archive-plugin
- thunar-media-tags-plugin
- xfburn
- xfce4-clipman-plugin
- xfce4-notifyd
- xfce4-pulseaudio-plugin
- xfce4-screenshooter
- xfce4-screensaver
- xfce4-taskmanager
- xfce4-whiskermenu-plugin
- name: "Cinnamon"
description: "Cinnamon Desktop"
selected: false
packages:
- cinnamon
- cinnamon-control-center
- cinnamon-desktop
- cinnamon-menus
- cinnamon-screensaver
- cinnamon-session
- cinnamon-settings-daemon
- cinnamon-translations
- name: "MATE"
description: "MATE Desktop"
selected: false
packages:
- caja
- marco
- mate-backgrounds
- mate-control-center
- mate-desktop
- mate-icon-theme
- mate-menus
- mate-notification-daemon
- mate-panel
- mate-polkit
- mate-session-manager
- mate-settings-daemon
- mate-themes
- mate-user-guide
- atril
- eom
- mate-applets
- mate-calc
- mate-power-manager
- mate-screensaver
- mate-system-monitor
- mate-terminal
- mate-utils
- pluma
- name: "LXQt"
description: "LXQt Desktop"
selected: false
packages:
- lximage-qt
- lxqt-about
- lxqt-admin
- lxqt-archiver
- lxqt-config
- lxqt-globalkeys
- lxqt-menu-data
- lxqt-notificationd
- lxqt-openssh-askpass
- lxqt-panel
- lxqt-policykit
- lxqt-powermanagement
- lxqt-qtplugin
- lxqt-runner
- lxqt-session
- lxqt-sudo
- lxqt-themes
- obconf-qt
- openbox
- pavucontrol-qt
- pcmanfm-qt
- qps
- qterminal
- screengrab
- xdg-desktop-portal-lxqt
- name: "i3"
description: "i3 Tiling WM"
selected: false
packages:
- i3-wm
- i3blocks
- i3lock
- i3status
- name: "Sway"
description: "Sway Wayland Compositor"
selected: false
packages:
- sway
- swaybg
- swayidle
- swaylock
- name: "Hyprland"
description: "Hyprland Wayland Compositor"
selected: false
packages:
- hyprland
- xdg-desktop-portal-hyprland
- name: "SDDM"
description: "SDDM display manager"
selected: false
packages:
- sddm
- sddm-dinit
- antergos-sddm-theme
- name: "LightDM"
description: "LightDM display manager"
selected: false
packages:
- lightdm
- lightdm-dinit
- name: "LXDM"
description: "LXDM display manager"
selected: false
packages:
- lxdm
- lxdm-dinit
- name: "LY"
description: "LY display manager"
selected: false
packages:
- ly
- ly-dinit
@@ -1,303 +0,0 @@
---
mode: required
method: netinstall-add
labels:
step: "Init selection"
step[de]: "Initauswahl"
default: Dinit
items:
- id: Dinit
name: dinit
description: "Dinit init system"
screenshot: "/etc/calamares/modules/images/dinit.svg"
netinstall:
name: "dinit"
description: "Dinit init system"
selected: true
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-dinit
- cryptsetup-dinit
- dbus-dinit
- dhcpcd-dinit
- lvm2-dinit
- mdadm-dinit
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-dinit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-dinit
- metalog-dinit
- name: "Internet"
description: "Network init"
packages:
- avahi-dinit
- bluez-dinit
- iptables-dinit
- krb5-dinit
- networkmanager-dinit
- nfs-utils-dinit
- ntp-dinit
- openldap-dinit
- openssh-dinit
- rpcbind-dinit
- xinetd-dinit
- wpa_supplicant-dinit
- name: "Office"
description: "Office init"
packages:
- cups-dinit
- sane-dinit
- name: "Services"
description: "Services init"
packages:
- acpid-dinit
- alsa-utils-dinit
- apparmor-dinit
- brltty-dinit
- fuse-dinit
- gpm-dinit
- hdparm-dinit
- haveged-dinit
- lm_sensors-dinit
- openvpn-dinit
- pipewire-dinit
- pipewire-pulse-dinit
- power-profiles-daemon-dinit
- rsync-dinit
- wireplumber-dinit
- id: OpenRC
name: openrc
description: "⚠ OpenRC init system — BROKEN in Antergos NeXT (init-rc conflict with dinit). Will be re-added once fixed."
screenshot: "/etc/calamares/modules/images/openrc.svg"
netinstall:
name: "openrc"
description: "OpenRC init system"
selected: false
critical: false
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-openrc
- cryptsetup-openrc
- dbus-openrc
- dhcpcd-openrc
- lvm2-openrc
- mdadm-openrc
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-openrc
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-openrc
- metalog-openrc
- name: "Internet"
description: "Network init"
packages:
- avahi-openrc
- bluez-openrc
- iptables-openrc
- krb5-openrc
- networkmanager-openrc
- nfs-utils-openrc
- ntp-openrc
- openldap-openrc
- openssh-openrc
- rpcbind-openrc
- xinetd-openrc
- wpa_supplicant-openrc
- name: "Office"
description: "Office init"
packages:
- cups-openrc
- sane-openrc
- name: "Services"
description: "Services init"
packages:
- acpid-openrc
- alsa-utils-openrc
- apparmor-openrc
- brltty-openrc
- fuse-openrc
- gpm-openrc
- hdparm-openrc
- haveged-openrc
- lm_sensors-openrc
- openrc-settingsd
- openvpn-openrc
- pipewire-openrc
- power-profiles-daemon-openrc
- rsync-openrc
- wireplumber-openrc
- id: S6
name: s6
description: "S6 init system"
screenshot: "/etc/calamares/modules/images/s6.svg"
netinstall:
name: "s6"
description: "S6 init system"
selected: false
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-s6
- cryptsetup-s6
- dbus-s6
- dhcpcd-s6
- lvm2-s6
- mdadm-s6
- s6-contrib
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-s6
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-s6
- metalog-s6
- name: "Internet"
description: "Network init"
packages:
- avahi-s6
- bluez-s6
- iptables-s6
- krb5-s6
- networkmanager-s6
- nfs-utils-s6
- ntp-s6
- openldap-s6
- openssh-s6
- rpcbind-s6
- xinetd-s6
- wpa_supplicant-s6
- name: "Office"
description: "Office init"
packages:
- cups-s6
- sane-s6
- name: "Services"
description: "Services init"
packages:
- acpid-s6
- alsa-utils-s6
- apparmor-s6
- brltty-s6
- fuse-s6
- gpm-s6
- hdparm-s6
- haveged-s6
- lm_sensors-s6
- openvpn-s6
- pipewire-s6
- power-profiles-daemon-s6
- rsync-s6
- wireplumber-s6
- id: Runit
name: runit
description: "Runit init system"
screenshot: "/etc/calamares/modules/images/runit.svg"
netinstall:
name: "runit"
description: "Runit init system"
selected: false
critical: true
immutable: false
expanded: true
hidden: false
subgroups:
- name: "Default"
description: "Default services"
selected: true
hidden: true
packages:
- audit-runit
- cryptsetup-runit
- dbus-runit
- dhcpcd-runit
- lvm2-runit
- mdadm-runit
- rsm
- name: "Cron"
description: "Cron init"
selected: true
packages:
- cronie-runit
- name: "Syslog"
description: "Syslog init"
packages:
- syslog-ng-runit
- metalog-runit
- name: "Internet"
description: "Network init"
packages:
- avahi-runit
- bluez-runit
- iptables-runit
- krb5-runit
- networkmanager-runit
- nfs-utils-runit
- ntp-runit
- openldap-runit
- openssh-runit
- rpcbind-runit
- xinetd-runit
- wpa_supplicant-runit
- name: "Office"
description: "Office init"
packages:
- cups-runit
- sane-runit
- name: "Services"
description: "Services init"
packages:
- acpid-runit
- alsa-utils-runit
- apparmor-runit
- brltty-runit
- fuse-runit
- gpm-runit
- hdparm-runit
- haveged-runit
- lm_sensors-runit
- openvpn-runit
- pipewire-runit
- power-profiles-daemon-runit
- rsync-runit
- wireplumber-runit
@@ -1,31 +0,0 @@
---
mode: required
method: netinstall-select
labels:
step: "Display Manager"
step[de]: "Display Manager"
default: SDDM
items:
- id: SDDM
name: sddm
description: "QML-based (KDE default). ⚠ May conflict with Cinnamon/MATE/LXQt (Xorg provider incompatibility). Use LightDM instead if installing those."
screenshot: ""
- id: LightDM
name: lightdm
description: "Cross-desktop (GTK). Compatible with all desktop environments."
screenshot: ""
- id: LXDM
name: lxdm
description: "Lightweight (LXDE). Compatible with all desktop environments."
screenshot: ""
- id: LY
name: ly
description: "Minimal TUI. Compatible with all desktop environments."
screenshot: ""
@@ -1,13 +0,0 @@
---
backend: pacman
skip_if_no_internet: false
update_db: true
ignore_update_db_error: false
update_system: false
pacman:
num_retries: 3
disable_download_timeout: false
needed_only: true
operations: []
@@ -1,13 +0,0 @@
---
# set at iso build time
initsys: none
user-services:
- name: dbus
action: enable
- name: pipewire
action: enable
- name: pipewire-pulse
action: enable
- name: wireplumber
action: enable
@@ -1,26 +0,0 @@
---
command: artix-service
services:
- name: "acpid"
action: "enable"
- name: "bluetoothd"
action: "enable"
- name: "cronie"
action: "enable"
- name: "cupsd"
action: "enable"
- name: "dbus"
action: "enable"
- name: "dhcpcd"
action: "enable"
- name: "NetworkManager"
action: "enable"
- name: "power-profiles-daemon"
action: "enable"
- name: "sddm"
action: "enable"
- name: "syslog-ng"
action: "enable"
- name: "userspawn"
action: "enable"
@@ -1,45 +0,0 @@
# This file is part of elogind.
#
# elogind is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation; either version 2.1 of the License, or (at your option)
# any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the logind.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# See logind.conf(5) for details.
[Login]
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
#UserStopDelaySec=10
#HandlePowerKey=poweroff
#HandlePowerKeyLongPress=ignore
#HandleRebootKey=reboot
#HandleRebootKeyLongPress=poweroff
#HandleSuspendKey=suspend
#HandleSuspendKeyLongPress=hibernate
#HandleHibernateKey=hibernate
#HandleHibernateKeyLongPress=ignore
#HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
#HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#RebootKeyIgnoreInhibited=no
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#RuntimeDirectorySize=10%
#RuntimeDirectoryInodesMax=
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#StopIdleSessionSec=infinity
@@ -1,36 +0,0 @@
# This file is part of elogind.
#
# elogind is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation; either version 2.1 of the License, or (at your option)
# any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the sleep.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# See sleep.conf(5) for details.
[Sleep]
#AllowSuspend=yes
#AllowHibernation=yes
#AllowSuspendThenHibernate=yes
#AllowHybridSleep=yes
#SuspendMode=
#SuspendState=mem standby freeze
#HibernateMode=platform shutdown
#HibernateState=disk
#HybridSleepMode=suspend platform shutdown
#HybridSleepState=disk
#HibernateDelaySec=
#SuspendEstimationSec=60min
# elogind additions
#AllowPowerOffInterrupts=no
#BroadcastPowerOffInterrupts=yes
#AllowSuspendInterrupts=no
#BroadcastSuspendInterrupts=yes
#SuspendByUsing=
#HibernateByUsing=
#HandleNvidiaSleep=no
@@ -1,5 +0,0 @@
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/mapper/rootfs / auto defaults 0 0
@@ -1 +0,0 @@
antergos-live
@@ -1,2 +0,0 @@
127.0.0.1 localhost.localdomain antergos-live localhost
::1 localhost.localdomain antergos-live localhost
@@ -1,19 +0,0 @@
[?25l[?7l `.-/::/-``
.-/osssssssso/.
:osyysssssssyyys+-
`.+yyyysssssssssyyyyy+.
`/syyyyyssssssssssyyyyys-`
`/yhyyyyysss++ssosyyyyhhy/`
.ohhhyyyyso++/+oso+syy+shhhho.
.shhhhysoo++//+sss+++yyy+shhhhs.
-yhhhhs+++++++ossso+++yyys+ohhddy:
-yddhhyo+++++osyyss++++yyyyooyhdddy-
.yddddhso++osyyyyys+++++yyhhsoshddddy`
`odddddhyosyhyyyyyy++++++yhhhyosddddddo
.dmdddddhhhhhhhyyyo+++++shhhhhohddddmmh.
ddmmdddddhhhhhhhso++++++yhhhhhhdddddmmdy
dmmmdddddddhhhyso++++++shhhhhddddddmmmmh
-dmmmdddddddhhyso++++oshhhhdddddddmmmmd-
.smmmmddddddddhhhhhhhhhdddddddddmmmms.
`+ydmmmdddddddddddddddddddmmmmdy/.
`.:+ooyyddddddddddddyyso+:.`
@@ -1,8 +0,0 @@
[?25h[?7hAntergos NeXT Live ISO (\l) - \s-\r \m
# Welcome to Antergos NeXT #
login for the live environment:
user 'antergos'
password 'antergos'
@@ -1,6 +0,0 @@
#%PAM-1.0
auth sufficient pam_rootok.so
auth sufficient pam_wheel.so trust use_uid
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so
@@ -1,8 +0,0 @@
/* Allow members of the wheel group to execute any actions
* without password authentication, similar to "sudo NOPASSWD:"
*/
polkit.addRule(function(action, subject) {
if (subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
@@ -1,17 +0,0 @@
[Autologin]
Relogin=false
Session=xfce.desktop
User=antergos
[General]
HaltCommand=/usr/bin/loginctl poweroff
RebootCommand=/usr/bin/loginctl reboot
[Theme]
Current=breeze
CursorTheme=breeze_cursors
Font=Noto Sans,10,-1,0,50,0,0,0,0,0
[Users]
MaximumUid=60000
MinimumUid=1000
@@ -1,11 +0,0 @@
[Containments][1]
activity=
formfactor=0
lastScreen=0
location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image
[Containments][1][Wallpaper][org.kde.image][General]
Image=file:///usr/share/wallpapers/antergos-wallpaper/contents/images/antergos-wallpaper.png
FillMode=2
@@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfwm4" version="1.0">
<property name="general" type="empty">
<property name="theme" type="string" value="Antergos-NeXT"/>
<property name="cycle_preview" type="bool" value="true"/>
<property name="cycle_raise" type="bool" value="false"/>
<property name="cycle_hidden" type="bool" value="true"/>
<property name="cycle_minimum" type="bool" value="true"/>
<property name="cycle_tabwin_mode" type="int" value="0"/>
<property name="cycle_workspaces" type="bool" value="false"/>
<property name="double_click_time" type="int" value="250"/>
<property name="double_click_distance" type="int" value="5"/>
<property name="easy_click" type="string" value="Alt"/>
<property name="focus_delay" type="int" value="250"/>
<property name="focus_hint" type="bool" value="true"/>
<property name="focus_new" type="bool" value="true"/>
<property name="frame_border_top" type="int" value="0"/>
<property name="full_width_title" type="bool" value="true"/>
<property name="horiz_scroll_opacity" type="bool" value="false"/>
<property name="inactive_opacity" type="int" value="100"/>
<property name="maximized_offset" type="int" value="0"/>
<property name="mousewheel_rollup" type="bool" value="true"/>
<property name="move_opacity" type="int" value="100"/>
<property name="placement_mode" type="string" value="center"/>
<property name="placement_ratio" type="int" value="50"/>
<property name="popup_opacity" type="int" value="100"/>
<property name="prevent_focus_stealing" type="bool" value="false"/>
<property name="raise_delay" type="int" value="250"/>
<property name="raise_on_click" type="bool" value="true"/>
<property name="raise_on_focus" type="bool" value="false"/>
<property name="resize_opacity" type="int" value="100"/>
<property name="scroll_workspaces" type="bool" value="true"/>
<property name="shadow_delta_height" type="int" value="0"/>
<property name="shadow_delta_width" type="int" value="0"/>
<property name="shadow_delta_x" type="int" value="0"/>
<property name="shadow_delta_y" type="int" value="-2"/>
<property name="shadow_opacity" type="int" value="30"/>
<property name="show_app_icon" type="bool" value="true"/>
<property name="show_frame_shadows" type="bool" value="true"/>
<property name="show_handle" type="bool" value="false"/>
<property name="sync_cycles" type="bool" value="false"/>
<property name="tabwin_cycle" type="bool" value="true"/>
<property name="tile_on_move" type="bool" value="true"/>
<property name="title_alignment" type="string" value="center"/>
<property name="title_font" type="string" value="Sans Bold 9"/>
<property name="title_horizontal_offset" type="int" value="3"/>
<property name="title_shadow_active" type="string" value="false"/>
<property name="title_shadow_inactive" type="string" value="false"/>
<property name="title_vertical_offset_active" type="int" value="0"/>
<property name="title_vertical_offset_inactive" type="int" value="0"/>
<property name="toggle_workspaces" type="bool" value="false"/>
<property name="uniconify_mode" type="string" value="current"/>
<property name="use_compositing" type="bool" value="true"/>
<property name="wrap_cycle" type="bool" value="true"/>
<property name="wrap_layout" type="bool" value="true"/>
<property name="wrap_resistance" type="int" value="10"/>
<property name="wrap_workspaces" type="bool" value="false"/>
<property name="click_to_focus" type="bool" value="true"/>
<property name="focus_delay_raise" type="bool" value="false"/>
<property name="borderless_move" type="bool" value="false"/>
<property name="button_layout" type="string" value="O|SHMC"/>
<property name="child_colors" type="string" value=""/>
<property name="vblank" type="string" value="auto"/>
<property name="zoom_desktop" type="bool" value="false"/>
<property name="titleless_maximize" type="bool" value="false"/>
<property name="wrap_windows" type="bool" value="false"/>
</property>
</channel>
@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="Antergos-NeXT"/>
<property name="IconThemeName" type="string" value="elementary-xfce"/>
<property name="DoubleClickTime" type="int" value="400"/>
<property name="DoubleClickDistance" type="int" value="5"/>
<property name="DndDragThreshold" type="int" value="8"/>
<property name="CursorBlink" type="bool" value="true"/>
<property name="CursorBlinkTime" type="int" value="1200"/>
<property name="SoundThemeName" type="string" value="freedesktop"/>
<property name="EnableEventSounds" type="bool" value="true"/>
<property name="EnableInputFeedbackSounds" type="bool" value="true"/>
</property>
<property name="Xft" type="empty">
<property name="DPI" type="int" value="-1"/>
<property name="Antialias" type="int" value="1"/>
<property name="Hinting" type="int" value="1"/>
<property name="HintStyle" type="string" value="hintslight"/>
<property name="RGBA" type="string" value="rgb"/>
</property>
</channel>

Some files were not shown because too many files have changed in this diff Show More