javított kde verzió saját sddm téma illetve a build az most már dockerrel megy
This commit is contained in:
parent
139f09f83c
commit
7a8ce58e7a
20 changed files with 506 additions and 73 deletions
|
@ -1,67 +1,166 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Exit on error
|
# Exit on error
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
##################################################################################################################
|
##################################################################################################################
|
||||||
# Custom Arch ISO Builder Script
|
# Custom Arch ISO Builder Script (Linux Version)
|
||||||
##################################################################################################################
|
##################################################################################################################
|
||||||
|
|
||||||
# Get absolute path of script directory
|
# Get absolute path of script directory
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
# Check if running on btrfs
|
|
||||||
if lsblk -f | grep btrfs > /dev/null 2>&1; then
|
|
||||||
echo "Warning: Building on BTRFS filesystem. Make backups before continuing."
|
|
||||||
read -p "Press Enter to continue... CTRL + C to stop"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Setting general parameters
|
# Setting general parameters
|
||||||
buildFolder="$SCRIPT_DIR/build"
|
buildFolder="$SCRIPT_DIR/build"
|
||||||
outFolder="$SCRIPT_DIR/out"
|
outFolder="$SCRIPT_DIR/out"
|
||||||
|
dockerImageName="arch-iso-builder-kde"
|
||||||
|
dockerContainerName="arch-iso-builder-kde-container"
|
||||||
|
|
||||||
|
# Get current user ID and group ID
|
||||||
|
HOST_UID=$(id -u)
|
||||||
|
HOST_GID=$(id -g)
|
||||||
|
|
||||||
|
# Check if Docker is installed
|
||||||
|
if ! command -v docker &> /dev/null; then
|
||||||
|
echo "Docker is not installed. Installing Docker..."
|
||||||
|
sudo pacman -S --noconfirm docker
|
||||||
|
|
||||||
|
# Start and enable Docker service
|
||||||
|
echo "Starting Docker service..."
|
||||||
|
sudo systemctl start docker
|
||||||
|
sudo systemctl enable docker
|
||||||
|
|
||||||
|
# Add current user to docker group to avoid using sudo
|
||||||
|
echo "Adding current user to docker group..."
|
||||||
|
sudo usermod -aG docker $(whoami)
|
||||||
|
|
||||||
|
echo "Docker installation completed. You may need to log out and back in for group changes to take effect."
|
||||||
|
echo "Continuing with Docker as root for now..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if Docker daemon is running
|
||||||
|
if ! docker info &> /dev/null; then
|
||||||
|
echo "Docker daemon is not running. Starting Docker service..."
|
||||||
|
sudo systemctl start docker
|
||||||
|
|
||||||
|
# Wait for Docker daemon to start (with timeout)
|
||||||
|
echo "Waiting for Docker daemon to start..."
|
||||||
|
max_attempts=10
|
||||||
|
attempt=1
|
||||||
|
while ! docker info &> /dev/null; do
|
||||||
|
if [ $attempt -gt $max_attempts ]; then
|
||||||
|
echo "Error: Docker daemon failed to start after $max_attempts attempts."
|
||||||
|
echo "Please try starting it manually with: sudo systemctl start docker"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Attempt $attempt/$max_attempts: Docker daemon not ready yet. Waiting 2 seconds..."
|
||||||
|
sleep 2
|
||||||
|
attempt=$((attempt+1))
|
||||||
|
done
|
||||||
|
echo "Docker daemon is now running."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
echo "Build folder: $buildFolder"
|
echo "Build folder: $buildFolder"
|
||||||
echo "Out folder : $outFolder"
|
echo "Out folder : $outFolder"
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
|
echo "Building in Docker - using all CPU cores"
|
||||||
|
echo "################################################################"
|
||||||
|
|
||||||
# Check if archiso is installed
|
# Create Docker image if it doesn't exist
|
||||||
if ! pacman -Qi archiso &> /dev/null; then
|
if ! docker image inspect "$dockerImageName" &>/dev/null; then
|
||||||
echo "Installing archiso..."
|
echo "Creating Docker image: $dockerImageName..."
|
||||||
sudo pacman -S --noconfirm archiso
|
# Create temporary Dockerfile
|
||||||
|
cat > "$SCRIPT_DIR/Dockerfile" << EOF
|
||||||
|
FROM archlinux:latest
|
||||||
|
|
||||||
|
# Update system and install required packages
|
||||||
|
RUN pacman -Syu --noconfirm && \
|
||||||
|
pacman -S --noconfirm archiso base-devel git sudo
|
||||||
|
|
||||||
|
# Create a build user with same UID as host user
|
||||||
|
RUN useradd -m -G wheel -u $HOST_UID builder && \
|
||||||
|
echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||||
|
|
||||||
|
# Set up working directory
|
||||||
|
WORKDIR /build
|
||||||
|
|
||||||
|
# Keep container running for reuse
|
||||||
|
CMD ["/bin/bash"]
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Build Docker image
|
||||||
|
docker build -t "$dockerImageName" -f "$SCRIPT_DIR/Dockerfile" "$SCRIPT_DIR"
|
||||||
|
|
||||||
|
# Remove temporary Dockerfile
|
||||||
|
rm "$SCRIPT_DIR/Dockerfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Make mkarchiso verbose
|
# Check if container exists
|
||||||
sudo sed -i 's/quiet="y"/quiet="n"/g' /usr/bin/mkarchiso
|
if docker container inspect "$dockerContainerName" &>/dev/null; then
|
||||||
|
# Container exists, check if it's running
|
||||||
|
if [ "$(docker container inspect -f '{{.State.Running}}' "$dockerContainerName")" != "true" ]; then
|
||||||
|
echo "Starting existing Docker container: $dockerContainerName..."
|
||||||
|
docker start "$dockerContainerName"
|
||||||
|
else
|
||||||
|
echo "Using existing running Docker container: $dockerContainerName..."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Container doesn't exist, create and start it
|
||||||
|
echo "Creating and starting Docker container: $dockerContainerName..."
|
||||||
|
docker run -d \
|
||||||
|
--name "$dockerContainerName" \
|
||||||
|
--privileged \
|
||||||
|
--cpus="$(nproc)" \
|
||||||
|
-v "$SCRIPT_DIR:/build" \
|
||||||
|
"$dockerImageName" \
|
||||||
|
tail -f /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Cleaning build environment..."
|
# Create required directories
|
||||||
[ -d "$buildFolder" ] && sudo rm -rf "$buildFolder"
|
mkdir -p "$buildFolder" "$outFolder"
|
||||||
mkdir -p "$buildFolder"
|
|
||||||
|
|
||||||
echo "Copying releng folder to build directory..."
|
# Run the build process inside Docker
|
||||||
cp -r "$SCRIPT_DIR/releng" "$buildFolder/"
|
echo "Building ISO in Docker container..."
|
||||||
|
docker exec -it "$dockerContainerName" bash -c "
|
||||||
#echo "Cleaning pacman cache..."
|
cd /build && \
|
||||||
#yes | sudo pacman -Scc
|
# Make mkarchiso verbose
|
||||||
|
sudo sed -i 's/quiet=\"y\"/quiet=\"n\"/g' /usr/bin/mkarchiso && \
|
||||||
echo "Creating output directory..."
|
# Clean build environment
|
||||||
mkdir -p "$outFolder"
|
[ -d \"/build/build\" ] && sudo rm -rf \"/build/build\" && \
|
||||||
|
mkdir -p \"/build/build\" && \
|
||||||
echo "Building ISO..."
|
# Copy releng folder
|
||||||
cd "$buildFolder/releng"
|
cp -r \"/build/releng\" \"/build/build/\" && \
|
||||||
sudo mkarchiso -v -w "$buildFolder" -o "$outFolder" "$PWD"
|
# Copy pkgs folder (if it exists), then generate repo db
|
||||||
|
if [ -d \"/build/pkgs\" ]; then
|
||||||
# Save package list
|
cp -r \"/build/pkgs\" \"/build/build/\" && \
|
||||||
echo "Saving package list..."
|
echo \"Copied pkgs folder to build directory\" && \
|
||||||
rename=$(date +%Y-%m-%d)
|
if ls /build/build/pkgs/*.pkg.tar.* 1>/dev/null 2>&1; then
|
||||||
cp "$buildFolder/iso/arch/pkglist.x86_64.txt" "$outFolder/archlinux-$rename-pkglist.txt"
|
echo \"Generating local repository database (repo-add custom.db.tar.gz) ...\" && \
|
||||||
|
sudo repo-add /build/build/pkgs/custom.db.tar.gz /build/build/pkgs/*.pkg.tar.* && \
|
||||||
echo "Cleaning build environment..."
|
echo \"Local repo database created.\"
|
||||||
[ -d "$buildFolder" ] && sudo rm -rf "$buildFolder"
|
else
|
||||||
|
echo \"No .pkg.tar.* files found in pkgs. Skipping repo-add.\"
|
||||||
sudo chown -R $USER:$GROUP "$outFolder"
|
fi
|
||||||
|
else
|
||||||
|
echo \"Warning: pkgs folder not found in \$SCRIPT_DIR\"
|
||||||
|
fi && \
|
||||||
|
# Create output directory
|
||||||
|
mkdir -p \"/build/out\" && \
|
||||||
|
# Build ISO
|
||||||
|
cd \"/build/build/releng\" && \
|
||||||
|
sudo mkarchiso -v -w \"/build/build\" -o \"/build/out\" \"\$PWD\" && \
|
||||||
|
# Save package list
|
||||||
|
rename=\$(date +%Y-%m-%d) && \
|
||||||
|
if [ -f \"/build/build/iso/arch/pkglist.x86_64.txt\" ]; then
|
||||||
|
sudo cp \"/build/build/iso/arch/pkglist.x86_64.txt\" \"/build/out/archlinux-\$rename-pkglist.txt\"
|
||||||
|
fi && \
|
||||||
|
# Clean build environment
|
||||||
|
sudo rm -rf \"/build/build\" && \
|
||||||
|
# Fix permissions on out folder
|
||||||
|
sudo chown -R $HOST_UID:$HOST_GID \"/build/out\"
|
||||||
|
"
|
||||||
|
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
echo "DONE"
|
echo "DONE"
|
||||||
echo "Check your out folder: $outFolder"
|
echo "Check your out folder: $outFolder"
|
||||||
echo "################################################################"
|
echo "################################################################"
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
custom.db.tar.gz
|
|
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
custom.files.tar.gz
|
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
NAME="RaveOS KDE Beta"
|
NAME="RaveOS KDE 1.0"
|
||||||
PRETTY_NAME="RaveOS KDE Beta"
|
PRETTY_NAME="RaveOS KDE 1.0"
|
||||||
ID=arch
|
ID=arch
|
||||||
BUILD_ID=rolling
|
BUILD_ID=rolling
|
||||||
ANSI_COLOR="38;2;255;0;255"
|
ANSI_COLOR="38;2;255;0;255"
|
||||||
|
@ -8,5 +8,5 @@ DOCUMENTATION_URL="https://git.rp1.hu/explore/repos"
|
||||||
SUPPORT_URL="https://git.rp1.hu/explore/repos"
|
SUPPORT_URL="https://git.rp1.hu/explore/repos"
|
||||||
BUG_REPORT_URL="https://git.rp1.hu/explore/repos"
|
BUG_REPORT_URL="https://git.rp1.hu/explore/repos"
|
||||||
LOGO=raveos-logo
|
LOGO=raveos-logo
|
||||||
VERSION="Beta"
|
VERSION="1.0"
|
||||||
VERSION_ID="Beta"
|
VERSION_ID="1.0"
|
||||||
|
|
|
@ -36,6 +36,7 @@ Architecture = auto
|
||||||
#NoProgressBar
|
#NoProgressBar
|
||||||
#CheckSpace
|
#CheckSpace
|
||||||
#VerbosePkgLists
|
#VerbosePkgLists
|
||||||
|
ILoveCandy
|
||||||
ParallelDownloads = 8
|
ParallelDownloads = 8
|
||||||
#DownloadUser = alpm
|
#DownloadUser = alpm
|
||||||
#DisableSandbox
|
#DisableSandbox
|
||||||
|
|
|
@ -8,8 +8,8 @@ HaltCommand=/usr/bin/systemctl poweroff
|
||||||
RebootCommand=/usr/bin/systemctl reboot
|
RebootCommand=/usr/bin/systemctl reboot
|
||||||
|
|
||||||
[Theme]
|
[Theme]
|
||||||
Current=breeze
|
Current=raveos-sddm
|
||||||
CursorTheme=
|
CursorTheme=Yaru
|
||||||
Font=
|
Font=
|
||||||
|
|
||||||
[Users]
|
[Users]
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# SPDX-FileCopyrightText: no
|
# SPDX-FileCopyrightText: no
|
||||||
# SPDX-License-Identifier: CC0-Beta
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
#
|
#
|
||||||
# Termék márka információk. Ez befolyásolja a Calamares néhány globális
|
# Termék márka információk. Ez befolyásolja a Calamares néhány globális
|
||||||
# felhasználó által látható aspektusát, mint például a termék
|
# felhasználó által látható aspektusát, mint például a termék
|
||||||
|
@ -83,13 +83,13 @@ navigation: widget
|
||||||
# nem pedig a globális megjelenési beállításokat.
|
# nem pedig a globális megjelenési beállításokat.
|
||||||
|
|
||||||
strings:
|
strings:
|
||||||
productName: RaveOS KDE Gaming Linux Beta
|
productName: RaveOS KDE Gaming Linux 1.0
|
||||||
shortProductName: RaveOS KDE Gaming Linux Beta
|
shortProductName: RaveOS KDE Gaming Linux 1.0
|
||||||
version: 2025.02
|
version: 2025.02
|
||||||
shortVersion: 2025.02
|
shortVersion: 2025.02
|
||||||
versionedName: RaveOS KDE Gaming Linux Beta
|
versionedName: RaveOS KDE Gaming Linux 1.0
|
||||||
shortVersionedName: ROSG
|
shortVersionedName: ROSG
|
||||||
bootloaderEntryName: RaveOS KDE Gaming Linux Beta
|
bootloaderEntryName: RaveOS KDE Gaming Linux 1.0
|
||||||
|
|
||||||
images:
|
images:
|
||||||
productIcon: "raveos-icon.jpg"
|
productIcon: "raveos-icon.jpg"
|
||||||
|
|
|
@ -3,20 +3,11 @@
|
||||||
SOURCE_DIR="/root/calamares-build"
|
SOURCE_DIR="/root/calamares-build"
|
||||||
|
|
||||||
# Create required directories
|
# Create required directories
|
||||||
mkdir -p /usr/lib/calamares
|
|
||||||
mkdir -p /usr/share/calamares
|
mkdir -p /usr/share/calamares
|
||||||
mkdir -p /usr/include/libcalamares
|
mkdir -p /usr/include/libcalamares
|
||||||
mkdir -p /usr/bin
|
|
||||||
mkdir -p /etc/calamares
|
mkdir -p /etc/calamares
|
||||||
|
|
||||||
# Copy main executable
|
|
||||||
cp "${SOURCE_DIR}/bin/calamares" /usr/bin/
|
|
||||||
cp "${SOURCE_DIR}/usr/bin/ckbcomp" /usr/bin
|
|
||||||
|
|
||||||
# Copy exact files as in manual commands
|
# Copy exact files as in manual commands
|
||||||
cp -r "${SOURCE_DIR}/lib/libcalamares.so" /usr/lib/
|
|
||||||
cp -r "${SOURCE_DIR}/lib/libcalamaresui.so" /usr/lib/
|
|
||||||
cp -r "${SOURCE_DIR}/lib/calamares" /usr/lib/
|
|
||||||
cp -r "${SOURCE_DIR}/usr/share/calamares" /usr/share/
|
cp -r "${SOURCE_DIR}/usr/share/calamares" /usr/share/
|
||||||
cp -r "${SOURCE_DIR}/usr/include/libcalamares" /usr/include/
|
cp -r "${SOURCE_DIR}/usr/include/libcalamares" /usr/include/
|
||||||
cp -r "${SOURCE_DIR}/etc/calamares" /etc/
|
cp -r "${SOURCE_DIR}/etc/calamares" /etc/
|
||||||
|
|
329
releng/airootfs/root/raveos-sddm/Main.qml
Normal file
329
releng/airootfs/root/raveos-sddm/Main.qml
Normal file
|
@ -0,0 +1,329 @@
|
||||||
|
import QtQuick 2.15
|
||||||
|
import QtQuick.Controls 2.15
|
||||||
|
import QtQuick.Layouts 1.15
|
||||||
|
import QtGraphicalEffects 1.15
|
||||||
|
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||||
|
import org.kde.plasma.components 3.0 as PlasmaComponents
|
||||||
|
import QtQuick.Window 2.15
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: root
|
||||||
|
width: Window.width
|
||||||
|
height: Window.height
|
||||||
|
color: "black"
|
||||||
|
|
||||||
|
// Property a kiválasztott felhasználónak
|
||||||
|
property string currentUser: userModel.lastUser || ""
|
||||||
|
property int defaultSession: {
|
||||||
|
// Keressük meg a Wayland session indexét
|
||||||
|
for (var i = 0; i < sessionModel.rowCount(); i++) {
|
||||||
|
var session = sessionModel.data(sessionModel.index(i, 0), Qt.UserRole + 4) // session file path
|
||||||
|
if (session.indexOf("wayland") !== -1) {
|
||||||
|
return i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sessionModel.lastIndex // Ha nem találtunk wayland-et, használjuk az utolsót
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
// Alapértelmezett felhasználó és session beállítása
|
||||||
|
if (userModel.lastUser !== "") {
|
||||||
|
currentUser = userModel.lastUser
|
||||||
|
} else {
|
||||||
|
for (var i = 0; i < userModel.count; i++) {
|
||||||
|
var userName = userModel.data(userModel.index(i, 0), Qt.UserRole + 1)
|
||||||
|
if (userName && userName !== "") {
|
||||||
|
currentUser = userName
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Háttérkép blur effekttel
|
||||||
|
Item {
|
||||||
|
id: backgroundItem
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: backgroundImage
|
||||||
|
anchors.fill: parent
|
||||||
|
source: config.background || "background.png"
|
||||||
|
fillMode: Image.PreserveAspectCrop
|
||||||
|
asynchronous: true
|
||||||
|
cache: true
|
||||||
|
clip: true
|
||||||
|
mipmap: true
|
||||||
|
visible: false
|
||||||
|
}
|
||||||
|
|
||||||
|
FastBlur {
|
||||||
|
anchors.fill: backgroundImage
|
||||||
|
source: backgroundImage
|
||||||
|
radius: 32
|
||||||
|
cached: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Power gombok konténere
|
||||||
|
Rectangle {
|
||||||
|
id: powerButtonsContainer
|
||||||
|
width: powerButton.width + restartButton.width + 20
|
||||||
|
height: powerButton.height
|
||||||
|
color: "transparent"
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
bottom: parent.bottom
|
||||||
|
rightMargin: parent.width * 0.02
|
||||||
|
bottomMargin: parent.height * 0.02
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restart gomb
|
||||||
|
Rectangle {
|
||||||
|
id: restartButton
|
||||||
|
width: 40
|
||||||
|
height: 40
|
||||||
|
radius: width / 2
|
||||||
|
color: Qt.rgba(255, 255, 255, 0.2)
|
||||||
|
border.color: Qt.rgba(255, 255, 255, 0.3)
|
||||||
|
border.width: 1
|
||||||
|
anchors {
|
||||||
|
right: powerButton.left
|
||||||
|
rightMargin: 20
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaCore.IconItem {
|
||||||
|
id: restartIcon
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: "system-reboot"
|
||||||
|
width: parent.width * 0.6
|
||||||
|
height: width
|
||||||
|
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
onClicked: sddm.reboot()
|
||||||
|
onEntered: parent.color = Qt.rgba(255, 255, 255, 0.3)
|
||||||
|
onExited: parent.color = Qt.rgba(255, 255, 255, 0.2)
|
||||||
|
}
|
||||||
|
|
||||||
|
layer.enabled: true
|
||||||
|
layer.effect: DropShadow {
|
||||||
|
horizontalOffset: 0
|
||||||
|
verticalOffset: 0
|
||||||
|
radius: 8.0
|
||||||
|
samples: 17
|
||||||
|
color: "#80000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Power gomb
|
||||||
|
Rectangle {
|
||||||
|
id: powerButton
|
||||||
|
width: 40
|
||||||
|
height: 40
|
||||||
|
radius: width / 2
|
||||||
|
color: Qt.rgba(255, 255, 255, 0.2)
|
||||||
|
border.color: Qt.rgba(255, 255, 255, 0.3)
|
||||||
|
border.width: 1
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
PlasmaCore.IconItem {
|
||||||
|
id: powerIcon
|
||||||
|
anchors.centerIn: parent
|
||||||
|
source: "system-shutdown"
|
||||||
|
width: parent.width * 0.6
|
||||||
|
height: width
|
||||||
|
colorGroup: PlasmaCore.Theme.ComplementaryColorGroup
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
onClicked: sddm.powerOff()
|
||||||
|
onEntered: parent.color = Qt.rgba(255, 255, 255, 0.3)
|
||||||
|
onExited: parent.color = Qt.rgba(255, 255, 255, 0.2)
|
||||||
|
}
|
||||||
|
|
||||||
|
layer.enabled: true
|
||||||
|
layer.effect: DropShadow {
|
||||||
|
horizontalOffset: 0
|
||||||
|
verticalOffset: 0
|
||||||
|
radius: 8.0
|
||||||
|
samples: 17
|
||||||
|
color: "#80000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fő bejelentkező konténer
|
||||||
|
Item {
|
||||||
|
id: mainLoginContainer
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.bottomMargin: parent.height * 0.15
|
||||||
|
width: Math.min(parent.width * 0.3, 400)
|
||||||
|
height: loginBox.height + passwordContainer.height + 40
|
||||||
|
|
||||||
|
// Profilkép és felhasználónév konténer
|
||||||
|
Rectangle {
|
||||||
|
id: loginBox
|
||||||
|
width: parent.width
|
||||||
|
height: profileContainer.height + usernameText.height + 20
|
||||||
|
color: "transparent"
|
||||||
|
anchors.bottom: passwordContainer.top
|
||||||
|
anchors.bottomMargin: 20
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: profileContainer
|
||||||
|
width: 90
|
||||||
|
height: width
|
||||||
|
radius: width/2
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.top: parent.top
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: profileImage
|
||||||
|
anchors.fill: parent
|
||||||
|
source: config.face || "face.png"
|
||||||
|
fillMode: Image.PreserveAspectCrop
|
||||||
|
layer.enabled: true
|
||||||
|
layer.effect: OpacityMask {
|
||||||
|
maskSource: Rectangle {
|
||||||
|
width: profileImage.width
|
||||||
|
height: profileImage.height
|
||||||
|
radius: width/2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
layer.enabled: true
|
||||||
|
layer.effect: DropShadow {
|
||||||
|
horizontalOffset: 0
|
||||||
|
verticalOffset: 0
|
||||||
|
radius: 8.0
|
||||||
|
samples: 17
|
||||||
|
color: "#80000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: usernameText
|
||||||
|
anchors.top: profileContainer.bottom
|
||||||
|
anchors.topMargin: 10
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
text: currentUser
|
||||||
|
color: "white"
|
||||||
|
font.family: "SF Pro Display"
|
||||||
|
font.pointSize: 14
|
||||||
|
opacity: 0.9
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jelszó mező konténer
|
||||||
|
Rectangle {
|
||||||
|
id: passwordContainer
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
width: 200
|
||||||
|
height: 36
|
||||||
|
radius: height / 2
|
||||||
|
color: Qt.rgba(255, 255, 255, 0.2)
|
||||||
|
border.color: Qt.rgba(255, 255, 255, 0.3)
|
||||||
|
border.width: 1
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: passwordField
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: 2
|
||||||
|
verticalAlignment: TextInput.AlignVCenter
|
||||||
|
horizontalAlignment: TextInput.AlignHCenter
|
||||||
|
echoMode: TextInput.Password
|
||||||
|
placeholderText: "Enter Password"
|
||||||
|
font.family: "SF Pro Display"
|
||||||
|
font.pointSize: 12
|
||||||
|
focus: true
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: "transparent"
|
||||||
|
radius: parent.height / 2
|
||||||
|
}
|
||||||
|
|
||||||
|
color: "white"
|
||||||
|
|
||||||
|
onAccepted: {
|
||||||
|
if (currentUser !== "") {
|
||||||
|
// Használjuk az alapértelmezett wayland session-t
|
||||||
|
sddm.login(currentUser, text, defaultSession)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
forceActiveFocus()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// OS Logo
|
||||||
|
Image {
|
||||||
|
id: osLogo
|
||||||
|
source: config["os-logo"] || "rave-os-2.png"
|
||||||
|
width: 150
|
||||||
|
height: 50
|
||||||
|
fillMode: Image.PreserveAspectFit
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
top: mainLoginContainer.bottom
|
||||||
|
topMargin: parent.height * 0.05
|
||||||
|
}
|
||||||
|
antialiasing: true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Felső óra és dátum
|
||||||
|
Column {
|
||||||
|
id: timeColumn
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: mainLoginContainer.top
|
||||||
|
bottomMargin: parent.height * 0.02
|
||||||
|
}
|
||||||
|
spacing: 5
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: dateText
|
||||||
|
text: Qt.formatDateTime(new Date(), "dddd, MMMM d")
|
||||||
|
color: Qt.rgba(1, 1, 1, 0.7)
|
||||||
|
font.pointSize: 18
|
||||||
|
font.family: "SF Pro Display"
|
||||||
|
font.weight: Font.Bold
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: timeText
|
||||||
|
text: Qt.formatDateTime(new Date(), "HH:mm")
|
||||||
|
color: Qt.rgba(1, 1, 1, 0.7)
|
||||||
|
font.pointSize: 66
|
||||||
|
font.family: "SF Pro Display"
|
||||||
|
font.weight: Font.Bold
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
renderType: Text.QtRendering
|
||||||
|
smooth: true
|
||||||
|
antialiasing: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
interval: 1000
|
||||||
|
running: true
|
||||||
|
repeat: true
|
||||||
|
onTriggered: {
|
||||||
|
timeText.text = Qt.formatDateTime(new Date(), "HH:mm")
|
||||||
|
dateText.text = Qt.formatDateTime(new Date(), "dddd, MMMM d")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
releng/airootfs/root/raveos-sddm/background.png
Normal file
BIN
releng/airootfs/root/raveos-sddm/background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 MiB |
BIN
releng/airootfs/root/raveos-sddm/face.png
Normal file
BIN
releng/airootfs/root/raveos-sddm/face.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 190 KiB |
BIN
releng/airootfs/root/raveos-sddm/rave-os-2.png
Normal file
BIN
releng/airootfs/root/raveos-sddm/rave-os-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
6
releng/airootfs/root/raveos-sddm/theme.conf
Normal file
6
releng/airootfs/root/raveos-sddm/theme.conf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[General]
|
||||||
|
background=background.png
|
||||||
|
type=image
|
||||||
|
backgroundSize=fill
|
||||||
|
face=face.png
|
||||||
|
os-logo=rave-os-2.png
|
6
releng/airootfs/root/raveos-sddm/theme.directory
Normal file
6
releng/airootfs/root/raveos-sddm/theme.directory
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=RaveOS Theme
|
||||||
|
Comment=SDDM RaveOS theme coded by Airmancooma designed by RavePriest1
|
||||||
|
Type=Theme
|
||||||
|
Version=1.0
|
||||||
|
Author=Airmancooma, RavePriest1
|
|
@ -11,6 +11,9 @@ mv "${SOURCE_DIR}/archlinux-logo-text-dark.svg" /usr/share/pixmaps/
|
||||||
cp "${SOURCE_DIR}/view-app-grid-symbolic.svg" /usr/share/icons/Yaru/scalable/actions/
|
cp "${SOURCE_DIR}/view-app-grid-symbolic.svg" /usr/share/icons/Yaru/scalable/actions/
|
||||||
mv "${SOURCE_DIR}/view-app-grid-symbolic.svg" /home/$USER/.icons/Yaru/scalable/actions/
|
mv "${SOURCE_DIR}/view-app-grid-symbolic.svg" /home/$USER/.icons/Yaru/scalable/actions/
|
||||||
|
|
||||||
|
mv /root/raveos-sddm /usr/share/sddm/themes/
|
||||||
|
chmod 755 /usr/share/sddm/themes/raveos-sddm
|
||||||
|
|
||||||
chmod 755 /usr/share/pixmaps/raveos-logo.svg
|
chmod 755 /usr/share/pixmaps/raveos-logo.svg
|
||||||
chmod 755 /usr/share/pixmaps/archlinux-logo-text.svg
|
chmod 755 /usr/share/pixmaps/archlinux-logo-text.svg
|
||||||
chmod 755 /usr/share/pixmaps/archlinux-logo-text-dark.svg
|
chmod 755 /usr/share/pixmaps/archlinux-logo-text-dark.svg
|
||||||
|
@ -52,3 +55,4 @@ rm /usr/share/applications/stoken-gui.desktop
|
||||||
#SystemAccount=false" | tee /var/lib/AccountsService/users/$USER
|
#SystemAccount=false" | tee /var/lib/AccountsService/users/$USER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ EOF
|
||||||
# Nem kezeljük a BTRFS + LUKS kombinációt, áttérünk a nem titkosított btrfs kezelésre
|
# Nem kezeljük a BTRFS + LUKS kombinációt, áttérünk a nem titkosított btrfs kezelésre
|
||||||
|
|
||||||
cat > /boot/loader/entries/raveos.conf << EOF
|
cat > /boot/loader/entries/raveos.conf << EOF
|
||||||
title RaveOS GNOME Gaming 1.0
|
title RaveOS KDE Gaming 1.0
|
||||||
linux /vmlinuz-linux-zen
|
linux /vmlinuz-linux-zen
|
||||||
$CPU_UCODE
|
$CPU_UCODE
|
||||||
initrd /initramfs-linux-zen.img
|
initrd /initramfs-linux-zen.img
|
||||||
|
@ -152,7 +152,7 @@ EOF
|
||||||
# Ez csak ext4 vagy más fájlrendszer + LUKS esetén fut le
|
# Ez csak ext4 vagy más fájlrendszer + LUKS esetén fut le
|
||||||
echo "EXT4 + LUKS konfiguráció létrehozása"
|
echo "EXT4 + LUKS konfiguráció létrehozása"
|
||||||
cat > /boot/loader/entries/raveos.conf << EOF
|
cat > /boot/loader/entries/raveos.conf << EOF
|
||||||
title RaveOS GNOME Gaming 1.0 - LUKS+EXT4
|
title RaveOS KDE Gaming 1.0 - LUKS+EXT4
|
||||||
linux /vmlinuz-linux-zen
|
linux /vmlinuz-linux-zen
|
||||||
$CPU_UCODE
|
$CPU_UCODE
|
||||||
initrd /initramfs-linux-zen.img
|
initrd /initramfs-linux-zen.img
|
||||||
|
@ -164,7 +164,7 @@ EOF
|
||||||
if [ "$FS_TYPE" = "btrfs" ]; then
|
if [ "$FS_TYPE" = "btrfs" ]; then
|
||||||
echo "BTRFS konfiguráció létrehozása (nem titkosított)"
|
echo "BTRFS konfiguráció létrehozása (nem titkosított)"
|
||||||
cat > /boot/loader/entries/raveos.conf << EOF
|
cat > /boot/loader/entries/raveos.conf << EOF
|
||||||
title RaveOS GNOME Gaming 1.0
|
title RaveOS KDE Gaming 1.0
|
||||||
linux /vmlinuz-linux-zen
|
linux /vmlinuz-linux-zen
|
||||||
$CPU_UCODE
|
$CPU_UCODE
|
||||||
initrd /initramfs-linux-zen.img
|
initrd /initramfs-linux-zen.img
|
||||||
|
@ -173,7 +173,7 @@ EOF
|
||||||
else
|
else
|
||||||
echo "Alapértelmezett konfiguráció létrehozása (nem titkosított)"
|
echo "Alapértelmezett konfiguráció létrehozása (nem titkosított)"
|
||||||
cat > /boot/loader/entries/raveos.conf << EOF
|
cat > /boot/loader/entries/raveos.conf << EOF
|
||||||
title RaveOS GNOME Gaming 1.0
|
title RaveOS KDE Gaming 1.0
|
||||||
linux /vmlinuz-linux-zen
|
linux /vmlinuz-linux-zen
|
||||||
$CPU_UCODE
|
$CPU_UCODE
|
||||||
initrd /initramfs-linux-zen.img
|
initrd /initramfs-linux-zen.img
|
||||||
|
@ -189,7 +189,7 @@ EOF
|
||||||
# Bootentry létrehozása
|
# Bootentry létrehozása
|
||||||
echo "Bootentry létrehozása az EFI firmware-ben: $EFI_DISK, partíció: $EFI_PART"
|
echo "Bootentry létrehozása az EFI firmware-ben: $EFI_DISK, partíció: $EFI_PART"
|
||||||
efibootmgr --create --disk "$EFI_DISK" --part "$EFI_PART" \
|
efibootmgr --create --disk "$EFI_DISK" --part "$EFI_PART" \
|
||||||
--loader /EFI/systemd/systemd-bootx64.efi --label "RaveOS GNOME Gaming" \
|
--loader /EFI/systemd/systemd-bootx64.efi --label "RaveOS KDE Gaming" \
|
||||||
--verbose
|
--verbose
|
||||||
|
|
||||||
echo "Systemd-boot telepítése sikeres"
|
echo "Systemd-boot telepítése sikeres"
|
||||||
|
@ -279,7 +279,7 @@ else
|
||||||
echo "GRUB telepítése..."
|
echo "GRUB telepítése..."
|
||||||
pacman -S grub --noconfirm
|
pacman -S grub --noconfirm
|
||||||
grub-install --target=i386-pc --recheck /dev/sda
|
grub-install --target=i386-pc --recheck /dev/sda
|
||||||
sed -i 's/GRUB_DISTRIBUTOR=.*$/GRUB_DISTRIBUTOR="RaveOS GNOME Gaming Linux"/' /etc/default/grub
|
sed -i 's/GRUB_DISTRIBUTOR=.*$/GRUB_DISTRIBUTOR="RaveOS KDE Gaming Linux"/' /etc/default/grub
|
||||||
|
|
||||||
# GRUB konfiguráció generálása
|
# GRUB konfiguráció generálása
|
||||||
echo "GRUB konfiguráció generálása..."
|
echo "GRUB konfiguráció generálása..."
|
||||||
|
|
|
@ -116,7 +116,6 @@ if [[ $user_choice = *"BACKUP All of My Data and Settings"* ]]; then
|
||||||
|
|
||||||
mkdir -p $FOLDER/etc/
|
mkdir -p $FOLDER/etc/
|
||||||
sudo rsync -ap --info=progress2 /etc/libvirt $FOLDER/etc 2>/dev/null
|
sudo rsync -ap --info=progress2 /etc/libvirt $FOLDER/etc 2>/dev/null
|
||||||
sudo rsync -ap --info=progress2 /etc/NetworkManager/system-connections $FOLDER/etc 2>/dev/null
|
|
||||||
|
|
||||||
sudo rsync -ap --info=progress2 /usr/share/jellyfin/web/config.json $FOLDER 2>/dev/null
|
sudo rsync -ap --info=progress2 /usr/share/jellyfin/web/config.json $FOLDER 2>/dev/null
|
||||||
|
|
||||||
|
@ -169,7 +168,6 @@ if [[ $user_choice = *"RESTORE All of My Data and Settings"* ]]; then
|
||||||
echo Copying ${bold}${yellow}Restoring - $USER - Settings and Files ${normal} into ${bold}${yellow}$FOLDER/${normal}
|
echo Copying ${bold}${yellow}Restoring - $USER - Settings and Files ${normal} into ${bold}${yellow}$FOLDER/${normal}
|
||||||
|
|
||||||
sudo rsync -ap --info=progress2 $FOLDER/etc/libvirt /etc/ 2>/dev/null
|
sudo rsync -ap --info=progress2 $FOLDER/etc/libvirt /etc/ 2>/dev/null
|
||||||
sudo rsync -ap --info=progress2 $FOLDER/etc/NetworkManager/system-connections /etc/NetworkManager 2>/dev/null
|
|
||||||
sudo rsync -ap --info=progress2 $FOLDER/config.json /usr/share/jellyfin/web/ 2>/dev/null
|
sudo rsync -ap --info=progress2 $FOLDER/config.json /usr/share/jellyfin/web/ 2>/dev/null
|
||||||
sudo rsync -ap --info=progress2 $FOLDER /home/$USER/
|
sudo rsync -ap --info=progress2 $FOLDER /home/$USER/
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ Architecture = auto
|
||||||
# We cannot check disk space from within a chroot environment
|
# We cannot check disk space from within a chroot environment
|
||||||
#CheckSpace
|
#CheckSpace
|
||||||
#VerbosePkgLists
|
#VerbosePkgLists
|
||||||
|
ILoveCandy
|
||||||
ParallelDownloads = 5
|
ParallelDownloads = 5
|
||||||
#DownloadUser = alpm
|
#DownloadUser = alpm
|
||||||
#DisableSandbox
|
#DisableSandbox
|
||||||
|
@ -97,8 +98,8 @@ Include = /etc/pacman.d/mirrorlist
|
||||||
# tips on creating your own repositories.
|
# tips on creating your own repositories.
|
||||||
[custom]
|
[custom]
|
||||||
SigLevel = Optional TrustAll
|
SigLevel = Optional TrustAll
|
||||||
#Server = file:///home/rave/RaveOS/RaveOS-GUI/RaveOS-Base/pkgs
|
#Server = file:///home/rave/RaveOS-KDE/pkgs
|
||||||
Server = file:///home/airmancooma/Documents/OSs/RaveOS-KDE/pkgs
|
#Server = file:///home/airmancooma/Documents/OSs/RaveOS-KDE/pkgs
|
||||||
|
Server = file:///build/build/pkgs
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue