feat: new Antergos NeXT Minimal (Xfce) edition — branding, theme, and packaging
Introduces a lightweight Xfce-based variant of Antergos NeXT to work around the 2 GB GitHub Releases limit for the full Plasma ISO. New packages in antergos-packages: - calamares-branding-antergos-next-minimal: Calamares branding variant that says "Minimal (Xfce)" with a notesqml page explaining why this edition exists (Plasma ISO exceeded GitHub's 2 GB limit). - antergos-xfce-theme: GTK 2.0/3.0/3.20 + xfwm4 theme based on Numix, recolored to Antergos brand accent (#4A9EFF). Includes xfce-notify-4.0, metacity-1, openbox-3, and unity support directories. packages.yaml updated with both new packages in the build list.
@@ -12,5 +12,7 @@ packages:
|
||||
- antergos-live
|
||||
- calamares
|
||||
- calamares-branding-antergos-next
|
||||
- calamares-branding-antergos-next-minimal
|
||||
- antergos-xfce-theme
|
||||
- downgrade
|
||||
- yay
|
||||
@@ -0,0 +1,17 @@
|
||||
# Maintainer: Celestia Ludenberg <ash8820@proton.me>
|
||||
|
||||
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/"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import QtQuick 2.15
|
||||
|
||||
Item {
|
||||
property string title
|
||||
property string body
|
||||
property string footer
|
||||
property url image
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
# Maintainer: Celestia Ludenberg <ash8820@proton.me>
|
||||
|
||||
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"
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
import QtQuick 2.15
|
||||
|
||||
Item {
|
||||
property list<Dia> 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 }
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 62 KiB |
@@ -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
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Antergos NeXT Calamares Installer Launcher
|
||||
|
||||
GUIDIE() {
|
||||
echo "calamares-next: $1" | sed -e 's|<tt>||g' -e 's|</tt>||g'
|
||||
|
||||
local prog=yad
|
||||
command -v yad &>/dev/null || prog=zenity
|
||||
|
||||
local cmd=(
|
||||
"$prog" --form --title="Error detected"
|
||||
--text="<b>calamares-next:</b>\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 <<EOF > $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="<b>Online Install</b>":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="<b>Offline Install</b>":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="<b>Offline Install</b>":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 "<tt>/usr/bin/calamares</tt> 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 "$@"
|
||||
@@ -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 } }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
|
||||
<path d="m2 4h18v14h-18z" fill="#4A9EFF" transform="translate(0,2)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 139 B |
@@ -0,0 +1,5 @@
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
---
|
||||
kernel: linux
|
||||
be_unsafe: false
|
||||
@@ -0,0 +1,5 @@
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
---
|
||||
useSystemdHook: false
|
||||
source: "/etc/mkinitcpio.conf"
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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)"
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<svg height="16" version="1.1" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 6,3 5,5 -5,5 z" fill="#4A9EFF"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 185 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<svg height="16" version="1.1" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 10,3 -5,5 5,5 z" fill="#4A9EFF"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 186 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<svg height="16" version="1.1" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 8,2 -5,5 10,0 z" fill="#4A9EFF"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 186 B |
@@ -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
|
||||
@@ -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
|
||||
@@ -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 } }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
unpack:
|
||||
- source: "/run/archiso/bootmnt/arch/x86_64/airootfs.sfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: "/"
|
||||
...
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
requirements:
|
||||
internet: true
|
||||
storage: 8.0
|
||||
ram: 2.0
|
||||
power: true
|
||||
required:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||