diff --git a/packages.yaml b/packages.yaml index d6c6f5b..f3f86c6 100644 --- a/packages.yaml +++ b/packages.yaml @@ -12,5 +12,7 @@ packages: - antergos-live - calamares - calamares-branding-antergos-next + - calamares-branding-antergos-next-minimal + - antergos-xfce-theme - downgrade - yay \ No newline at end of file diff --git a/packages/antergos-xfce-theme/Antergos-NeXT.tar.gz b/packages/antergos-xfce-theme/Antergos-NeXT.tar.gz new file mode 100644 index 0000000..923e60b Binary files /dev/null and b/packages/antergos-xfce-theme/Antergos-NeXT.tar.gz differ diff --git a/packages/antergos-xfce-theme/PKGBUILD b/packages/antergos-xfce-theme/PKGBUILD new file mode 100644 index 0000000..71df1bd --- /dev/null +++ b/packages/antergos-xfce-theme/PKGBUILD @@ -0,0 +1,17 @@ +# Maintainer: Celestia Ludenberg + +pkgname=antergos-xfce-theme +pkgver=1 +pkgrel=1 +pkgdesc="Antergos NeXT Xfwm4/GTK theme (based on Numix)" +arch=('any') +url="https://github.com/Antergos-NeXT/antergos-packages" +license=('GPL') +groups=('antergos-branding') +depends=('gtk-engine-murrine') +source=("Antergos-NeXT.tar.gz") +sha256sums=('SKIP') + +package() { + tar -xzf "${srcdir}/Antergos-NeXT.tar.gz" -C "${pkgdir}/usr/share/themes/" +} diff --git a/packages/calamares-branding-antergos-next-minimal/Dia.qml b/packages/calamares-branding-antergos-next-minimal/Dia.qml new file mode 100644 index 0000000..60c1389 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/Dia.qml @@ -0,0 +1,8 @@ +import QtQuick 2.15 + +Item { + property string title + property string body + property string footer + property url image +} diff --git a/packages/calamares-branding-antergos-next-minimal/PKGBUILD b/packages/calamares-branding-antergos-next-minimal/PKGBUILD new file mode 100644 index 0000000..f8a3e2b --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/PKGBUILD @@ -0,0 +1,126 @@ +# Maintainer: Celestia Ludenberg + +pkgname=calamares-branding-antergos-next-minimal +pkgver=1.0 +pkgrel=1 +pkgdesc="Calamares branding for Antergos NeXT Minimal (Xfce) with offline/online installer support" +arch=('any') +url="https://github.com/Antergos-NeXT" +license=('GPL3') +depends=('calamares' 'yad') +optdepends=('zenity: fallback for graphical mode chooser dialog') +source=("branding.desc" + "stylesheet.qss" + "show.qml" + "Dia.qml" + "Slider.qml" + "calamares-sidebar.qml" + "calamares-navigation.qml" + "background.jpg" + "pan-up-symbolic.svg" + "pan-end-symbolic.svg" + "pan-start-symbolic.svg" + "draw-rectangle.svg" + "unpackfs.conf" + "initcpiocfg.conf" + "initcpio.conf" + "antergos-logo.png" + "antergos-icon.png" + "netinstall.yaml" + "netinstall.conf" + "packagechooser.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' + '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-minimal" + install -dm755 "${pkgdir}${_brand}" + cp "branding.desc" "${pkgdir}${_brand}/" + cp "stylesheet.qss" "${pkgdir}${_brand}/" + cp "show.qml" "${pkgdir}${_brand}/" + cp "Dia.qml" "${pkgdir}${_brand}/" + cp "Slider.qml" "${pkgdir}${_brand}/" + cp "calamares-sidebar.qml" "${pkgdir}${_brand}/" + cp "calamares-navigation.qml" "${pkgdir}${_brand}/" + cp "background.jpg" "${pkgdir}${_brand}/" + cp "pan-up-symbolic.svg" "${pkgdir}${_brand}/" + cp "pan-end-symbolic.svg" "${pkgdir}${_brand}/" + cp "pan-start-symbolic.svg" "${pkgdir}${_brand}/" + cp "draw-rectangle.svg" "${pkgdir}${_brand}/" + cp "antergos-logo.png" "${pkgdir}${_brand}/" + cp "antergos-icon.png" "${pkgdir}${_brand}/" + + # Also overwrite default branding so Artix calamares package can't sneak in + local _defbrand="/usr/share/calamares/branding/default" + install -dm755 "${pkgdir}${_defbrand}" + cp "branding.desc" "${pkgdir}${_defbrand}/" + cp "show.qml" "${pkgdir}${_defbrand}/" + cp "Dia.qml" "${pkgdir}${_defbrand}/" + cp "Slider.qml" "${pkgdir}${_defbrand}/" + cp "calamares-sidebar.qml" "${pkgdir}${_defbrand}/" + cp "calamares-navigation.qml" "${pkgdir}${_defbrand}/" + cp "background.jpg" "${pkgdir}${_defbrand}/" + cp "pan-up-symbolic.svg" "${pkgdir}${_defbrand}/" + cp "pan-end-symbolic.svg" "${pkgdir}${_defbrand}/" + cp "pan-start-symbolic.svg" "${pkgdir}${_defbrand}/" + cp "draw-rectangle.svg" "${pkgdir}${_defbrand}/" + cp "antergos-logo.png" "${pkgdir}${_defbrand}/" + cp "antergos-icon.png" "${pkgdir}${_defbrand}/" + + # Shared Calamares modules + install -dm755 "${pkgdir}/etc/calamares/modules" + cp "unpackfs.conf" "${pkgdir}/etc/calamares/modules/" + cp "initcpiocfg.conf" "${pkgdir}/etc/calamares/modules/" + cp "initcpio.conf" "${pkgdir}/etc/calamares/modules/" + cp "netinstall.conf" "${pkgdir}/etc/calamares/modules/" + cp "netinstall.yaml" "${pkgdir}/etc/calamares/modules/" + cp "packagechooser.conf" "${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" + ln -sf "/usr/share/calamares/qml" "${pkgdir}/etc/calamares-offline/qml" + ln -sf "/usr/share/calamares/branding" "${pkgdir}/etc/calamares-offline/branding" + + # Online config directory + install -dm755 "${pkgdir}/etc/calamares-online" + cp "settings_online.conf" "${pkgdir}/etc/calamares-online/settings.conf" + ln -sf "/usr/share/calamares/qml" "${pkgdir}/etc/calamares-online/qml" + ln -sf "/usr/share/calamares/branding" "${pkgdir}/etc/calamares-online/branding" + + # Default: offline mode (for direct calamares launch) + install -dm755 "${pkgdir}/etc/calamares" + ln -sf "../calamares-offline/settings.conf" "${pkgdir}/etc/calamares/settings.conf" + ln -sf "/usr/share/calamares/branding" "${pkgdir}/etc/calamares/branding" + + # 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-minimal/Slider.qml b/packages/calamares-branding-antergos-next-minimal/Slider.qml new file mode 100644 index 0000000..6115982 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/Slider.qml @@ -0,0 +1,85 @@ +import QtQuick 2.15 + +Item { + property list slides + property int currentSlideIndex: 0 + property int _currentSlideIndex: 0 + + function reset() { + currentSlideIndex = 0 + _currentSlideIndex = 0 + wrapper.opacity = 1 + } + + onCurrentSlideIndexChanged: { + if (currentSlideIndex >= slides.length) { + currentSlideIndex = 0 + } + if (_currentSlideIndex !== currentSlideIndex) { + slideOut.start() + } + } + + Item { + id: wrapper + anchors.fill: parent + + Column { + anchors.centerIn: parent + width: parent.width + spacing: 0 + + Text { + id: titleText + font { + family: "Roboto" + weight: Font.Medium + pixelSize: 26 + } + color: "#FFFFFF" + text: slides[_currentSlideIndex].title + wrapMode: Text.WordWrap + width: parent.width + lineHeight: 1.25 + bottomPadding: 20 + } + + Text { + id: bodyText + width: parent.width + font { + family: "Roboto" + weight: Font.Normal + pixelSize: 14 + } + color: "#C4C6D0" + text: slides[_currentSlideIndex].body + wrapMode: Text.WordWrap + lineHeight: 1.55 + bottomPadding: 20 + } + + Text { + id: footerText + font { + family: "Roboto" + weight: Font.Medium + pixelSize: 12 + } + color: "#8E9099" + text: slides[_currentSlideIndex].footer ?? "" + wrapMode: Text.WordWrap + width: parent.width + lineHeight: 1.4 + } + } + } + + SequentialAnimation { + id: slideOut + NumberAnimation { target: wrapper; property: "opacity"; to: 0; duration: 100; easing.type: Easing.OutQuad } + PropertyAction { target: wrapper; property: "opacity"; value: 0 } + ScriptAction { script: _currentSlideIndex = currentSlideIndex } + NumberAnimation { target: wrapper; property: "opacity"; to: 1; duration: 160; easing.type: Easing.InQuad } + } +} diff --git a/packages/calamares-branding-antergos-next-minimal/antergos-icon.png b/packages/calamares-branding-antergos-next-minimal/antergos-icon.png new file mode 100644 index 0000000..a3748b7 Binary files /dev/null and b/packages/calamares-branding-antergos-next-minimal/antergos-icon.png differ diff --git a/packages/calamares-branding-antergos-next-minimal/antergos-logo.png b/packages/calamares-branding-antergos-next-minimal/antergos-logo.png new file mode 100644 index 0000000..7af7aae Binary files /dev/null and b/packages/calamares-branding-antergos-next-minimal/antergos-logo.png differ diff --git a/packages/calamares-branding-antergos-next-minimal/background.jpg b/packages/calamares-branding-antergos-next-minimal/background.jpg new file mode 100644 index 0000000..5ed8e55 Binary files /dev/null and b/packages/calamares-branding-antergos-next-minimal/background.jpg differ diff --git a/packages/calamares-branding-antergos-next-minimal/branding.desc b/packages/calamares-branding-antergos-next-minimal/branding.desc new file mode 100644 index 0000000..889900e --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/branding.desc @@ -0,0 +1,40 @@ +--- +componentName: antergos-next-minimal + +welcomeStyleCalamares: false +welcomeExpandingLogo: true + +windowExpanding: normal +windowSize: 920px,630px +windowPlacement: center + +sidebar: qml,top +navigation: qml,bottom + +strings: + productName: "Antergos NeXT Minimal" + shortProductName: "Antergos NeXT" + version: "rolling" + shortVersion: "rolling" + versionedName: "Antergos NeXT Minimal rolling" + shortVersionedName: "Antergos NeXT Minimal" + bootloaderEntryName: "Antergos NeXT" + productUrl: "https://github.com/Antergos-NeXT" + supportUrl: "https://github.com/Antergos-NeXT" + knownIssuesUrl: "https://github.com/Antergos-NeXT/antergos-iso/issues" + releaseNotesUrl: "https://github.com/Antergos-NeXT" + donateUrl: "" + +images: + productIcon: "antergos-icon.png" + productLogo: "antergos-icon.png" + productWelcome: "antergos-logo.png" + +style: + SidebarBackground: "#20252B" + SidebarText: "#C8D6E5" + SidebarTextCurrent: "#FFFFFF" + SidebarBackgroundCurrent: "#4A9EFF" + +slideshow: "show.qml" +slideshowAPI: 2 diff --git a/packages/calamares-branding-antergos-next-minimal/calamares-navigation.qml b/packages/calamares-branding-antergos-next-minimal/calamares-navigation.qml new file mode 100644 index 0000000..9c9fa36 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/calamares-navigation.qml @@ -0,0 +1,119 @@ +import io.calamares.ui 1.0 +import io.calamares.core 1.0 + +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import Qt5Compat.GraphicalEffects + +Rectangle { + id: bottomBar + color: "#20252B" + height: 68 + width: parent ? parent.width : 1024 + + layer.enabled: true + layer.effect: DropShadow { + transparentBorder: true + radius: 4 + samples: 8 + color: Qt.rgba(0, 0, 0, 0.4) + } + + RowLayout { + anchors.fill: parent + anchors.leftMargin: 12 + anchors.rightMargin: 20 + spacing: 8 + + Button { + id: backButton + text: qsTr("Back") + flat: true + enabled: ViewManager.backEnabled + implicitHeight: 42 + font { + family: "Roboto" + weight: Font.Medium + pixelSize: 14 + } + contentItem: Text { + text: "← " + parent.text + font: parent.font + color: parent.enabled ? "#E3E2E6" : Qt.rgba(0.89, 0.89, 0.90, 0.35) + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + leftPadding: 16 + rightPadding: 16 + } + background: Rectangle { + color: parent.hovered && parent.enabled + ? Qt.rgba(0.89, 0.89, 0.90, 0.06) + : "transparent" + radius: 21 + Behavior on color { ColorAnimation { duration: 120 } } + } + onClicked: ViewManager.back() + } + + Item { Layout.fillWidth: true } + + Button { + id: cancelButton + text: qsTr("Cancel") + flat: true + enabled: ViewManager.quitEnabled + implicitHeight: 42 + font { + family: "Roboto" + weight: Font.Medium + pixelSize: 14 + } + contentItem: Text { + text: parent.text + font: parent.font + color: parent.enabled ? "#FFB4AB" : Qt.rgba(1.0, 0.71, 0.67, 0.35) + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + leftPadding: 14 + rightPadding: 14 + } + background: Rectangle { + color: parent.hovered && parent.enabled + ? Qt.rgba(1.0, 0.71, 0.67, 0.07) + : "transparent" + radius: 21 + Behavior on color { ColorAnimation { duration: 120 } } + } + onClicked: ViewManager.quit() + } + + Button { + id: nextButton + text: qsTr("Next") + enabled: ViewManager.nextEnabled + implicitWidth: 120 + implicitHeight: 42 + font { + family: "Roboto" + weight: Font.Medium + pixelSize: 14 + } + contentItem: Text { + text: parent.text + " →" + font: parent.font + color: "#FFFFFF" + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } + background: Rectangle { + color: parent.enabled + ? (parent.hovered ? "#3B8BDE" : "#4A9EFF") + : Qt.rgba(0.29, 0.62, 1.0, 0.35) + radius: 21 + Behavior on color { ColorAnimation { duration: 120 } } + } + onClicked: ViewManager.next() + } + } +} diff --git a/packages/calamares-branding-antergos-next-minimal/calamares-next.sh b/packages/calamares-branding-antergos-next-minimal/calamares-next.sh new file mode 100644 index 0000000..22ef4c9 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/calamares-next.sh @@ -0,0 +1,212 @@ +#!/bin/bash + +# Antergos NeXT Calamares Installer Launcher + +GUIDIE() { + echo "calamares-next: $1" | sed -e 's|||g' -e 's|||g' + + local prog=yad + command -v yad &>/dev/null || prog=zenity + + local cmd=( + "$prog" --form --title="Error detected" + --text="calamares-next:\n$1\n" + --image=dialog-error + --button=yad-quit:1 + ) + "${cmd[@]}" + exit 1 +} + +FollowFile() { + local tailfile="$1" + local term_title="$2" + local xpos="$3" + local ypos="$4" + + case "$CurrentDesktop" in + xfce) xfce4-terminal -T "$term_title" --geometry="120x20+$xpos+$ypos" -x tail -f "$tailfile" & ;; + kde) setsid konsole -e tail -f "$tailfile" &> /dev/null ;; + esac +} + +CatchChrootedPacmanLog() { + local pacmanlog="" + local lockfile="$HOME/.$progname.lck" + + while true ; do + sleep 2 + pacmanlog="$(/usr/bin/ls -1 /tmp/calamares-root-*/var/log/pacman.log 2>/dev/null | /usr/bin/tail -n 1)" + if [ -n "$pacmanlog" ] ; then + [ -r "$lockfile" ] && return + /usr/bin/touch "$lockfile" + FollowFile "$pacmanlog" "Pacman log" 400 50 + break + fi + done +} + +LogHeader() { + local calamares_version date + calamares_version="$(pacman -Q calamares 2>/dev/null | awk '{print $NF}')" + date=$(date -u "+%x %X") + + cat < $log +########## $log by calamares-next +########## Started (UTC): $date +########## Install mode: $mode +########## Calamares version: $calamares_version +EOF +} + +InstallLog_Start() { + LogHeader + + if [ "$ShowInstallLog" = "TRUE" ] ; then + FollowFile "$log" "Install log" 20 20 + fi +} + +Calamares_Start() { + if [ "$EUID" = 0 ]; then + calamares -D8 >> $log & + return + fi + + local kdesu=/usr/lib/kf6/kdesu + [ -x $kdesu ] || kdesu=kdesu + + case "$CurrentDesktop" in + kde) $kdesu -t -c "calamares -D8" >> $log & ;; + *) pkexec calamares -D8 >> $log & ;; + esac +} + +AskMode() { + local ICO="/usr/share/calamares/branding/antergos-next/antergos-icon.png" + [ -f "$ICO" ] || ICO="system-software-install" + + if [ "$has_connection" = yes ] ; then + yad --form \ + --title="Antergos NeXT Installer" \ + --image="$ICO" \ + --borders=20 \ + --height=250 --width=520 \ + --buttons-layout=spread \ + --field=" ":LBL "" \ + --field="Online Install":LBL "" \ + --field="Full desktop selection from the internet.":LBL "" \ + --field="Choose your desktop environment, customize packages,":LBL "" \ + --field="get the latest updates.":LBL "" \ + --field=" ":LBL "" \ + --field="Offline Install":LBL "" \ + --field="Quick install from the live ISO.":LBL "" \ + --field="Install KDE Plasma desktop directly from the ISO.":LBL "" \ + --field="No internet required.":LBL "" \ + --field=" ":LBL "" \ + --button="Offline":13 \ + --button="Online":11 + else + yad --form \ + --title="Antergos NeXT Installer" \ + --image="$ICO" \ + --borders=20 \ + --height=200 --width=520 \ + --buttons-layout=spread \ + --field=" ":LBL "" \ + --field="Offline Install":LBL "" \ + --field="Quick install from the live ISO.":LBL "" \ + --field="Install KDE Plasma desktop directly from the ISO.":LBL "" \ + --field=" ":LBL "" \ + --button="Offline":13 + fi +} + +InstallWithLogs() { + InstallLog_Start + Calamares_Start + + if [ "$ShowPacmanLog" = "FALSE" ] ; then + sleep 5 + return + fi + + case "$mode" in + online) CatchChrootedPacmanLog ;; + offline) CatchChrootedPacmanLog ;; + esac +} + +SetConfig() { + case "$mode" in + online) + sudo rm -f "/etc/calamares/settings.conf" + sudo cp "/etc/calamares-online/settings.conf" "/etc/calamares/settings.conf" + PreLog "Using online settings" + ;; + offline) + sudo rm -f "/etc/calamares/settings.conf" + sudo cp "/etc/calamares-offline/settings.conf" "/etc/calamares/settings.conf" + PreLog "Using offline settings" + ;; + esac +} + +PreLog() { + echo "==> $1" >> "$prelogfile" +} + +Main() { + progname="${0##*/}" + has_connection=no + show_mode=yes + + [ -x /usr/bin/calamares ] || GUIDIE "/usr/bin/calamares is needed for installing Antergos NeXT" + + ping -c 1 -W 2 archlinux.org &>/dev/null && has_connection=yes + + local CurrentDesktop="" + if [ "$XDG_CURRENT_DESKTOP" ]; then + CurrentDesktop=$(echo "$XDG_CURRENT_DESKTOP" | tr '[:upper:]' '[:lower:]') + elif [ "$DESKTOP_SESSION" ]; then + CurrentDesktop=$(echo "$DESKTOP_SESSION" | tr '[:upper:]' '[:lower:]') + fi + + local ShowInstallLog="FALSE" + local ShowPacmanLog="FALSE" + local Home=/home/antergos + local log=$Home/antergos-install.log + local cfolder=/etc/calamares + local workdir="" + local prelogfile="" + + workdir="$Home/work.$progname.xyz" + mkdir -p "$workdir" + + prelogfile="$workdir/preliminary.log" + rm -f "$prelogfile" + + if [ "$show_mode" = yes ] ; then + AskMode + ret=$? + case $ret in + 11) mode=online ;; + 13) mode=offline ;; + *) exit $ret ;; + esac + else + mode=offline + fi + + case "$mode" in + online|offline) + SetConfig + InstallWithLogs + ;; + *) + GUIDIE "unsupported mode '$mode'" + ;; + esac +} + +Main "$@" diff --git a/packages/calamares-branding-antergos-next-minimal/calamares-sidebar.qml b/packages/calamares-branding-antergos-next-minimal/calamares-sidebar.qml new file mode 100644 index 0000000..f4601ad --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/calamares-sidebar.qml @@ -0,0 +1,90 @@ +import io.calamares.ui 1.0 +import io.calamares.core 1.0 + +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import Qt5Compat.GraphicalEffects + +Rectangle { + id: topBar + color: "#20252B" + height: 64 + width: parent ? parent.width : 1024 + + layer.enabled: true + layer.effect: DropShadow { + transparentBorder: true + radius: 4 + samples: 8 + color: Qt.rgba(0, 0, 0, 0.4) + } + + RowLayout { + anchors.fill: parent + anchors.leftMargin: 20 + anchors.rightMargin: 20 + spacing: 14 + + Image { + id: logo + sourceSize.width: 34 + sourceSize.height: 34 + fillMode: Image.PreserveAspectFit + source: Branding.imagePath(Branding.ProductLogo) + Layout.alignment: Qt.AlignVCenter + } + + Text { + text: "Antergos NeXT" + color: "#E3E2E6" + font { + family: "Roboto" + weight: Font.Medium + pixelSize: 17 + letterSpacing: 0.3 + } + Layout.alignment: Qt.AlignVCenter + } + + Item { Layout.fillWidth: true } + + Row { + spacing: 8 + Layout.alignment: Qt.AlignVCenter + + Repeater { + id: dotRepeater + model: ViewManager + + Rectangle { + width: index === ViewManager.currentStepIndex ? 10 : 7 + height: 7 + radius: 3.5 + color: index === ViewManager.currentStepIndex + ? "#4A9EFF" : "#8E9099" + opacity: index === ViewManager.currentStepIndex ? 1 : 0.35 + Behavior on width { NumberAnimation { duration: 200 } } + Behavior on color { ColorAnimation { duration: 200 } } + } + } + } + } + + Rectangle { + anchors { + bottom: parent.bottom + left: parent.left + right: parent.right + } + height: 3 + color: Qt.rgba(0.56, 0.57, 0.60, 0.2) + + Rectangle { + height: parent.height + width: parent.width * ((ViewManager.currentStepIndex + 1) / Math.max(dotRepeater.count, 1)) + color: "#4A9EFF" + Behavior on width { NumberAnimation { duration: 400; easing.type: Easing.OutCubic } } + } + } +} diff --git a/packages/calamares-branding-antergos-next-minimal/draw-rectangle.svg b/packages/calamares-branding-antergos-next-minimal/draw-rectangle.svg new file mode 100644 index 0000000..706f502 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/draw-rectangle.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/calamares-branding-antergos-next-minimal/initcpio.conf b/packages/calamares-branding-antergos-next-minimal/initcpio.conf new file mode 100644 index 0000000..626fa45 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/initcpio.conf @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +--- +kernel: linux +be_unsafe: false diff --git a/packages/calamares-branding-antergos-next-minimal/initcpiocfg.conf b/packages/calamares-branding-antergos-next-minimal/initcpiocfg.conf new file mode 100644 index 0000000..79b4ce4 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/initcpiocfg.conf @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +--- +useSystemdHook: false +source: "/etc/mkinitcpio.conf" diff --git a/packages/calamares-branding-antergos-next-minimal/minimal-info.qml b/packages/calamares-branding-antergos-next-minimal/minimal-info.qml new file mode 100644 index 0000000..8fa15bd --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/minimal-info.qml @@ -0,0 +1,90 @@ +/* Antergos NeXT Minimal — info page */ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls + +ColumnLayout { + width: parent.width + spacing: 20 + + Image { + source: "antergos-logo.png" + sourceSize.width: 96 + sourceSize.height: 96 + fillMode: Image.PreserveAspectFit + Layout.alignment: Qt.AlignHCenter + } + + Label { + text: "Antergos NeXT Minimal" + font.pointSize: 20 + font.bold: true + Layout.alignment: Qt.AlignHCenter + color: "#4A9EFF" + } + + Rectangle { + height: 1 + color: "#FF6B6B" + Layout.fillWidth: true + Layout.leftMargin: 24 + Layout.rightMargin: 24 + } + + Label { + text: "⚠ NOTICE" + font.pointSize: 14 + font.bold: true + Layout.alignment: Qt.AlignHCenter + color: "#FF6B6B" + } + + Label { + text: "This is the Minimal (Xfce) edition of Antergos NeXT. The main Plasma ISO ballooned to ~2.8 GB (over GitHub's 2 GB release limit) from all the bundled KDE packages, wallpapers, and apps. This Xfce build trims the fat while keeping the full installer and repository access." + font.pointSize: 11 + wrapMode: Text.WordWrap + Layout.fillWidth: true + Layout.leftMargin: 24 + Layout.rightMargin: 24 + color: "#C8D6E5" + } + + Label { + text: "What's different from the Plasma edition:" + font.pointSize: 11 + font.bold: true + Layout.leftMargin: 24 + color: "#C8D6E5" + } + + Column { + spacing: 4 + Layout.leftMargin: 40 + Repeater { + model: [ + "Uses Xfce desktop instead of KDE Plasma — lighter and faster", + "No KDE applications (uses Falkon browser, Xfce native apps)", + "Smaller ISO size (~1.5 GB vs ~2.8 GB)", + "Same Calamares installer, same repos, same init choices", + "Better for older hardware, VMs, or minimal setups" + ] + Label { + text: "• " + modelData + font.pointSize: 10 + color: "#C8D6E5" + } + } + } + + Label { + text: "If you installed this just to install Plasma from the repos and pretend it's the full ISO — yeah, fair enough. We can't blame you." + font.pointSize: 10 + italic: true + wrapMode: Text.WordWrap + Layout.fillWidth: true + Layout.leftMargin: 24 + Layout.rightMargin: 24 + Layout.topMargin: 8 + color: "#FF6B6B" + } +} diff --git a/packages/calamares-branding-antergos-next-minimal/netinstall.conf b/packages/calamares-branding-antergos-next-minimal/netinstall.conf new file mode 100644 index 0000000..026fb7c --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/netinstall.conf @@ -0,0 +1,7 @@ +--- +groupsUrl: + - file:///etc/calamares/modules/netinstall.yaml +required: true +label: + sidebar: "Packages" + title: "Packages (select your desktop environment and additional packages)" diff --git a/packages/calamares-branding-antergos-next-minimal/netinstall.yaml b/packages/calamares-branding-antergos-next-minimal/netinstall.yaml new file mode 100644 index 0000000..49d0128 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/netinstall.yaml @@ -0,0 +1,241 @@ +- name: "KDE Plasma" + description: "Full-featured, modern desktop with KDE Plasma and applications" + selected: true + critical: false + packages: + - ark + - bluedevil + - breeze-gtk + - dolphin + - dolphin-plugins + - ffmpegthumbs + - gwenview + - kate + - kcalc + - kde-cli-tools + - kde-gtk-config + - kdeconnect + - kdegraphics-thumbnailers + - kdenetwork-filesharing + - kdeplasma-addons + - kinfocenter + - kio-admin + - kio-extras + - kio-fuse + - konsole + - kscreen + - kwallet-pam + - kwayland-integration + - okular + - partitionmanager + - plasma-browser-integration + - plasma-desktop + - plasma-disks + - plasma-nm + - plasma-pa + - plasma-systemmonitor + - plasma-workspace + - powerdevil + - print-manager + - qt6-imageformats + - spectacle + - xdg-desktop-portal-kde + - xsettingsd + - antergos-plasma-theme + - antergos-sddm-theme + - antergos-next-desktop-settings +- name: "Xfce" + description: "Fast and lightweight classic desktop" + selected: false + critical: false + packages: + - blueman + - file-roller + - galculator + - gvfs + - gvfs-afc + - gvfs-gphoto2 + - gvfs-mtp + - gvfs-nfs + - gvfs-smb + - lightdm + - lightdm-slick-greeter + - mousepad + - network-manager-applet + - parole + - ristretto + - thunar-archive-plugin + - thunar-media-tags-plugin + - xdg-user-dirs-gtk + - xfce4 + - xfce4-battery-plugin + - xfce4-mount-plugin + - xfce4-netload-plugin + - xfce4-notifyd + - xfce4-pulseaudio-plugin + - xfce4-screensaver + - xfce4-screenshooter + - xfce4-taskmanager + - xfce4-whiskermenu-plugin +- name: "Budgie" + description: "Elegant and simple desktop environment" + selected: false + critical: false + packages: + - budgie-desktop + - budgie-desktop-view + - budgie-extras + - eog + - file-roller + - gedit + - gnome-keyring + - gnome-terminal + - gvfs + - gvfs-afc + - gvfs-gphoto2 + - gvfs-mtp + - gvfs-nfs + - gvfs-smb + - lightdm + - lightdm-slick-greeter + - mutter + - nemo + - nemo-fileroller + - network-manager-applet + - xdg-user-dirs-gtk +- name: "Cinnamon" + description: "Traditional desktop with modern conventions" + selected: false + critical: false + packages: + - cinnamon + - cinnamon-translations + - file-roller + - galculator + - gnome-system-monitor + - gnome-terminal + - gvfs + - gvfs-afc + - gvfs-gphoto2 + - gvfs-mtp + - gvfs-nfs + - gvfs-smb + - lightdm + - lightdm-slick-greeter + - nemo-fileroller + - xdg-user-dirs-gtk +- name: "MATE" + description: "Intuitive and attractive classic desktop" + selected: false + critical: false + packages: + - gvfs + - gvfs-afc + - gvfs-gphoto2 + - gvfs-mtp + - gvfs-nfs + - gvfs-smb + - lightdm + - lightdm-slick-greeter + - mate + - mate-extra + - network-manager-applet + - xdg-user-dirs-gtk +- name: "LXQt" + description: "Lightweight Qt desktop environment" + selected: false + critical: false + packages: + - breeze + - breeze-gtk + - featherpad + - gvfs + - gvfs-mtp + - libstatgrab + - libsysstat + - lm_sensors + - lxqt + - lxqt-archiver + - network-manager-applet + - oxygen-icons + - pavucontrol-qt + - print-manager + - xdg-utils + - xsettingsd +- name: "i3 / Sway" + description: "Tiling window managers for power users" + selected: false + critical: false + packages: + - dmenu + - dunst + - feh + - galculator + - gvfs + - gvfs-afc + - gvfs-gphoto2 + - gvfs-mtp + - gvfs-nfs + - gvfs-smb + - i3-wm + - i3lock + - i3status + - lightdm + - lightdm-slick-greeter + - sway + - waybar + - wofi +- 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 + - antergos-next-keyring + - antergos-next-mirrorlist + - antergos-release + - antergos-lsb-release + - antergos-grub-theme + - firefox +- name: "Hardware Support" + description: "Additional hardware drivers and firmware" + selected: 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-minimal/packagechooser.conf b/packages/calamares-branding-antergos-next-minimal/packagechooser.conf new file mode 100644 index 0000000..15ad7c2 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/packagechooser.conf @@ -0,0 +1,55 @@ +--- +mode: required +method: legacy +labels: + step: "Desktop Environment" +items: + - id: "" + name: "No Desktop" + description: "Install without a desktop environment — not recommended. You'll only get a TTY; screen recording won't work without a capture card." + - id: plasma + packages: [ plasma ] + name: "Plasma" + description: "KDE Plasma Desktop — modern, feature-rich, highly customizable" + - id: xfce + packages: [ xfce4, xfce4-goodies ] + name: "Xfce" + description: "Xfce — lightweight, classic desktop" + - id: cinnamon + packages: + - cinnamon + - cinnamon-control-center + - cinnamon-desktop + - cinnamon-menus + - cinnamon-screensaver + - cinnamon-session + - cinnamon-settings-daemon + - cinnamon-translations + name: "Cinnamon" + description: "Cinnamon — traditional desktop with modern conventions" + - id: mate + packages: [ mate, mate-extra ] + name: "MATE" + description: "MATE — continuation of GNOME 2" + - id: lxqt + packages: [ lxqt ] + name: "LXQt" + description: "LXQt — lightweight Qt desktop" + - id: i3 + packages: [ i3 ] + name: "i3" + description: "i3 — tiling window manager" + - id: sway + packages: + - sway + - swaybg + - swayidle + - swaylock + name: "Sway" + description: "Sway — i3-compatible Wayland compositor" + - id: hyprland + packages: + - hyprland + - xdg-desktop-portal-hyprland + name: "Hyprland" + description: "Hyprland — dynamic tiling Wayland compositor" diff --git a/packages/calamares-branding-antergos-next-minimal/pan-end-symbolic.svg b/packages/calamares-branding-antergos-next-minimal/pan-end-symbolic.svg new file mode 100644 index 0000000..e2d4c84 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/pan-end-symbolic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/calamares-branding-antergos-next-minimal/pan-start-symbolic.svg b/packages/calamares-branding-antergos-next-minimal/pan-start-symbolic.svg new file mode 100644 index 0000000..6a3013e --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/pan-start-symbolic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/calamares-branding-antergos-next-minimal/pan-up-symbolic.svg b/packages/calamares-branding-antergos-next-minimal/pan-up-symbolic.svg new file mode 100644 index 0000000..717e898 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/pan-up-symbolic.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/calamares-branding-antergos-next-minimal/settings_offline.conf b/packages/calamares-branding-antergos-next-minimal/settings_offline.conf new file mode 100644 index 0000000..d8cb9f6 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/settings_offline.conf @@ -0,0 +1,51 @@ +--- +modules-search: [ /usr/lib/calamares/modules, /etc/calamares/modules ] + +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 diff --git a/packages/calamares-branding-antergos-next-minimal/settings_online.conf b/packages/calamares-branding-antergos-next-minimal/settings_online.conf new file mode 100644 index 0000000..65ff5fc --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/settings_online.conf @@ -0,0 +1,54 @@ +--- +modules-search: [ /usr/lib/calamares/modules, /etc/calamares/modules ] + +sequence: + - show: + - welcome + - locale + - keyboard + - packagechooser + - netinstall + - partition + - users + - summary + - exec: + - partition + - mount + - basestrap + - machineid + - packages + - fstab + - locale + - keyboard + - localecfg + - luksopenswaphookcfg + - luksbootkeyfile + - initcpiocfg + - initcpio + - users + - displaymanager + - networkcfg + - hwclock + - services-artix + - grubcfg + - bootloader + - postcfg + - umount + - show: + - finished + +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 diff --git a/packages/calamares-branding-antergos-next-minimal/show.qml b/packages/calamares-branding-antergos-next-minimal/show.qml new file mode 100644 index 0000000..883b3a9 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/show.qml @@ -0,0 +1,158 @@ +import QtQuick 2.15 +import Qt5Compat.GraphicalEffects + +Item { + id: root + width: 920 + height: 630 + + function onActivate() { + timer.restart() + slider.reset() + } + + function onLeave() { + } + + Timer { + id: timer + interval: 12000 + running: true + repeat: true + onTriggered: slider.currentSlideIndex++ + } + + MouseArea { + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + onClicked: { + timer.restart() + slider.currentSlideIndex++ + } + } + + Image { + id: background + anchors.fill: parent + source: "background.jpg" + sourceSize.width: parent.width + sourceSize.height: parent.height + fillMode: Image.PreserveAspectCrop + } + + Rectangle { + anchors.fill: parent + color: Qt.rgba(0, 0, 0, 0.55) + } + + Rectangle { + anchors.fill: parent + gradient: Gradient { + GradientStop { position: 0.0; color: Qt.rgba(0, 0, 0, 0.15) } + GradientStop { position: 0.5; color: "transparent" } + GradientStop { position: 1.0; color: Qt.rgba(0, 0, 0, 0.3) } + } + } + + Rectangle { + id: card + width: 460 + height: 380 + radius: 12 + anchors.centerIn: parent + anchors.horizontalCenterOffset: 40 + color: "#2B2930" + + layer.enabled: true + layer.effect: DropShadow { + transparentBorder: true + radius: 40 + samples: 56 + color: Qt.rgba(0, 0, 0, 0.5) + } + + Rectangle { + anchors.fill: parent + radius: 12 + color: "transparent" + border { color: Qt.rgba(1, 1, 1, 0.04); width: 1 } + } + + Item { + anchors { + fill: parent + margins: 32 + } + + Slider { + id: slider + anchors.fill: parent + slides: [ + Dia { + title: qsTr("Welcome to Antergos NeXT") + body: qsTr("A modern Arch Linux experience built on Artix Linux. Rolling release, OpenRC init, and the latest software.") + footer: qsTr("Choose your preferred desktop environment during setup") + }, + Dia { + title: qsTr("Desktop Environments") + body: qsTr("Select from KDE Plasma, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.") + footer: qsTr("A curated selection of the best Linux desktops") + }, + Dia { + title: qsTr("Antergos Tools") + body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to Arch Linux repositories and the AUR.") + footer: qsTr("Everything you need to get started") + }, + Dia { + title: qsTr("Open Source") + body: qsTr("Free and open source software built by the community for the community.") + footer: qsTr("github.com/Antergos-NeXT") + }, + Dia { + title: qsTr("Almost Done") + body: qsTr("Your system is being configured with your selected desktop environment, drivers, and applications.") + footer: qsTr("Reboot and enjoy Antergos NeXT") + } + ] + } + } + } + + Image { + id: logo + source: "antergos-logo.png" + width: 140 + height: 40 + fillMode: Image.PreserveAspectFit + anchors { + bottom: parent.bottom + bottomMargin: 20 + left: parent.left + leftMargin: 24 + } + opacity: 0.45 + } + + Row { + anchors { + bottom: parent.bottom + bottomMargin: 20 + horizontalCenter: parent.horizontalCenter + } + spacing: 6 + + Repeater { + model: slider.slides.length + + Rectangle { + width: index == slider.currentSlideIndex ? 22 : 7 + height: 7 + radius: 3.5 + color: index == slider.currentSlideIndex ? "#4A9EFF" : "#8E9099" + opacity: index == slider.currentSlideIndex ? 1 : 0.35 + Behavior on width { NumberAnimation { duration: 250 } } + Behavior on color { ColorAnimation { duration: 200 } } + } + } + } +} diff --git a/packages/calamares-branding-antergos-next-minimal/stylesheet.qss b/packages/calamares-branding-antergos-next-minimal/stylesheet.qss new file mode 100644 index 0000000..d8e18ed --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/stylesheet.qss @@ -0,0 +1,64 @@ +/* Antergos NeXT Calamares theme — dark */ +QWidget { + font-family: "Noto Sans", "DejaVu Sans", sans-serif; + font-size: 10pt; + color: #FFFFFF; +} +QMainWindow { + background-color: #20252B; +} +QLabel#titleLabel { + font-size: 18pt; + font-weight: bold; + color: #4A9EFF; +} +QLabel#subtitleLabel { + font-size: 11pt; + color: #C8D6E5; +} +QPushButton { + background-color: #4A9EFF; + color: white; + border: none; + border-radius: 4px; + padding: 7px 18px; + min-height: 24px; + font-weight: bold; +} +QPushButton:hover { + background-color: #3B8AE5; +} +QPushButton:pressed { + background-color: #2D7BD4; +} +QPushButton:disabled { + background-color: #3A3F47; + color: #7F8C8D; +} +QComboBox { + padding: 5px 10px; + border: 1px solid #3A3F47; + border-radius: 4px; + background: #2C3138; + color: #FFFFFF; +} +QLineEdit { + padding: 6px 10px; + border: 1px solid #3A3F47; + border-radius: 4px; + background: #2C3138; + color: #FFFFFF; +} +QProgressBar { + border: 1px solid #3A3F47; + border-radius: 4px; + background: #2C3138; + text-align: center; + height: 20px; + color: #FFFFFF; +} +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-minimal/unpackfs.conf b/packages/calamares-branding-antergos-next-minimal/unpackfs.conf new file mode 100644 index 0000000..fc6f900 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/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-minimal/welcome.conf b/packages/calamares-branding-antergos-next-minimal/welcome.conf new file mode 100644 index 0000000..4a8fc34 --- /dev/null +++ b/packages/calamares-branding-antergos-next-minimal/welcome.conf @@ -0,0 +1,10 @@ +--- +requirements: + internet: true + storage: 8.0 + ram: 2.0 + power: true + required: + - storage + - ram + - power