From b171015d7b38b984ff1454e2abe0b631b9ea7d49 Mon Sep 17 00:00:00 2001 From: Celestia Ludenberg Date: Tue, 23 Jun 2026 01:18:22 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20major=20Calamares=20overhaul=20?= =?UTF-8?q?=E2=80=94=20dracut=20migration,=20branding=20polish,=20online/o?= =?UTF-8?q?ffline=20installer=20split?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit === Calamares (core) === - Unskip packagechooserq from _skip_modules so it compiles in - pkgrel 2→3 === Calamares Branding === branding.desc: - Blue Antergos color scheme (#4A9EFF accent, #20252B sidebar) - New Antergos logo/icon PNGs from cnchi assets - Larger window (860x540) - Fix sidebar/navigation to widget mode stylesheet.qss: - Blue-themed QSS with gradients, styled buttons/inputs/sidebar show.qml: - 6-slide Calamares slideshow: welcome, EndeavourOS base, DE list, Antergos tools, finishing, thank-you (dark slide) dracut migration: - dracut.conf (NEW): initramfsName for dracut module compatibility - Remove mkinitcpio reference, dracut handles initramfs generation === Online/Offline Installer Split === Problem: unpackfs (GNOME squashfs) + netinstall (selected DE) installs two DEs — wasteful and messy. Solution: Two entirely separate Calamares configurations. settings_offline.conf (NEW): - Traditional unpackfs path, no netinstall steps - Installs GNOME from pre-built squashfs (current behavior) - Used by default `calamares` or via `calamares -c /etc/calamares-offline` settings_online.conf (NEW): - No unpackfs — everything installed from internet via netinstall - netinstall in both show (DE selection) and exec (package install) - Base system + Antergos packages as hidden/immutable groups - Used via `calamares -c /etc/calamares-online` netinstall.yaml (NEW): - Base System (hidden, immutable): kernel, base, firmware, network - Antergos Packages (hidden, immutable): wallpapers, welcome, yay, calamares - 8 Desktop Environments: KDE, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3/Sway - Hardware Support group: GPU drivers, vulkan, pipewire netinstall.conf (NEW): groupsUrl pointing to netinstall.yaml welcome.conf (NEW): internet check (informational), 8GB storage/2GB RAM/power required calamares-next.sh (NEW): Launcher script — zenity/kdialog/dialog choice between Offline and Online, runs Calamares with the right config. Checks internet connectivity before starting online install. PKGBUILD install layout: - Branding shared at /usr/share/calamares/branding/antergos-next/ - Modules shared at /etc/calamares/modules/ - /etc/calamares-offline/ — settings.conf for offline - /etc/calamares-online/ — settings.conf for online - /etc/calamares/settings.conf → symlink to offline (default) - /usr/bin/calamares-next — launcher script === Antergos Welcome === PKGBUILD: copy data/preferences.json to package root (fixes runtime preferences loading in subdirectory layout) --- packages/antergos-welcome/PKGBUILD | 1 + .../calamares-branding-antergos-next/PKGBUILD | 101 ++++----- .../antergos-icon.png | Bin 0 -> 12912 bytes .../antergos-logo.png | Bin 0 -> 17598 bytes .../branding.desc | 43 +++- .../calamares-next.sh | 64 ++++++ .../dracut.conf | 10 + .../netinstall.conf | 3 + .../netinstall.yaml | 126 +++++++++++ .../settings_offline.conf | 45 ++++ .../settings_online.conf | 46 ++++ .../calamares-branding-antergos-next/show.qml | 211 +++++++++++++++++- .../stylesheet.qss | 57 +++-- .../unpackfs.conf | 6 + .../welcome.conf | 10 + packages/calamares/PKGBUILD | 5 +- 16 files changed, 634 insertions(+), 94 deletions(-) create mode 100644 packages/calamares-branding-antergos-next/antergos-icon.png create mode 100644 packages/calamares-branding-antergos-next/antergos-logo.png create mode 100644 packages/calamares-branding-antergos-next/calamares-next.sh create mode 100644 packages/calamares-branding-antergos-next/dracut.conf create mode 100644 packages/calamares-branding-antergos-next/netinstall.conf create mode 100644 packages/calamares-branding-antergos-next/netinstall.yaml create mode 100644 packages/calamares-branding-antergos-next/settings_offline.conf create mode 100644 packages/calamares-branding-antergos-next/settings_online.conf create mode 100644 packages/calamares-branding-antergos-next/unpackfs.conf create mode 100644 packages/calamares-branding-antergos-next/welcome.conf diff --git a/packages/antergos-welcome/PKGBUILD b/packages/antergos-welcome/PKGBUILD index 6c49084..aca5ca8 100644 --- a/packages/antergos-welcome/PKGBUILD +++ b/packages/antergos-welcome/PKGBUILD @@ -25,6 +25,7 @@ package() { cp -r src "${pkgdir}/usr/share/antergos-next/antergos-welcome/" cp -r data "${pkgdir}/usr/share/antergos-next/antergos-welcome/" + cp data/preferences.json "${pkgdir}/usr/share/antergos-next/antergos-welcome/" cp -r ui "${pkgdir}/usr/share/antergos-next/antergos-welcome/" cp -r po "${pkgdir}/usr/share/antergos-next/antergos-welcome/" cp -r utils "${pkgdir}/usr/share/antergos-next/antergos-welcome/" diff --git a/packages/calamares-branding-antergos-next/PKGBUILD b/packages/calamares-branding-antergos-next/PKGBUILD index 7edd183..ee68e03 100644 --- a/packages/calamares-branding-antergos-next/PKGBUILD +++ b/packages/calamares-branding-antergos-next/PKGBUILD @@ -2,76 +2,71 @@ pkgname=calamares-branding-antergos-next pkgver=1.0 -pkgrel=2 -pkgdesc="Minimal Calamares branding for Antergos NeXT" +pkgrel=5 +pkgdesc="Calamares branding for Antergos NeXT with offline/online installer support" arch=('any') url="https://github.com/Antergos-NeXT" license=('GPL3') depends=('calamares') +optdepends=('zenity: graphical mode chooser dialog') source=("branding.desc" "stylesheet.qss" - "show.qml") + "show.qml" + "unpackfs.conf" + "dracut.conf" + "antergos-logo.png" + "antergos-icon.png" + "netinstall.yaml" + "netinstall.conf" + "welcome.conf" + "settings_offline.conf" + "settings_online.conf" + "calamares-next.sh") sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' 'SKIP' 'SKIP') package() { + # Branding data (shared between offline/online) local _brand="/usr/share/calamares/branding/antergos-next" install -dm755 "${pkgdir}${_brand}" - cp "branding.desc" "${pkgdir}${_brand}/" cp "stylesheet.qss" "${pkgdir}${_brand}/" cp "show.qml" "${pkgdir}${_brand}/" + cp "antergos-logo.png" "${pkgdir}${_brand}/" + cp "antergos-icon.png" "${pkgdir}${_brand}/" - # Symlink Antergos logo from cnchi or wallpapers - # Use antergos-icon from system if available + # Shared Calamares modules + install -dm755 "${pkgdir}/etc/calamares/modules" + cp "unpackfs.conf" "${pkgdir}/etc/calamares/modules/" + cp "dracut.conf" "${pkgdir}/etc/calamares/modules/" + cp "netinstall.conf" "${pkgdir}/etc/calamares/modules/" + cp "netinstall.yaml" "${pkgdir}/etc/calamares/modules/" + cp "welcome.conf" "${pkgdir}/etc/calamares/modules/" + + # Offline config directory + install -dm755 "${pkgdir}/etc/calamares-offline" + cp "settings_offline.conf" "${pkgdir}/etc/calamares-offline/settings.conf" + + # Online config directory + install -dm755 "${pkgdir}/etc/calamares-online" + cp "settings_online.conf" "${pkgdir}/etc/calamares-online/settings.conf" + + # Default: offline mode (for direct calamares launch) install -dm755 "${pkgdir}/etc/calamares" - cat > "${pkgdir}/etc/calamares/settings.conf" << 'CONF' ---- -modules-search: [ local ] + ln -sf "../calamares-offline/settings.conf" "${pkgdir}/etc/calamares/settings.conf" -sequence: -- show: - - welcome - - locale - - keyboard - - partition - - users - - summary -- exec: - - partition - - mount - - unpackfs - - machineid - - fstab - - locale - - keyboard - - localecfg - - luksbootkeyfile - - luksopenswaphookcfg - - initcpiocfg - - initcpio - - users - - displaymanager - - networkcfg - - hwclock - - services-systemd - - grubcfg - - bootloader - - packages - - removeuser - - 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 -CONF + # Launcher script + install -dm755 "${pkgdir}/usr/bin" + install -m755 "calamares-next.sh" "${pkgdir}/usr/bin/calamares-next" } diff --git a/packages/calamares-branding-antergos-next/antergos-icon.png b/packages/calamares-branding-antergos-next/antergos-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a3748b704ec64e418714ef13e8cf3eac760ea22a GIT binary patch literal 12912 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/dev/null; then + DIALOG="zenity" +elif command -v kdialog &>/dev/null; then + DIALOG="kdialog" +else + DIALOG="" +fi + +# Check for internet connectivity +check_net() { + ping -c 1 -W 2 archlinux.org &>/dev/null +} + +CHOICE="" +if [ -n "$DIALOG" ]; then + if [ "$DIALOG" = "zenity" ]; then + CHOICE=$(zenity --list \ + --title="Antergos NeXT Installer" \ + --text="Choose installation mode:" \ + --width=500 --height=300 \ + --column="Mode" --column="Description" \ + "Offline" "Install GNOME desktop from the live ISO. No internet required." \ + "Online" "Choose a desktop environment and install from the internet.") + else + CHOICE=$(kdialog --menu "Antergos NeXT Installer\nChoose installation mode:" \ + "Offline" "Install GNOME desktop from the live ISO. No internet required." \ + "Online" "Choose a desktop environment and install from the internet.") + fi +else + echo "Antergos NeXT Installer" + echo "======================" + echo "1) Offline — Install GNOME from ISO (no internet)" + echo "2) Online — Choose DE and install from internet" + echo "" + read -rp "Choice [1]: " n + case "$n" in + 2|online|Online) CHOICE="Online" ;; + *) CHOICE="Offline" ;; + esac +fi + +case "$CHOICE" in + "Online") + # Online mode: use netinstall for DE selection, no unpackfs + if ! check_net; then + if [ -n "$DIALOG" ]; then + "$DIALOG" --error --text="No internet connection detected.\n\nOnline installation requires a working network connection.\nPlease connect to the internet and try again." + fi + exit 1 + fi + exec calamares -c /etc/calamares-online + ;; + *) + # Offline mode: use unpackfs with GNOME squashfs + exec calamares -c /etc/calamares-offline + ;; +esac diff --git a/packages/calamares-branding-antergos-next/dracut.conf b/packages/calamares-branding-antergos-next/dracut.conf new file mode 100644 index 0000000..f923bb6 --- /dev/null +++ b/packages/calamares-branding-antergos-next/dracut.conf @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +# +# Run dracut(8) for the installed kernel +--- +# Specify the output initramfs filename (default: initramfs-.img) +initramfsName: /boot/initramfs-linux.img + +# Optional arguments to dracut; -f is always implied +options: [ "-f" ] diff --git a/packages/calamares-branding-antergos-next/netinstall.conf b/packages/calamares-branding-antergos-next/netinstall.conf new file mode 100644 index 0000000..8641d3f --- /dev/null +++ b/packages/calamares-branding-antergos-next/netinstall.conf @@ -0,0 +1,3 @@ +--- +groupsUrl: /etc/calamares/modules/netinstall.yaml +operation: install diff --git a/packages/calamares-branding-antergos-next/netinstall.yaml b/packages/calamares-branding-antergos-next/netinstall.yaml new file mode 100644 index 0000000..416a012 --- /dev/null +++ b/packages/calamares-branding-antergos-next/netinstall.yaml @@ -0,0 +1,126 @@ +--- +- name: "Desktop Environments" + description: "Select the desktop environment to install. Choose one." + selected: false + hidden: false + immutable: false + critical: false + subgroups: + - name: "KDE Plasma" + description: "Full-featured, modern desktop with KDE applications" + packages: + - plasma-meta + - kde-applications-meta + selected: false + critical: false + - name: "GNOME" + description: "Modern and streamlined desktop environment" + packages: + - gnome + - gnome-tweaks + - gnome-shell-extensions + selected: true + critical: false + - name: "Xfce" + description: "Fast and lightweight classic desktop" + packages: + - xfce4 + - xfce4-goodies + selected: false + critical: false + - name: "Budgie" + description: "Elegant and simple desktop environment" + packages: + - budgie-desktop + - budgie-desktop-view + - budgie-screensaver + selected: false + critical: false + - name: "Cinnamon" + description: "Traditional desktop with modern conventions" + packages: + - cinnamon + - cinnamon-translations + selected: false + critical: false + - name: "MATE" + description: "Intuitive and attractive classic desktop" + packages: + - mate + - mate-extra + selected: false + critical: false + - name: "LXQt" + description: "Lightweight Qt desktop environment" + packages: + - lxqt + - lxqt-connman-applet + - oxygen-icons + selected: false + critical: false + - name: "i3 / Sway" + description: "Tiling window managers for power users" + packages: + - i3-wm + - i3status + - i3lock + - dmenu + - sway + - waybar + - wofi + selected: false + critical: false + +- name: "Base System" + description: "Core system packages for a functional Arch Linux installation" + selected: true + hidden: true + immutable: true + critical: true + packages: + - base + - base-devel + - linux + - linux-firmware + - linux-headers + - amd-ucode + - intel-ucode + - networkmanager + - network-manager-applet + - sudo + - nano + - which + - man-db + - man-pages + +- name: "Antergos Packages" + description: "Antergos NeXT branding and tools" + selected: true + hidden: true + immutable: true + critical: false + packages: + - antergos-wallpapers + - antergos-welcome + - yay + - calamares + - calamares-branding-antergos-next + - firefox + +- name: "Hardware Support" + description: "Additional hardware drivers and firmware" + selected: false + hidden: false + immutable: false + critical: false + packages: + - mesa + - mesa-utils + - vulkan-intel + - vulkan-radeon + - nvidia-open + - nvidia-utils + - pipewire + - pipewire-pulse + - pipewire-alsa + - wireplumber diff --git a/packages/calamares-branding-antergos-next/settings_offline.conf b/packages/calamares-branding-antergos-next/settings_offline.conf new file mode 100644 index 0000000..5644be7 --- /dev/null +++ b/packages/calamares-branding-antergos-next/settings_offline.conf @@ -0,0 +1,45 @@ +--- +modules-search: [ /etc/calamares/modules ] + +sequence: +- show: + - welcome + - locale + - keyboard + - partition + - users + - summary +- exec: + - partition + - mount + - unpackfs + - machineid + - fstab + - locale + - keyboard + - localecfg + - luksbootkeyfile + - dracutlukscfg + - dracut + - users + - displaymanager + - networkcfg + - hwclock + - services-systemd + - grubcfg + - bootloader + - packages + - removeuser + - 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/packages/calamares-branding-antergos-next/settings_online.conf b/packages/calamares-branding-antergos-next/settings_online.conf new file mode 100644 index 0000000..9223392 --- /dev/null +++ b/packages/calamares-branding-antergos-next/settings_online.conf @@ -0,0 +1,46 @@ +--- +modules-search: [ /etc/calamares/modules ] + +sequence: +- show: + - welcome + - locale + - keyboard + - netinstall + - partition + - users + - summary +- exec: + - partition + - mount + - netinstall + - machineid + - fstab + - locale + - keyboard + - localecfg + - luksbootkeyfile + - dracutlukscfg + - dracut + - users + - displaymanager + - networkcfg + - hwclock + - services-systemd + - grubcfg + - bootloader + - packages + - removeuser + - 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/packages/calamares-branding-antergos-next/show.qml b/packages/calamares-branding-antergos-next/show.qml index e4de7ce..81a078c 100644 --- a/packages/calamares-branding-antergos-next/show.qml +++ b/packages/calamares-branding-antergos-next/show.qml @@ -7,37 +7,224 @@ Presentation id: presentation Timer { - interval: 5000 + interval: 8000 running: presentation.activatedInCalamares repeat: true onTriggered: presentation.goToNextSlide() } Slide { + anchors.fill: parent + + Image { + id: logo + source: "antergos-logo.png" + width: 320 + height: 92 + fillMode: Image.PreserveAspectFit + anchors { + centerIn: parent + verticalCenterOffset: -40 + } + } + Text { - anchors.centerIn: parent + anchors { + top: logo.bottom + topMargin: 20 + horizontalCenter: parent.horizontalCenter + } text: "Welcome to Antergos NeXT" - font.pixelSize: 24 + font.pixelSize: 22 font.bold: true - color: "#2a7ab5" + color: "#4A9EFF" + } + + Text { + anchors { + top: parent.verticalCenter + topMargin: 40 + horizontalCenter: parent.horizontalCenter + } + text: "A modern Arch Linux experience" + font.pixelSize: 14 + color: "#7F8C8D" } } Slide { - Text { - anchors.centerIn: parent - text: "Installing Antergos NeXT..." - font.pixelSize: 20 - color: "#333" + anchors.fill: parent + + Rectangle { + anchors.fill: parent + color: "#F0F4F8" + + Text { + anchors { + top: parent.top + topMargin: 30 + horizontalCenter: parent.horizontalCenter + } + text: "Built on EndeavourOS" + font.pixelSize: 20 + font.bold: true + color: "#2C3E50" + } + + Column { + anchors { + centerIn: parent + verticalCenterOffset: 10 + } + spacing: 12 + + Text { text: "• EndeavourOS base — stable, rolling" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• dracut initramfs — fast, reliable" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• systemd — modern init system" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Latest Linux kernel and drivers" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Arch User Repository (AUR) access" ; font.pixelSize: 13 ; color: "#34495E" } + } } } Slide { + anchors.fill: parent + Text { - anchors.centerIn: parent - text: "Almost done!" + anchors { + top: parent.top + topMargin: 30 + horizontalCenter: parent.horizontalCenter + } + text: "Desktop Environments" font.pixelSize: 20 - color: "#333" + font.bold: true + color: "#2C3E50" + } + + Column { + anchors { + centerIn: parent + verticalCenterOffset: 10 + } + spacing: 12 + + Text { text: "• KDE Plasma — full-featured, customizable" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• GNOME — modern, streamlined" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Xfce — lightweight, classic" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Budgie — elegant, simple" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• i3/ Sway — tiling window managers" ; font.pixelSize: 13 ; color: "#34495E" } } } + + Slide { + anchors.fill: parent + + Rectangle { + anchors.fill: parent + color: "#F0F4F8" + + Text { + anchors { + top: parent.top + topMargin: 30 + horizontalCenter: parent.horizontalCenter + } + text: "Antergos Tools" + font.pixelSize: 20 + font.bold: true + color: "#2C3E50" + } + + Column { + anchors { + centerIn: parent + verticalCenterOffset: 10 + } + spacing: 12 + + Text { text: "• Welcome app — system info & quick config" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Calamares installer — easy setup" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Cnchi — classic Antergos installer" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Pacman + AUR helper — full package access" ; font.pixelSize: 13 ; color: "#34495E" } + Text { text: "• Online documentation and community" ; font.pixelSize: 13 ; color: "#34495E" } + } + } + } + + Slide { + anchors.fill: parent + + Text { + anchors { + top: parent.top + topMargin: 60 + horizontalCenter: parent.horizontalCenter + } + text: "Finishing Installation..." + font.pixelSize: 22 + font.bold: true + color: "#4A9EFF" + } + + Image { + source: "antergos-icon.png" + width: 96 + height: 96 + fillMode: Image.PreserveAspectFit + anchors { + centerIn: parent + verticalCenterOffset: 10 + } + } + + Text { + anchors { + bottom: parent.bottom + bottomMargin: 40 + horizontalCenter: parent.horizontalCenter + } + text: "Almost there — your system is being configured" + font.pixelSize: 13 + color: "#7F8C8D" + } + } + + Slide { + anchors.fill: parent + + Rectangle { + anchors.fill: parent + color: "#20252B" + + Text { + anchors { + centerIn: parent + verticalCenterOffset: -30 + } + text: "Thank You!" + font.pixelSize: 28 + font.bold: true + color: "#4A9EFF" + } + + Text { + anchors { + top: parent.verticalCenter + topMargin: 10 + horizontalCenter: parent.horizontalCenter + } + text: "Antergos NeXT is ready.
Reboot and enjoy!" + font.pixelSize: 14 + color: "#C8D6E5" + horizontalAlignment: Text.Center + } + } + } + + function onActivate() { + presentation.currentSlide = 0 + } + + function onLeave() {} } diff --git a/packages/calamares-branding-antergos-next/stylesheet.qss b/packages/calamares-branding-antergos-next/stylesheet.qss index 179d678..ddbbaa5 100644 --- a/packages/calamares-branding-antergos-next/stylesheet.qss +++ b/packages/calamares-branding-antergos-next/stylesheet.qss @@ -1,47 +1,78 @@ -/* Antergos NeXT Calamares theme - minimal */ +/* Antergos NeXT Calamares theme */ QWidget { font-family: "Noto Sans", "DejaVu Sans", sans-serif; font-size: 10pt; - color: #333; + color: #2C3E50; } QMainWindow { - background-color: #f5f5f5; + background-color: #FAFBFC; } QLabel#titleLabel { font-size: 18pt; font-weight: bold; - color: #2a7ab5; + color: #4A9EFF; } QLabel#subtitleLabel { font-size: 11pt; - color: #666; + color: #7F8C8D; } QPushButton { - background-color: #2a7ab5; + background-color: #4A9EFF; color: white; border: none; border-radius: 4px; - padding: 6px 16px; + padding: 7px 18px; min-height: 24px; + font-weight: bold; } QPushButton:hover { - background-color: #23689e; + background-color: #3B8AE5; } QPushButton:pressed { - background-color: #1c557f; + background-color: #2D7BD4; +} +QPushButton:disabled { + background-color: #BDC3C7; + color: #95A5A6; } QPushButton#sidebarButton { background-color: transparent; - color: #333; + color: #C8D6E5; text-align: left; - padding: 8px; + padding: 10px 14px; border: none; border-radius: 0; + font-size: 10pt; } QPushButton#sidebarButton:hover { - background-color: #e0e0e0; + background-color: #2C3E50; } QPushButton#sidebarButton:checked { - background-color: #2a7ab5; + background-color: #4A9EFF; color: white; + font-weight: bold; +} +QComboBox { + padding: 5px 10px; + border: 1px solid #D5D8DC; + border-radius: 4px; + background: white; +} +QLineEdit { + padding: 6px 10px; + border: 1px solid #D5D8DC; + border-radius: 4px; + background: white; +} +QProgressBar { + border: 1px solid #D5D8DC; + border-radius: 4px; + background: #ECF0F1; + text-align: center; + height: 20px; +} +QProgressBar::chunk { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop:0 #4A9EFF, stop:1 #8BC4FF); + border-radius: 3px; } diff --git a/packages/calamares-branding-antergos-next/unpackfs.conf b/packages/calamares-branding-antergos-next/unpackfs.conf new file mode 100644 index 0000000..fc6f900 --- /dev/null +++ b/packages/calamares-branding-antergos-next/unpackfs.conf @@ -0,0 +1,6 @@ +--- +unpack: + - source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs" + sourcefs: "squashfs" + destination: "/" +... \ No newline at end of file diff --git a/packages/calamares-branding-antergos-next/welcome.conf b/packages/calamares-branding-antergos-next/welcome.conf new file mode 100644 index 0000000..4a8fc34 --- /dev/null +++ b/packages/calamares-branding-antergos-next/welcome.conf @@ -0,0 +1,10 @@ +--- +requirements: + internet: true + storage: 8.0 + ram: 2.0 + power: true + required: + - storage + - ram + - power diff --git a/packages/calamares/PKGBUILD b/packages/calamares/PKGBUILD index 712c03c..e957b2a 100644 --- a/packages/calamares/PKGBUILD +++ b/packages/calamares/PKGBUILD @@ -5,7 +5,7 @@ _pkgname="calamares" pkgname="$_pkgname" pkgver=3.4.2 -pkgrel=1 +pkgrel=3 pkgdesc="Distribution-independent installer framework" url="https://codeberg.org/Calamares/calamares" license=("GPL-3.0-or-later") @@ -33,8 +33,6 @@ sha256sums=('733bbbb00dc9f84874bd5c22960952f317ea2537565431179fa2152b2fbfdccc') build() { local _skip_modules=( - dracut - dracutlukscfg dummycpp dummyprocess dummypython @@ -43,7 +41,6 @@ build() { initramfscfg interactiveterminal packagechooser - packagechooserq services-openrc )