feat: add Antergos NeXT Minimal (Xfce) profile — lightweight ISO edition

Introduces iso-profiles/antergos-minimal/, a new Xfce-based profile for
building a lightweight Antergos NeXT ISO under the 2 GB GitHub Releases
limit (the full Plasma profile produces ~2.15 GB).

Profile structure:
- profile.yaml: Xfce4 desktop, dinit-only init packages, Falkon browser,
  minimal app selection, antergos-xfce-theme included in rootfs
- root-overlay/: SDDM configured for xfce.desktop, GRUB theme pointed to
  antergos, xfconf settings for Antergos-NeXT GTK/xfwm4 theme
- live-overlay/: Calamares offline + online configs, netinstall with
  multiple DE options (Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway,
  Hyprland), notesqml@minimal-info step explaining the edition rationale,
  basestrap operations for antergos-release/grub-theme/keyring, display
  manager selection (SDDM/LightDM/LXDM/LY), audio services (pipewire),
  and antergos-xfce-theme in the Xfce subgroup

Default Xfce theme is set to Antergos-NeXT (Numix-derived, blue accent)
via xfconf XML in both live-overlay and root-overlay skel directories.
This commit is contained in:
2026-07-08 18:51:35 +02:00
parent 64d5d7bf35
commit 8698fe4995
91 changed files with 4196 additions and 0 deletions
@@ -0,0 +1,21 @@
---
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"
@@ -0,0 +1,10 @@
---
displaymanagers:
- lightdm
- gdm
- mdm
- sddm
- lxdm
- slim
basicSetup: false
@@ -0,0 +1,6 @@
---
restartNowMode: user-unchecked
restartNowCommand: "loginctl reboot"
notifyOnFinished: false
@@ -0,0 +1,51 @@
# 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
@@ -0,0 +1,4 @@
---
kernel: all
be_unsafe: false
@@ -0,0 +1,7 @@
---
localeGenPath: /etc/locale.gen
geoip:
style: "json"
url: "https://geoip.kde.org/v1/calamares"
selector: ""
@@ -0,0 +1,5 @@
---
systemd: false
dbus: false
dbus-symlink: false
entropy-copy: false
@@ -0,0 +1,131 @@
# 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 ]
@@ -0,0 +1,32 @@
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"]
@@ -0,0 +1,13 @@
---
# 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
@@ -0,0 +1,24 @@
---
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"
@@ -0,0 +1,2 @@
---
emergency: false
@@ -0,0 +1,5 @@
---
unpack:
- source: "/run/artix/bootmnt/LiveOS/rootfs.img"
sourcefs: 'squashfs'
destination: ""
@@ -0,0 +1,49 @@
---
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 ]
@@ -0,0 +1,19 @@
---
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
@@ -0,0 +1,51 @@
---
modules-search: [ local ]
sequence:
- show:
- welcome
- locale
- keyboard
- partition
- users
- summary
- exec:
- partition
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- luksopenswaphookcfg
- luksbootkeyfile
- initcpiocfg
- initcpio
- users
- displaymanager
- networkcfg
- hwclock
- services-artix
- grubcfg
- bootloader
- postcfg
- umount
- show:
- finished
branding: antergos-next-minimal
prompt-install: false
dont-chroot: false
oem-setup: false
disable-cancel: false
disable-cancel-during-exec: false
hide-back-and-next-during-exec: false
quit-at-end: false