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)
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
title: Antergos NeXT
|
title: Antergos NeXT
|
||||||
description: >-
|
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
|
theme: just-the-docs
|
||||||
|
|
||||||
color_scheme: dark
|
color_scheme: dark
|
||||||
|
|||||||
@@ -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 `-<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.
|
||||||
@@ -80,7 +80,7 @@ Available desktops in online mode, sourced from Artix repos.
|
|||||||
| **Repo** | galaxy |
|
| **Repo** | galaxy |
|
||||||
| **Group** | `cosmic` |
|
| **Group** | `cosmic` |
|
||||||
| **Session** | `cosmic.desktop` |
|
| **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
|
## No Desktop
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -98,7 +98,7 @@ Artix bundles the Wayland session into `plasma-workspace` itself. Do not add it
|
|||||||
|
|
||||||
### `calamares-next.sh SetConfig()`
|
### `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
|
### 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`)
|
- Wayland is the default display server (SDDM session is `plasma.desktop`)
|
||||||
- No "Install Artix Linux" entry in the app menu
|
- No "Install Artix Linux" entry in the app menu
|
||||||
- Wallpaper is set on first login
|
- Wallpaper is set on first login
|
||||||
- Offline mode installs without internet
|
- DE selector works
|
||||||
- Online mode: init selector + DE selector both work
|
|
||||||
- Slideshow renders correctly
|
- Slideshow renders correctly
|
||||||
- Audio works after installation (pipewire should auto-start)
|
- Audio works after installation (pipewire should auto-start)
|
||||||
- After install, `/usr/lib/os-release` shows "Antergos NeXT"
|
- After install, `/usr/lib/os-release` shows "Antergos NeXT"
|
||||||
|
|||||||
+3
-4
@@ -6,7 +6,7 @@ nav_order: 1
|
|||||||
|
|
||||||
# Antergos NeXT
|
# 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
|
## Download
|
||||||
|
|
||||||
@@ -18,11 +18,10 @@ _Published to GitHub Releases. ISO also archived on the Internet Archive._
|
|||||||
This is the first stable ISO. What works:
|
This is the first stable ISO. What works:
|
||||||
|
|
||||||
- KDE Plasma 6 on Wayland (with SDDM)
|
- 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)
|
- Custom SDDM theme (Antergos brand, not Breeze)
|
||||||
- Correct `/usr/lib/os-release` (shows "Antergos NeXT", not "Artix Linux")
|
- Correct `/usr/lib/os-release` (shows "Antergos NeXT", not "Artix Linux")
|
||||||
- Offline mode: unpack pre-built Plasma squashfs, no internet required
|
- Choose your desktop (Plasma/Xfce/Cinnamon/MATE/LXQt/i3/Sway/Hyprland/COSMIC)
|
||||||
- Online mode: choose your init (Dinit/OpenRC/Runit/S6) and desktop (Plasma/Xfce/Cinnamon/MATE/LXQt/i3/Sway/Hyprland)
|
|
||||||
- GRUB with Antergos theme
|
- GRUB with Antergos theme
|
||||||
- Custom Calamares slideshow
|
- Custom Calamares slideshow
|
||||||
- Xlibre X server included
|
- Xlibre X server included
|
||||||
|
|||||||
@@ -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.
|
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.)
|
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).
|
||||||
|
|
||||||
> **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).
|
|
||||||
|
|
||||||
## The inits
|
## The inits
|
||||||
|
|
||||||
| Init | Philosophy | Complexity | Speed | Used by |
|
| Init | Philosophy | Complexity | Speed | Used by |
|
||||||
|------|-----------|------------|-------|---------|
|
|------|-----------|------------|-------|---------|
|
||||||
| [Dinit](dinit) | Modern, dependency-based, parallel | Medium | Very fast | Antergos NeXT (default), Chimera Linux, Artix, new projects |
|
| [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 — **currently broken in Antergos NeXT** |
|
| [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 |
|
| [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 |
|
| [S6](s6) | Full supervision suite, modular | Medium-High | Very fast | Artix, embedded systems |
|
||||||
|
|
||||||
|
|||||||
+13
-25
@@ -6,22 +6,19 @@ nav_order: 4
|
|||||||
|
|
||||||
# Calamares Installer
|
# 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 |
|
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.
|
||||||
|------|-------------|
|
|
||||||
| **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. |
|
|
||||||
|
|
||||||
## Fixed issues (v2026.07.11)
|
## Fixed issues
|
||||||
|
|
||||||
### Audio on installed systems
|
### 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
|
### 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
|
## Key differences from upstream Calamares
|
||||||
|
|
||||||
- `dracut`/`dracutlukscfg` replaced with `initcpiocfg`/`initcpio`/`luksopenswaphookcfg` (Artix uses mkinitcpio, not dracut)
|
- `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
|
- `removeuser` step removed, `postcfg` added
|
||||||
- `packagechooser` module compiled in (upstream Calamares skips it by default)
|
- `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** 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.
|
||||||
|
|
||||||
> **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.
|
|
||||||
|
|
||||||
## Desktop selector (online)
|
## 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.
|
- **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?"
|
- **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
|
## 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`).
|
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:
|
The `calamares-next` script (`/usr/bin/calamares-next`) handles the installer boot flow:
|
||||||
|
|
||||||
1. **Mode picker** — `kdialog`/`zenity` dialog asking Offline or Online install
|
1. **Notice** — explains why the offline mode was removed
|
||||||
2. **Configuration** — copies the appropriate `settings.conf` (offline or online) to `/etc/calamares/settings.conf`
|
2. **Welcome** — branded splash with Install button
|
||||||
3. **Launch** — runs `calamares` with the selected config
|
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`.
|
Launched via the desktop entry in the live session: `Exec=sudo -E calamares-next`.
|
||||||
|
|||||||
+10
-23
@@ -10,9 +10,10 @@ The `calamares-next` script (`calamares-next.sh`) handles the installer boot flo
|
|||||||
|
|
||||||
## Boot flow
|
## Boot flow
|
||||||
|
|
||||||
1. **Mode picker** — `kdialog` or `zenity` dialog asking Offline or Online install
|
1. **Notice** — explains why the so-called "Offline Install" was removed (it wasn't actually offline)
|
||||||
2. **Configuration** — copies the appropriate `settings.conf` (offline or online) to `/etc/calamares/settings.conf`
|
2. **Welcome** — branded splash screen with an "Install" button
|
||||||
3. **Launch** — runs `calamares` with the selected config
|
3. **Configuration** — copies `calamares-online/settings.conf` to `/etc/calamares/settings.conf`
|
||||||
|
4. **Launch** — runs `calamares` with the online config
|
||||||
|
|
||||||
## Desktop entry
|
## 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.
|
`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:
|
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.
|
||||||
|
|
||||||
- **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.
|
|
||||||
|
|
||||||
## Config switching
|
## Config switching
|
||||||
|
|
||||||
`SetConfig()` in `calamares-next.sh`:
|
`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)
|
1. `rm -f` the existing settings file at `/etc/calamares/settings.conf`
|
||||||
2. `cp` the selected settings file (offline or online) to `/etc/calamares/settings.conf`
|
2. `cp` the online settings file to `/etc/calamares/settings.conf`
|
||||||
3. Calamares reads the config on launch
|
3. Calamares reads the config on launch
|
||||||
|
|
||||||
## Hiding "Install Artix"
|
## Hiding "Install Artix"
|
||||||
@@ -45,19 +43,8 @@ The live-overlay includes `calamares-config-switcher.desktop` with `NoDisplay=tr
|
|||||||
|
|
||||||
## Module configs
|
## Module configs
|
||||||
|
|
||||||
### Online modules
|
|
||||||
|
|
||||||
Configs live in `live-overlay/etc/calamares-online/modules/`:
|
Configs live in `live-overlay/etc/calamares-online/modules/`:
|
||||||
|
|
||||||
- `packagechooser_init.conf` — init system selector using `method: netinstall-add`
|
- `packagechooser_dm.conf` — display manager selector using `method: netinstall-select`
|
||||||
- `packagechooser_desktop.conf` — DE selector using `method: legacy`
|
|
||||||
- `initcpiocfg.conf` — mkinitcpio configuration
|
- `initcpiocfg.conf` — mkinitcpio configuration
|
||||||
- `services-openrc.conf` — service enablement (works across all inits via init-specific wrappers)
|
- `services-artix.conf` — service enablement via `artix-service`
|
||||||
|
|
||||||
### 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
|
|
||||||
|
|||||||
+1
-1
@@ -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 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
|
## systemd vs OpenRC at a glance
|
||||||
|
|
||||||
|
|||||||
+6
-17
@@ -15,18 +15,11 @@ Files in `iso-profiles/antergos/live-overlay/` exist only in the live environmen
|
|||||||
live-overlay/
|
live-overlay/
|
||||||
├── etc/
|
├── etc/
|
||||||
│ ├── calamares/
|
│ ├── calamares/
|
||||||
│ │ └── settings.conf # Symlink → online or offline config
|
│ │ └── settings.conf # Replaced at runtime by online config
|
||||||
│ ├── calamares-offline/
|
|
||||||
│ │ ├── settings.conf # Offline install config (unpackfs)
|
|
||||||
│ │ └── modules/
|
|
||||||
│ │ ├── unpackfs.conf
|
|
||||||
│ │ ├── initcpiocfg.conf
|
|
||||||
│ │ └── ...
|
|
||||||
│ ├── calamares-online/
|
│ ├── calamares-online/
|
||||||
│ │ ├── settings.conf # Online install config (packagechooser)
|
│ │ ├── settings.conf # Online install config (packagechooser)
|
||||||
│ │ └── modules/
|
│ │ └── modules/
|
||||||
│ │ ├── packagechooser_init.conf # Init system selector
|
│ │ ├── packagechooser_dm.conf # Display manager selector
|
||||||
│ │ ├── packagechooser_desktop.conf # DE selector
|
|
||||||
│ │ ├── initcpiocfg.conf
|
│ │ ├── initcpiocfg.conf
|
||||||
│ │ └── ...
|
│ │ └── ...
|
||||||
│ └── sddm.conf.d/
|
│ └── sddm.conf.d/
|
||||||
@@ -42,19 +35,15 @@ live-overlay/
|
|||||||
|
|
||||||
### `etc/calamares/settings.conf`
|
### `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`
|
### `etc/calamares-online/settings.conf`
|
||||||
|
|
||||||
Two `packagechooser` instances:
|
One `packagechooser` instance for DM selection (`packagechooser@dm`) using `netinstall-select`.
|
||||||
- `packagechooser@init` — init system (Dinit, OpenRC, Runit, S6) via netinstall-add
|
|
||||||
- `packagechooser@desktop` — DE selection via legacy method
|
|
||||||
|
|
||||||
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`
|
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.
|
||||||
|
|
||||||
No packagechooser. Uses `unpackfs` to deploy a pre-built KDE Plasma squashfs, then `initcpiocfg` + `initcpio` for mkinitcpio configuration.
|
|
||||||
|
|
||||||
### `etc/calamares/modules/basestrap.conf`
|
### `etc/calamares/modules/basestrap.conf`
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ Server = https://antergos-next.github.io/antergos-packages
|
|||||||
### calamares-branding-antergos-next
|
### calamares-branding-antergos-next
|
||||||
|
|
||||||
- Ships `calamares-next.sh` — the launcher script that presents the mode picker and manages config switching
|
- 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
|
- `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)
|
### pipewire (forked)
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Wallpapers
|
title: Wallpapers
|
||||||
layout: default
|
layout: default
|
||||||
nav_order: 9
|
nav_order: 12
|
||||||
---
|
---
|
||||||
|
|
||||||
# Wallpapers
|
# Wallpapers
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ Icon=calamares
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Qt;System;Settings;
|
Categories=Qt;System;Settings;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
X-KDE-IsAdminApplication=true
|
||||||
|
|||||||
@@ -8,3 +8,4 @@ Icon=calamares
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Qt;System;Settings;
|
Categories=Qt;System;Settings;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
X-KDE-IsAdminApplication=true
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ rootfs:
|
|||||||
- antergos-release
|
- antergos-release
|
||||||
- antergos-lsb-release
|
- antergos-lsb-release
|
||||||
- calamares
|
- calamares
|
||||||
|
- python-toml
|
||||||
- calamares-branding-antergos-next-minimal
|
- calamares-branding-antergos-next-minimal
|
||||||
- antergos-next-keyring
|
- antergos-next-keyring
|
||||||
- antergos-wallpapers
|
- antergos-wallpapers
|
||||||
|
|||||||
@@ -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,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,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,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,2 +0,0 @@
|
|||||||
---
|
|
||||||
emergency: false
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
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
|
|
||||||
@@ -144,3 +144,60 @@
|
|||||||
selected: false
|
selected: false
|
||||||
packages:
|
packages:
|
||||||
- cosmic
|
- 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
|
||||||
|
|||||||
@@ -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
|
|
||||||
+36
@@ -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: ""
|
||||||
@@ -20,5 +20,7 @@ services:
|
|||||||
action: "enable"
|
action: "enable"
|
||||||
- name: "sddm"
|
- name: "sddm"
|
||||||
action: "enable"
|
action: "enable"
|
||||||
|
- name: "greetd"
|
||||||
|
action: "enable"
|
||||||
- name: "syslog-ng"
|
- name: "syslog-ng"
|
||||||
action: "enable"
|
action: "enable"
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ sequence:
|
|||||||
- welcome
|
- welcome
|
||||||
- locale
|
- locale
|
||||||
- keyboard
|
- keyboard
|
||||||
- packagechooser
|
|
||||||
- packagechooser@dm
|
- packagechooser@dm
|
||||||
- netinstall
|
- netinstall
|
||||||
- partition
|
- partition
|
||||||
|
|||||||
@@ -55,6 +55,27 @@
|
|||||||
- intel-ucode
|
- intel-ucode
|
||||||
- amd-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"
|
- name: "Utilities"
|
||||||
description: "System Utilities"
|
description: "System Utilities"
|
||||||
selected: true
|
selected: true
|
||||||
@@ -79,7 +100,7 @@
|
|||||||
subgroups:
|
subgroups:
|
||||||
- name: "Plasma"
|
- name: "Plasma"
|
||||||
description: "KDE Plasma Desktop"
|
description: "KDE Plasma Desktop"
|
||||||
selected: true
|
selected: false
|
||||||
packages:
|
packages:
|
||||||
- antergos-plasma-theme
|
- antergos-plasma-theme
|
||||||
- antergos-next-desktop-settings
|
- antergos-next-desktop-settings
|
||||||
@@ -249,6 +270,11 @@
|
|||||||
packages:
|
packages:
|
||||||
- hyprland
|
- hyprland
|
||||||
- xdg-desktop-portal-hyprland
|
- xdg-desktop-portal-hyprland
|
||||||
|
- name: "COSMIC"
|
||||||
|
description: "COSMIC Desktop (Rust/Wayland — select greetd as DM)"
|
||||||
|
selected: false
|
||||||
|
packages:
|
||||||
|
- cosmic
|
||||||
|
|
||||||
- name: "SDDM"
|
- name: "SDDM"
|
||||||
description: "SDDM display manager"
|
description: "SDDM display manager"
|
||||||
|
|||||||
@@ -25,12 +25,12 @@ items:
|
|||||||
description: "Lightweight display manager (LXDE)"
|
description: "Lightweight display manager (LXDE)"
|
||||||
screenshot: ""
|
screenshot: ""
|
||||||
|
|
||||||
- id: LY
|
|
||||||
name: ly
|
|
||||||
description: "Minimal TUI display manager"
|
|
||||||
screenshot: ""
|
|
||||||
|
|
||||||
- id: greetd
|
- id: greetd
|
||||||
name: greetd
|
name: greetd
|
||||||
description: "Minimal display manager (recommended for COSMIC)"
|
description: "Minimal display manager (recommended for COSMIC)"
|
||||||
screenshot: ""
|
screenshot: ""
|
||||||
|
|
||||||
|
- id: LY
|
||||||
|
name: ly
|
||||||
|
description: "Minimal TUI display manager"
|
||||||
|
screenshot: ""
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ services:
|
|||||||
action: "enable"
|
action: "enable"
|
||||||
- name: "sddm"
|
- name: "sddm"
|
||||||
action: "enable"
|
action: "enable"
|
||||||
|
- name: "greetd"
|
||||||
|
action: "enable"
|
||||||
- name: "syslog-ng"
|
- name: "syslog-ng"
|
||||||
action: "enable"
|
action: "enable"
|
||||||
- name: "userspawn"
|
- name: "userspawn"
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -8,3 +8,4 @@ Icon=calamares
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Qt;System;Settings;
|
Categories=Qt;System;Settings;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
X-KDE-IsAdminApplication=true
|
||||||
|
|||||||
@@ -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
|
||||||
+11
@@ -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
|
||||||
@@ -8,3 +8,4 @@ Icon=calamares
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Categories=Qt;System;Settings;
|
Categories=Qt;System;Settings;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
X-KDE-IsAdminApplication=true
|
||||||
|
|||||||
@@ -26,8 +26,10 @@ rootfs:
|
|||||||
- falkon
|
- falkon
|
||||||
- vlc
|
- vlc
|
||||||
- calamares
|
- calamares
|
||||||
|
- python-toml
|
||||||
- calamares-branding-antergos-next
|
- calamares-branding-antergos-next
|
||||||
- antergos-welcome
|
- antergos-welcome
|
||||||
|
- yay
|
||||||
- antergos-next-desktop-settings
|
- antergos-next-desktop-settings
|
||||||
- antergos-plasma-theme
|
- antergos-plasma-theme
|
||||||
- antergos-sddm-theme
|
- antergos-sddm-theme
|
||||||
@@ -41,6 +43,8 @@ rootfs:
|
|||||||
- librdkafka
|
- librdkafka
|
||||||
- mongo-c-driver
|
- mongo-c-driver
|
||||||
- net-snmp
|
- net-snmp
|
||||||
|
- snapper
|
||||||
|
- btrfs-progs
|
||||||
packages-init:
|
packages-init:
|
||||||
dinit:
|
dinit:
|
||||||
- pipewire-dinit
|
- pipewire-dinit
|
||||||
|
|||||||
Reference in New Issue
Block a user