diff --git a/docs/_config.yml b/docs/_config.yml index 83d071a..8ad459b 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,6 +1,6 @@ title: Antergos NeXT description: >- - A community revival of Antergos — Artix Linux, OpenRC, KDE Plasma, Calamares + A community revival of Antergos — Artix Linux, Dinit, KDE Plasma, Calamares theme: just-the-docs color_scheme: dark diff --git a/docs/changing-init.md b/docs/changing-init.md new file mode 100644 index 0000000..438b1cd --- /dev/null +++ b/docs/changing-init.md @@ -0,0 +1,161 @@ +--- +title: Changing init +layout: default +nav_order: 9 +--- + +# 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. + +## Overview + +1. Stop your display manager and get to a TTY +2. Save a list of installed `-dinit` service packages +3. Download the corresponding `-` 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 -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. diff --git a/docs/desktop-environments.md b/docs/desktop-environments.md index 5fd5400..f018063 100644 --- a/docs/desktop-environments.md +++ b/docs/desktop-environments.md @@ -80,7 +80,7 @@ Available desktops in online mode, sourced from Artix repos. | **Repo** | galaxy | | **Group** | `cosmic` | | **Session** | `cosmic.desktop` | -| **Notes** | Rust-based, Wayland-native. Uses greetd + cosmic-greeter (not SDDM). Alpha quality, not for production. Works with dinit, s6, runit; OpenRC may have 100% CPU bugs | +| **Notes** | Rust-based, Wayland-native. Uses greetd + cosmic-greeter (not SDDM). Alpha quality, not for production. | ## No Desktop diff --git a/docs/development.md b/docs/development.md index 242990c..228e19f 100644 --- a/docs/development.md +++ b/docs/development.md @@ -98,7 +98,7 @@ Artix bundles the Wayland session into `plasma-workspace` itself. Do not add it ### `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 with the selected one. +Must `rm -f` the existing file before `cp`, otherwise `cp` follows any existing symlink to the settings file. ### CI does not trigger on push @@ -115,8 +115,7 @@ 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 -- Offline mode installs without internet -- 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" diff --git a/docs/index.md b/docs/index.md index b77194c..70c2359 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ nav_order: 1 # Antergos NeXT -A community revival of Antergos for the post-systemd era — **Artix Linux** base with **Dinit** (OpenRC / Runit / S6 available), **KDE Plasma**, and the **Calamares** installer (offline + online modes). +A community revival of Antergos for the post-systemd era — **Artix Linux** base with **Dinit**, **KDE Plasma**, and the **Calamares** installer. ## Download @@ -18,11 +18,10 @@ _Published to GitHub Releases. ISO also archived on the Internet Archive._ This is the first stable ISO. What works: - KDE Plasma 6 on Wayland (with SDDM) -- Full audio support on both offline and online installs +- Full audio support on installed systems - Custom SDDM theme (Antergos brand, not Breeze) - Correct `/usr/lib/os-release` (shows "Antergos NeXT", not "Artix Linux") -- Offline mode: unpack pre-built Plasma squashfs, no internet required -- Online mode: choose your init (Dinit/OpenRC/Runit/S6) and desktop (Plasma/Xfce/Cinnamon/MATE/LXQt/i3/Sway/Hyprland) +- Choose your desktop (Plasma/Xfce/Cinnamon/MATE/LXQt/i3/Sway/Hyprland/COSMIC) - GRUB with Antergos theme - Custom Calamares slideshow - Xlibre X server included diff --git a/docs/init-systems.md b/docs/init-systems.md index d19cfa5..1e0d064 100644 --- a/docs/init-systems.md +++ b/docs/init-systems.md @@ -9,16 +9,14 @@ has_children: true An **init system** is PID 1 — the first process that runs when your computer boots. It starts everything else: filesystems, networking, display manager, services. Think of it as a foreman: it doesn't do the work itself, but it makes sure everything happens in the right order. -Antergos NeXT lets you choose between **four** init systems during online installation. (Offline mode uses Dinit, the default.) - -> **Don't know what to pick? Stick with Dinit** — it's the default, it's fast, and it's what Antergos NeXT ships with. OpenRC is also available but currently broken in Antergos NeXT (services don't enable correctly on installed systems). +Antergos NeXT ships with **Dinit** as its default init system. The pages below describe the major init systems available on Artix Linux for educational purposes. If you want to switch init on an installed system, see [Changing init](changing-init). ## The inits | Init | Philosophy | Complexity | Speed | Used by | |------|-----------|------------|-------|---------| -| [Dinit](dinit) | Modern, dependency-based, parallel | Medium | Very fast | Antergos NeXT (default), Chimera Linux, Artix, new projects | -| [OpenRC](openrc) | Traditional, modular, shell-script-based | Low | Fast | Gentoo, Artix, Devuan, Alpine — **currently broken in Antergos NeXT** | +| [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 | diff --git a/docs/installer.md b/docs/installer.md index 9931a29..15242e5 100644 --- a/docs/installer.md +++ b/docs/installer.md @@ -6,22 +6,19 @@ nav_order: 4 # Calamares Installer -Antergos NeXT uses [Calamares](https://codeberg.org/calamares/calamares) as its installer, with a custom launcher (`calamares-next`) that presents a mode picker before launching Calamares. +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 pre-built KDE Plasma squashfs — no internet needed. Fast, deterministic, single option. | -| **Online** | Netinstall with init system choice + desktop selection. Downloads packages from the internet. | +Online-only (since v2026.07.16). The so-called "Offline Install" was removed — it was never truly offline: the rootfs only contained live session essentials, and all DE packages were still downloaded via basestrap. All installs now use the full netinstall flow with desktop selection. -## Fixed issues (v2026.07.11) +## Fixed issues ### Audio on installed systems -The offline install works because `pipewire.desktop` is baked into the root squashfs via `root-overlay`. But in online mode, packages are installed fresh — and the upstream `artix-pipewire-launcher` doesn't support dinit. The XDG autostart entry was also missing. +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'`). This way both offline and online installs get working audio. +**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 @@ -38,19 +35,13 @@ The `filesystem` package from Artix owns `/usr/lib/os-release`. Our `antergos-re ## Key differences from upstream Calamares - `dracut`/`dracutlukscfg` replaced with `initcpiocfg`/`initcpio`/`luksopenswaphookcfg` (Artix uses mkinitcpio, not dracut) -- `services-openrc` module instead of `services-systemd` (supports all four inits via init-specific variants) +- `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 Calamares skips it by default) -## Init system selector (online) +## Init system -Users choose from: **Dinit**, **OpenRC**, **Runit**, **S6**. - -> **Note:** OpenRC is currently broken in Antergos NeXT — services don't enable correctly on installed systems. Choose Dinit (default), Runit, or S6 instead. - -Implemented as a `packagechooser` instance with `method: netinstall-add`. The selected init pulls its associated packages (e.g. `elogind-dinit`, `connman-dinit`, `sddm-dinit`). The init packages are defined in `netinstall.yaml` as separate groups. - -Dinit is preselected by default. +Antergos NeXT ships **Dinit** only. Other init systems (OpenRC, Runit, S6) are available in the Artix repos but are not offered as install-time options. See [Changing init on an installed system](changing-init) for instructions if you need a different init. ## Desktop selector (online) @@ -77,10 +68,6 @@ Implemented as a separate `packagechooser` instance with `method: legacy`. "No D - **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?" -## Offline mode - -No packagechooser. Uses `unpackfs` to deploy a pre-built KDE Plasma squashfs, then `initcpiocfg` + `initcpio` for mkinitcpio configuration. - ## 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 — this is enforced by Calamares (see `Branding.cpp`). @@ -89,8 +76,9 @@ Custom branding lives in the `calamares-branding-antergos-next` package, install The `calamares-next` script (`/usr/bin/calamares-next`) handles the installer boot flow: -1. **Mode picker** — `kdialog`/`zenity` 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** — 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 Launched via the desktop entry in the live session: `Exec=sudo -E calamares-next`. diff --git a/docs/launcher.md b/docs/launcher.md index 9ed05cc..d37ebf8 100644 --- a/docs/launcher.md +++ b/docs/launcher.md @@ -10,9 +10,10 @@ The `calamares-next` script (`calamares-next.sh`) handles the installer boot flo ## Boot flow -1. **Mode picker** — `kdialog` or `zenity` 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** — explains why the so-called "Offline Install" was removed (it wasn't actually offline) +2. **Welcome** — branded splash screen with an "Install" button +3. **Configuration** — copies `calamares-online/settings.conf` to `/etc/calamares/settings.conf` +4. **Launch** — runs `calamares` with the online config ## Desktop entry @@ -24,19 +25,16 @@ Exec=sudo -E calamares-next `sudo -E` 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. -## Mode picker +## Installer flow -A simple dialog with two options: - -- **Offline** — no internet required, installs KDE Plasma from a pre-built squashfs. Fast and deterministic. -- **Online** — internet required, shows an init system selector (Dinit/OpenRC/Runit/S6) and a desktop selector. Downloads packages from the repos. +The launcher shows a YAD info notice explaining the removal of the offline mode, then presents a branded splash with a single "Install" button. Calamares launches in online mode with the DE selector. ## Config switching `SetConfig()` in `calamares-next.sh`: -1. `rm -f` the existing symlink at `/etc/calamares/settings.conf` (must remove first — `cp` follows symlinks and would overwrite the wrong file) -2. `cp` the selected settings file (offline or online) to `/etc/calamares/settings.conf` +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" @@ -45,19 +43,8 @@ The live-overlay includes `calamares-config-switcher.desktop` with `NoDisplay=tr ## Module configs -### Online modules - Configs live in `live-overlay/etc/calamares-online/modules/`: -- `packagechooser_init.conf` — init system selector using `method: netinstall-add` -- `packagechooser_desktop.conf` — DE selector using `method: legacy` +- `packagechooser_dm.conf` — display manager selector using `method: netinstall-select` - `initcpiocfg.conf` — mkinitcpio configuration -- `services-openrc.conf` — service enablement (works across all inits via init-specific wrappers) - -### Offline modules - -Configs live in `live-overlay/etc/calamares-offline/modules/`: - -- `unpackfs.conf` — unpack the pre-built squashfs -- `initcpiocfg.conf` — mkinitcpio configuration -- `services-openrc.conf` — service enablement +- `services-artix.conf` — service enablement via `artix-service` diff --git a/docs/openrc.md b/docs/openrc.md index 0eb628e..56411ed 100644 --- a/docs/openrc.md +++ b/docs/openrc.md @@ -9,7 +9,7 @@ nav_order: 1 **OpenRC** is a traditional init system 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 currently broken in Antergos NeXT.** The online installer presents it as an option, but services don't enable correctly on installed systems. Until this is fixed, choose **Dinit** (the default), **Runit**, or **S6** instead. +> **Note:** Earlier Antergos NeXT builds shipped OpenRC as an install-time option but it had issues with service enabling on installed systems. If you want to use OpenRC on Antergos NeXT, see [Changing init](changing-init) for manual setup instructions. ## systemd vs OpenRC at a glance diff --git a/docs/overlay-live.md b/docs/overlay-live.md index bd30da1..f81ff69 100644 --- a/docs/overlay-live.md +++ b/docs/overlay-live.md @@ -15,18 +15,11 @@ Files in `iso-profiles/antergos/live-overlay/` exist only in the live environmen live-overlay/ ├── etc/ │ ├── calamares/ -│ │ └── settings.conf # Symlink → online or offline config -│ ├── calamares-offline/ -│ │ ├── settings.conf # Offline install config (unpackfs) -│ │ └── modules/ -│ │ ├── unpackfs.conf -│ │ ├── initcpiocfg.conf -│ │ └── ... +│ │ └── settings.conf # Replaced at runtime by online config │ ├── calamares-online/ │ │ ├── settings.conf # Online install config (packagechooser) │ │ └── modules/ -│ │ ├── packagechooser_init.conf # Init system selector -│ │ ├── packagechooser_desktop.conf # DE selector +│ │ ├── packagechooser_dm.conf # Display manager selector │ │ ├── initcpiocfg.conf │ │ └── ... │ └── sddm.conf.d/ @@ -42,19 +35,15 @@ live-overlay/ ### `etc/calamares/settings.conf` -Symlink — points to either `../calamares-offline/settings.conf` or `../calamares-online/settings.conf`, set by `calamares-next.sh` after the user selects a mode. +Placeholder — replaced at runtime by `calamares-next.sh` which copies the online settings file. ### `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 +One `packagechooser` instance for DM selection (`packagechooser@dm`) using `netinstall-select`. -The init selector uses `netinstall-add` method, meaning the selected init group's packages are added to the install set. The DE selector uses `legacy` method, returning the selected DE as a global storage value. +### Offline config (archived) -### `etc/calamares-offline/settings.conf` - -No packagechooser. Uses `unpackfs` to deploy a pre-built KDE Plasma squashfs, then `initcpiocfg` + `initcpio` for mkinitcpio configuration. +The offline install mode was removed in v2026.07.16 — it was never truly offline (all DE packages were still downloaded via basestrap). The configs are preserved at `iso-profiles/antergos/calamares-offline/` for reference. ### `etc/calamares/modules/basestrap.conf` diff --git a/docs/packages.md b/docs/packages.md index 2ffcb15..f949299 100644 --- a/docs/packages.md +++ b/docs/packages.md @@ -39,7 +39,7 @@ Server = https://antergos-next.github.io/antergos-packages ### calamares-branding-antergos-next - Ships `calamares-next.sh` — the launcher script that presents the mode picker and manages config switching -- `packagechooser.conf` provides a DE-only fallback for standalone use +- `packagechooser.conf` provides a DM-only fallback for standalone use - `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) diff --git a/docs/wallpapers.md b/docs/wallpapers.md index 3ca21c2..cf3766a 100644 --- a/docs/wallpapers.md +++ b/docs/wallpapers.md @@ -1,7 +1,7 @@ --- title: Wallpapers layout: default -nav_order: 9 +nav_order: 12 --- # Wallpapers diff --git a/iso-profiles/antergos-minimal/live-overlay/etc/skel/Desktop/calamares.desktop b/iso-profiles/antergos-minimal/live-overlay/etc/skel/Desktop/calamares.desktop index b59e6ed..1127117 100644 --- a/iso-profiles/antergos-minimal/live-overlay/etc/skel/Desktop/calamares.desktop +++ b/iso-profiles/antergos-minimal/live-overlay/etc/skel/Desktop/calamares.desktop @@ -8,3 +8,4 @@ Icon=calamares Terminal=false Categories=Qt;System;Settings; StartupNotify=true +X-KDE-IsAdminApplication=true diff --git a/iso-profiles/antergos-minimal/live-overlay/usr/share/applications/calamares.desktop b/iso-profiles/antergos-minimal/live-overlay/usr/share/applications/calamares.desktop index b59e6ed..1127117 100644 --- a/iso-profiles/antergos-minimal/live-overlay/usr/share/applications/calamares.desktop +++ b/iso-profiles/antergos-minimal/live-overlay/usr/share/applications/calamares.desktop @@ -8,3 +8,4 @@ Icon=calamares Terminal=false Categories=Qt;System;Settings; StartupNotify=true +X-KDE-IsAdminApplication=true diff --git a/iso-profiles/antergos-minimal/profile.yaml b/iso-profiles/antergos-minimal/profile.yaml index de0583a..3a48d5a 100644 --- a/iso-profiles/antergos-minimal/profile.yaml +++ b/iso-profiles/antergos-minimal/profile.yaml @@ -25,6 +25,7 @@ rootfs: - antergos-release - antergos-lsb-release - calamares + - python-toml - calamares-branding-antergos-next-minimal - antergos-next-keyring - antergos-wallpapers diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/bootloader.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/bootloader.conf deleted file mode 100644 index 4413b38..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/bootloader.conf +++ /dev/null @@ -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" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/displaymanager.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/displaymanager.conf deleted file mode 100644 index 1e9ad2b..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/displaymanager.conf +++ /dev/null @@ -1,10 +0,0 @@ ---- -displaymanagers: - - lightdm - - gdm - - mdm - - sddm - - lxdm - - slim - -basicSetup: false diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/finished.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/finished.conf deleted file mode 100644 index 1983892..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/finished.conf +++ /dev/null @@ -1,6 +0,0 @@ ---- -restartNowMode: user-unchecked - -restartNowCommand: "loginctl reboot" - -notifyOnFinished: false diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/grubcfg.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/grubcfg.conf deleted file mode 100644 index 189d4c2..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/grubcfg.conf +++ /dev/null @@ -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 diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/initcpio.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/initcpio.conf deleted file mode 100644 index 73c1cd1..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/initcpio.conf +++ /dev/null @@ -1,4 +0,0 @@ ---- -kernel: all - -be_unsafe: false diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/locale.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/locale.conf deleted file mode 100644 index 0c3e7af..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/locale.conf +++ /dev/null @@ -1,7 +0,0 @@ ---- -localeGenPath: /etc/locale.gen - -geoip: - style: "json" - url: "https://geoip.kde.org/v1/calamares" - selector: "" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/machineid.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/machineid.conf deleted file mode 100644 index 7ab945a..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/machineid.conf +++ /dev/null @@ -1,5 +0,0 @@ ---- -systemd: false -dbus: false -dbus-symlink: false -entropy-copy: false diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/mount.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/mount.conf deleted file mode 100644 index 2c08d73..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/mount.conf +++ /dev/null @@ -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 ] - - - - diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/partition.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/partition.conf deleted file mode 100644 index 7e74cac..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/partition.conf +++ /dev/null @@ -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"] diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/postcfg.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/postcfg.conf deleted file mode 100644 index 41500fe..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/postcfg.conf +++ /dev/null @@ -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 diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/services-artix.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/services-artix.conf deleted file mode 100644 index e5114bb..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/services-artix.conf +++ /dev/null @@ -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" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/umount.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/umount.conf deleted file mode 100644 index c1f548c..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/umount.conf +++ /dev/null @@ -1,2 +0,0 @@ ---- -emergency: false diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/unpackfs.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/unpackfs.conf deleted file mode 100644 index c7235e6..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/unpackfs.conf +++ /dev/null @@ -1,5 +0,0 @@ ---- -unpack: - - source: "/run/artix/bootmnt/LiveOS/rootfs.img" - sourcefs: 'squashfs' - destination: "" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/users.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/users.conf deleted file mode 100644 index 99c1963..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/users.conf +++ /dev/null @@ -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 ] diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/welcome.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/welcome.conf deleted file mode 100644 index 288fc67..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/modules/welcome.conf +++ /dev/null @@ -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 diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-offline/settings.conf b/iso-profiles/antergos/live-overlay/etc/calamares-offline/settings.conf deleted file mode 100644 index 697386c..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-offline/settings.conf +++ /dev/null @@ -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 - -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 diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml index 6791e75..3024ab1 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/netinstall.yaml @@ -144,3 +144,60 @@ selected: false packages: - cosmic + +- name: "Init Services" + description: "Essential dinit services" + selected: true + critical: true + immutable: true + packages: + - dinit + - dbus-dinit + - networkmanager-dinit + - elogind-dinit + - cups-dinit + - avahi-dinit + - bluez-dinit + - cronie-dinit + - openssh-dinit + - alsa-utils-dinit + - acpid-dinit + - dhcpcd-dinit + - syslog-ng-dinit + - power-profiles-daemon-dinit + +- 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: "greetd" + description: "greetd display manager" + selected: false + packages: + - greetd + - greetd-dinit + +- name: "LY" + description: "LY display manager" + selected: false + packages: + - ly + - ly-dinit diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf deleted file mode 100644 index 65c4811..0000000 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser.conf +++ /dev/null @@ -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 diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser_dm.conf b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser_dm.conf new file mode 100644 index 0000000..2e50c90 --- /dev/null +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/packagechooser_dm.conf @@ -0,0 +1,36 @@ +--- +mode: required + +method: netinstall-select + +labels: + step: "Display Manager" + step[de]: "Display Manager" + +default: SDDM + +items: + - id: SDDM + name: SDDM + description: "QML-based display manager (KDE default)" + screenshot: "" + + - id: LightDM + name: LightDM + description: "Cross-desktop display manager (GTK)" + screenshot: "" + + - id: LXDM + name: LXDM + description: "Lightweight display manager (LXDE)" + screenshot: "" + + - id: LY + name: LY + description: "Minimal TUI display manager" + screenshot: "" + + - id: greetd + name: greetd + description: "Minimal display manager (recommended for COSMIC)" + screenshot: "" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/services-artix.conf b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/services-artix.conf index e5114bb..b3d843a 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/services-artix.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/modules/services-artix.conf @@ -20,5 +20,7 @@ services: action: "enable" - name: "sddm" action: "enable" + - name: "greetd" + action: "enable" - name: "syslog-ng" action: "enable" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares-online/settings.conf b/iso-profiles/antergos/live-overlay/etc/calamares-online/settings.conf index d77fbb9..22fe94b 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares-online/settings.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares-online/settings.conf @@ -6,7 +6,6 @@ sequence: - welcome - locale - keyboard - - packagechooser - packagechooser@dm - netinstall - partition diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml b/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml index c9523e3..56bd672 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/netinstall.yaml @@ -55,6 +55,27 @@ - intel-ucode - amd-ucode +- name: "Init Services" + description: "Essential dinit services" + selected: true + critical: true + immutable: true + packages: + - dinit + - dbus-dinit + - networkmanager-dinit + - elogind-dinit + - cups-dinit + - avahi-dinit + - bluez-dinit + - cronie-dinit + - openssh-dinit + - alsa-utils-dinit + - acpid-dinit + - dhcpcd-dinit + - syslog-ng-dinit + - power-profiles-daemon-dinit + - name: "Utilities" description: "System Utilities" selected: true @@ -79,7 +100,7 @@ subgroups: - name: "Plasma" description: "KDE Plasma Desktop" - selected: true + selected: false packages: - antergos-plasma-theme - antergos-next-desktop-settings @@ -249,6 +270,11 @@ packages: - hyprland - xdg-desktop-portal-hyprland + - name: "COSMIC" + description: "COSMIC Desktop (Rust/Wayland — select greetd as DM)" + selected: false + packages: + - cosmic - name: "SDDM" description: "SDDM display manager" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf index 17258ab..ddea4e9 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/packagechooser_dm.conf @@ -25,12 +25,12 @@ items: description: "Lightweight display manager (LXDE)" screenshot: "" - - id: LY - name: ly - description: "Minimal TUI display manager" - screenshot: "" - - id: greetd name: greetd description: "Minimal display manager (recommended for COSMIC)" screenshot: "" + + - id: LY + name: ly + description: "Minimal TUI display manager" + screenshot: "" diff --git a/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf b/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf index 4932c6a..c143a46 100644 --- a/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf +++ b/iso-profiles/antergos/live-overlay/etc/calamares/modules/services-artix.conf @@ -20,6 +20,8 @@ services: action: "enable" - name: "sddm" action: "enable" + - name: "greetd" + action: "enable" - name: "syslog-ng" action: "enable" - name: "userspawn" diff --git a/iso-profiles/antergos/live-overlay/etc/skel/Desktop/antergos-offline-install.desktop b/iso-profiles/antergos/live-overlay/etc/skel/Desktop/antergos-offline-install.desktop new file mode 100644 index 0000000..583f50f --- /dev/null +++ b/iso-profiles/antergos/live-overlay/etc/skel/Desktop/antergos-offline-install.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=Install Antergos NeXT (Offline — NO DE) +Name[en]=Install Antergos NeXT (Offline — NO DE) +Comment=Bare minimum install from the live ISO. No desktop environment included. Internet recommended after boot. +Exec=sudo -E antergos-offline-install +Icon=calamares +Terminal=false +Categories=Qt;System;Settings; +StartupNotify=true +X-KDE-IsAdminApplication=true diff --git a/iso-profiles/antergos/live-overlay/etc/skel/Desktop/calamares.desktop b/iso-profiles/antergos/live-overlay/etc/skel/Desktop/calamares.desktop index b59e6ed..1127117 100644 --- a/iso-profiles/antergos/live-overlay/etc/skel/Desktop/calamares.desktop +++ b/iso-profiles/antergos/live-overlay/etc/skel/Desktop/calamares.desktop @@ -8,3 +8,4 @@ Icon=calamares Terminal=false Categories=Qt;System;Settings; StartupNotify=true +X-KDE-IsAdminApplication=true diff --git a/iso-profiles/antergos/live-overlay/usr/local/bin/antergos-offline-install b/iso-profiles/antergos/live-overlay/usr/local/bin/antergos-offline-install new file mode 100755 index 0000000..4ef446c --- /dev/null +++ b/iso-profiles/antergos/live-overlay/usr/local/bin/antergos-offline-install @@ -0,0 +1,239 @@ +#!/bin/bash +# Antergos NeXT Offline Installer +# Stolen with love from Valve's SteamOS repair_device.sh +# "If it works for a Steam Deck, it works for you." -- some drunk developer + +set -eu + +SQUASHFS="/run/artix/bootmnt/LiveOS/rootfs.img" + +# ── Stolen from SteamOS: pretty output ── +sh_c() { [[ $_sh_c_colors -le 0 ]] || echo -ne "\e[${*:-0}m"; } +_sh_c_colors=0 +[[ -n $TERM && -t 1 && ${TERM,,} != dumb ]] && _sh_c_colors=$(tput colors 2>/dev/null || echo 0) +estat() { echo -e "$(sh_c 32 1)::$(sh_c) $*"; } +einfo() { echo -e "$(sh_c 34 1)::$(sh_c) $*"; } +ewarn() { echo -e "$(sh_c 33 1);;$(sh_c) $*"; } +eerr() { echo -e "$(sh_c 31 1)!!$(sh_c) $*" >&2; } +die() { eerr "${1:-script terminated}"; exit 1; } +cmd() { echo -e "$(sh_c 30 1)+$(sh_c) $*"; "$@"; } + +# ── Stolen from SteamOS: read heredoc into var ── +readvar() { IFS= read -r -d '' "$1" || true; } + +# ── Stolen from SteamOS: partition helpers ── +diskpart() { echo "${DISK}${DISK_SUFFIX}$1"; } + +# ── Stolen from SteamOS: zenity prompts ── +prompt_confirm() { + zenity --title "$1" --question --ok-label "Proceed" --cancel-label "Cancel" --no-wrap --text "$2" 2>/dev/null +} + +prompt_msg() { + zenity --title "$1" --info --no-wrap --text "$2" 2>/dev/null +} + +# ── Pre-flight ── +[[ $EUID -eq 0 ]] || die "Must be run as root" + +if [[ ! -f "$SQUASHFS" ]]; then + die "Cannot find rootfs squashfs at $SQUASHFS. Are you booted from an Antergos NeXT ISO?" +fi + +# ── WARNING: NO DE ── +prompt_msg "Antergos NeXT Offline Installer" \ + "This will install a BARE MINIMUM system — no desktop environment, no apps, just the base system + Calamares. + +After boot, connect to the internet and run: + sudo pacman -Sy plasma-meta +(or xfce4, or whatever DE you want) + +This is for people who want a minimal base to build on, or who are trapped in a cave with no internet. +This WILL DESTROY ALL DATA on the target disk." + +prompt_confirm "Select target disk" \ + "This will list available disks. Choose carefully — ALL DATA WILL BE DESTROYED." || die "Aborted by user" + +# ── Select disk ── +DISK=$(lsblk -dno NAME,SIZE,MODEL,TYPE | grep disk | \ + zenity --list --title "Select target disk" \ + --column "Device" --column "Size" --column "Model" \ + --print-column=1 --width=500 --height=300 2>/dev/null | tail -1) +[[ -n "$DISK" ]] || die "No disk selected" +DISK="/dev/$DISK" +[[ -b "$DISK" ]] || die "$DISK is not a block device" + +# Determine partition suffix (p for NVMe/mmcblk, nothing for sdX) +if [[ "$DISK" =~ /dev/nvme || "$DISK" =~ /dev/mmcblk ]]; then + DISK_SUFFIX="p" +else + DISK_SUFFIX="" +fi + +prompt_confirm "DESTROY $DISK?" \ + "Target: $DISK +All partitions will be wiped. This cannot be undone. + +Type YES below to confirm." || die "Aborted by user" + +# ── Partition ── +estat "Partitioning $DISK..." +cmd sfdisk --delete "$DISK" 2>/dev/null || true + +readvar PARTITION_TABLE << END_PTABLE +label: gpt +$(diskpart 1): size=512MiB, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B +$(diskpart 2): size=300MiB, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F +$(diskpart 3): type=0FC63DAF-8483-4772-8E79-3D69D8477DE4 +END_PTABLE + +echo "$PARTITION_TABLE" | cmd sfdisk "$DISK" + +PART_ESP=$(diskpart 1) +PART_SWAP=$(diskpart 2) +PART_ROOT=$(diskpart 3) + +# ── Format ── +estat "Formatting partitions..." +cmd mkfs.fat -F32 -n ESP "$PART_ESP" +cmd mkswap -L swap "$PART_SWAP" +cmd mkfs.btrfs -f -L antergos "$PART_ROOT" + +# ── Create btrfs subvolumes ── +estat "Creating btrfs subvolumes..." +cmd mkdir -p /mnt/btrfs +cmd mount "$PART_ROOT" /mnt/btrfs +cmd btrfs subvolume create /mnt/btrfs/@ +cmd btrfs subvolume create /mnt/btrfs/@home +cmd btrfs subvolume create /mnt/btrfs/@cache +cmd btrfs subvolume create /mnt/btrfs/@log +cmd btrfs subvolume create /mnt/btrfs/@snapshots +cmd umount /mnt/btrfs + +# ── Mount subvolumes ── +estat "Mounting subvolumes..." +TARGET=/mnt/target +cmd mkdir -p "$TARGET" +cmd mount -o subvol=@ "$PART_ROOT" "$TARGET" +cmd mkdir -p "$TARGET/{home,var/cache,var/log,.snapshots,boot}" +cmd mount -o subvol=@home "$PART_ROOT" "$TARGET/home" +cmd mount -o subvol=@cache "$PART_ROOT" "$TARGET/var/cache" +cmd mount -o subvol=@log "$PART_ROOT" "$TARGET/var/log" +cmd mount -o subvol=@snapshots "$PART_ROOT" "$TARGET/.snapshots" +cmd mount "$PART_ESP" "$TARGET/boot" + +# ── Extract squashfs ── +estat "Extracting rootfs to $TARGET... (this will take a while)" +cmd unsquashfs -f -d "$TARGET" "$SQUASHFS" + +# ── Generate fstab ── +estat "Generating fstab with btrfs subvolumes..." +ROOT_UUID=$(blkid -o value -s UUID "$PART_ROOT") +SWAP_UUID=$(blkid -o value -s UUID "$PART_SWAP") +ESP_UUID=$(blkid -o value -s UUID "$PART_ESP") + +cat > "$TARGET/etc/fstab" << FSTAB +# /etc/fstab generated by Antergos NeXT Offline Installer +# Stolen from SteamOS, adapted for your sins — now with btrfs snapshots + +UUID=$ROOT_UUID / btrfs subvol=@,defaults,noatime,compress=zstd 0 1 +UUID=$ROOT_UUID /home btrfs subvol=@home,defaults,noatime,compress=zstd 0 0 +UUID=$ROOT_UUID /var/cache btrfs subvol=@cache,defaults,noatime,compress=zstd 0 0 +UUID=$ROOT_UUID /var/log btrfs subvol=@log,defaults,noatime,compress=zstd 0 0 +UUID=$ROOT_UUID /.snapshots btrfs subvol=@snapshots,defaults,noatime 0 0 +UUID=$SWAP_UUID none swap sw 0 0 +UUID=$ESP_UUID /boot vfat defaults,noatime 0 2 +FSTAB + +# ── Chroot setup ── +estat "Setting up chroot for bootloader..." +cmd mount --bind /dev "$TARGET/dev" +cmd mount --bind /proc "$TARGET/proc" +cmd mount --bind /sys "$TARGET/sys" +cmd mount --bind /run "$TARGET/run" + +# Install GRUB +estat "Installing GRUB..." +cmd chroot "$TARGET" /bin/bash -c "grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Antergos" +cmd chroot "$TARGET" /bin/bash -c "grub-mkconfig -o /boot/grub/grub.cfg" 2>/dev/null || true + +# Set hostname +cmd chroot "$TARGET" /bin/bash -c "echo antergos > /etc/hostname" + +# Root password prompt +PASSWD=$(zenity --password --title="Set root password" --text="Enter root password for the installed system" 2>/dev/null) +if [[ -n "$PASSWD" ]]; then + echo "root:$PASSWD" | cmd chroot "$TARGET" chpasswd +fi + +# Create user +USERNAME=$(zenity --entry --title="Create user" --text="Enter username for daily use:" 2>/dev/null) +if [[ -n "$USERNAME" ]]; then + cmd chroot "$TARGET" useradd -m -G wheel,audio,video,storage -s /bin/bash "$USERNAME" + UPASS=$(zenity --password --title="User password" --text="Enter password for $USERNAME:" 2>/dev/null) + [[ -n "$UPASS" ]] && echo "$USERNAME:$UPASS" | cmd chroot "$TARGET" chpasswd + cmd chroot "$TARGET" sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers +fi + +# ── Enable services via artix-service ── +estat "Enabling services..." +for sv in sddm NetworkManager dbus acpid bluetoothd cronie cupsd dhcpcd power-profiles-daemon syslog-ng userspawn; do + cmd chroot "$TARGET" artix-service enable "$sv" 2>/dev/null || true +done + +# ── Configure snapper for automatic snapshots ── +estat "Setting up snapper..." +cmd chroot "$TARGET" snapper -c root create-config / +cmd chroot "$TARGET" sed -i 's/^TIMELINE_CREATE="no"/TIMELINE_CREATE="yes"/' /etc/snapper/configs/root +cmd chroot "$TARGET" sed -i 's/^TIMELINE_LIMIT_HOURLY="[0-9]*"/TIMELINE_LIMIT_HOURLY="6"/' /etc/snapper/configs/root +cmd chroot "$TARGET" sed -i 's/^TIMELINE_LIMIT_DAILY="[0-9]*"/TIMELINE_LIMIT_DAILY="7"/' /etc/snapper/configs/root +cmd chroot "$TARGET" sed -i 's/^TIMELINE_LIMIT_WEEKLY="[0-9]*"/TIMELINE_LIMIT_WEEKLY="4"/' /etc/snapper/configs/root +cmd chroot "$TARGET" sed -i 's/^TIMELINE_LIMIT_MONTHLY="[0-9]*"/TIMELINE_LIMIT_MONTHLY="0"/' /etc/snapper/configs/root + +cat > "$TARGET/etc/cron.hourly/snapper-timeline" << 'CRON' +#!/bin/bash +# Automatic btrfs snapshots via snapper +/usr/bin/snapper -c root cleanup timeline +/usr/bin/snapper -c root cleanup number +CRON +cmd chroot "$TARGET" chmod +x /etc/cron.hourly/snapper-timeline + +# Also run cleanup daily to be safe +cat > "$TARGET/etc/cron.daily/snapper-cleanup" << 'CRON' +#!/bin/bash +# Clean up old btrfs snapshots +/usr/bin/snapper -c root cleanup timeline +/usr/bin/snapper -c root cleanup number +CRON +cmd chroot "$TARGET" chmod +x /etc/cron.daily/snapper-cleanup + +# ── Cleanup ── +estat "Cleaning up..." +for d in dev proc sys run; do + umount -l "$TARGET/$d" 2>/dev/null || true +done +for m in home var/log var/cache .snapshots boot; do + umount "$TARGET/$m" 2>/dev/null || true +done +cmd umount "$TARGET" + +# ── Final warning ── +prompt_msg "Installation complete" \ + "Antergos NeXT has been installed to $DISK. + +Filesystem: btrfs with subvolumes (@, @home, @cache, @log, @snapshots) +Snapshots: snapper creates hourly snapshots, keeps 6 hourly + 7 daily + 4 weekly +(no monthly — those are your problem) + +Remember: NO DESKTOP ENVIRONMENT was installed. +Boot up, log in as root or $USERNAME, connect to the internet, and run: + + sudo pacman -Sy plasma-meta + +(or whatever DE tickles your fancy) + +Choose Proceed to reboot, or Cancel to stay in the live environment." + +if zenity --question --title "Reboot?" --text "Reboot now?" 2>/dev/null; then + cmd reboot +fi diff --git a/iso-profiles/antergos/live-overlay/usr/share/applications/antergos-offline-install.desktop b/iso-profiles/antergos/live-overlay/usr/share/applications/antergos-offline-install.desktop new file mode 100644 index 0000000..583f50f --- /dev/null +++ b/iso-profiles/antergos/live-overlay/usr/share/applications/antergos-offline-install.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=Install Antergos NeXT (Offline — NO DE) +Name[en]=Install Antergos NeXT (Offline — NO DE) +Comment=Bare minimum install from the live ISO. No desktop environment included. Internet recommended after boot. +Exec=sudo -E antergos-offline-install +Icon=calamares +Terminal=false +Categories=Qt;System;Settings; +StartupNotify=true +X-KDE-IsAdminApplication=true diff --git a/iso-profiles/antergos/live-overlay/usr/share/applications/calamares.desktop b/iso-profiles/antergos/live-overlay/usr/share/applications/calamares.desktop index b59e6ed..1127117 100644 --- a/iso-profiles/antergos/live-overlay/usr/share/applications/calamares.desktop +++ b/iso-profiles/antergos/live-overlay/usr/share/applications/calamares.desktop @@ -8,3 +8,4 @@ Icon=calamares Terminal=false Categories=Qt;System;Settings; StartupNotify=true +X-KDE-IsAdminApplication=true diff --git a/iso-profiles/antergos/profile.yaml b/iso-profiles/antergos/profile.yaml index fb38242..d93065c 100644 --- a/iso-profiles/antergos/profile.yaml +++ b/iso-profiles/antergos/profile.yaml @@ -26,8 +26,10 @@ rootfs: - falkon - vlc - calamares + - python-toml - calamares-branding-antergos-next - antergos-welcome + - yay - antergos-next-desktop-settings - antergos-plasma-theme - antergos-sddm-theme @@ -41,6 +43,8 @@ rootfs: - librdkafka - mongo-c-driver - net-snmp + - snapper + - btrfs-progs packages-init: dinit: - pipewire-dinit