2026-02-17 17:27:26 +01:00
|
|
|
#!/usr/bin/bash
|
|
|
|
|
|
|
|
|
|
set -eoux pipefail
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# Main Build Script
|
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
|
|
# Source helper functions
|
|
|
|
|
# shellcheck source=/dev/null
|
|
|
|
|
source /ctx/build/copr-helpers.sh
|
|
|
|
|
|
|
|
|
|
# Enable nullglob for all glob operations to prevent failures on empty matches
|
|
|
|
|
shopt -s nullglob
|
|
|
|
|
|
|
|
|
|
echo "::group:: Copy Bluefin Config from Common"
|
|
|
|
|
|
|
|
|
|
mkdir -p /usr/share/ublue-os/just/
|
|
|
|
|
cp -r /ctx/oci/common/bluefin/usr/share/ublue-os/just/* /usr/share/ublue-os/just/
|
|
|
|
|
|
|
|
|
|
echo "::endgroup::"
|
|
|
|
|
|
|
|
|
|
echo "::group:: Copy Custom Files"
|
|
|
|
|
|
|
|
|
|
mkdir -p /usr/share/ublue-os/homebrew/
|
|
|
|
|
cp /ctx/custom/brew/*.Brewfile /usr/share/ublue-os/homebrew/
|
|
|
|
|
|
2026-02-28 15:04:42 +01:00
|
|
|
find /ctx/custom/ujust -iname '*.just' -exec printf "\n\n" \; -exec cat {} \; \
|
|
|
|
|
>> /usr/share/ublue-os/just/60-custom.just
|
2026-02-17 17:27:26 +01:00
|
|
|
|
|
|
|
|
mkdir -p /etc/flatpak/preinstall.d/
|
|
|
|
|
cp /ctx/custom/flatpaks/*.preinstall /etc/flatpak/preinstall.d/
|
|
|
|
|
|
|
|
|
|
echo "::endgroup::"
|
|
|
|
|
|
|
|
|
|
echo "::group:: Install Packages"
|
|
|
|
|
|
2026-02-28 15:04:42 +01:00
|
|
|
# Base utilities
|
2026-02-17 18:43:19 +01:00
|
|
|
dnf5 install -y \
|
2026-02-28 15:04:42 +01:00
|
|
|
fastfetch \
|
|
|
|
|
btop
|
2026-02-17 18:43:19 +01:00
|
|
|
|
2026-02-28 15:04:42 +01:00
|
|
|
# Hyprland über COPR (isoliert)
|
|
|
|
|
copr_install_isolated "ashbuk/Hyprland-Fedora" \
|
|
|
|
|
hyprland \
|
|
|
|
|
xdg-desktop-portal-hyprland
|
2026-02-17 17:27:26 +01:00
|
|
|
|
2026-02-28 17:35:52 +01:00
|
|
|
# Quickshell aus COPR (isoliert)
|
2026-02-28 17:48:51 +01:00
|
|
|
copr_install_isolated "errornointernet/quickshell" \
|
2026-02-28 17:35:52 +01:00
|
|
|
quickshell
|
|
|
|
|
|
|
|
|
|
# Hyprland-Bausteine (isoliert)
|
|
|
|
|
copr_install_isolated "nett00n/hyprland" \
|
2026-02-28 15:04:42 +01:00
|
|
|
hyprpaper \
|
|
|
|
|
hypridle \
|
|
|
|
|
hyprlock \
|
2026-02-28 17:35:52 +01:00
|
|
|
hyprpolkitagent
|
|
|
|
|
|
|
|
|
|
# Desktop-Basis aus Fedora
|
|
|
|
|
dnf5 install -y \
|
2026-02-28 15:04:42 +01:00
|
|
|
foot \
|
|
|
|
|
fuzzel \
|
|
|
|
|
wlogout \
|
|
|
|
|
xdg-desktop-portal-gtk \
|
|
|
|
|
network-manager-applet
|
|
|
|
|
|
|
|
|
|
# Laptop-spezifische Komponenten
|
|
|
|
|
dnf5 install -y \
|
|
|
|
|
power-profiles-daemon \
|
|
|
|
|
upower \
|
|
|
|
|
bluez \
|
|
|
|
|
bluez-tools \
|
|
|
|
|
blueman
|
2026-02-17 17:27:26 +01:00
|
|
|
|
|
|
|
|
echo "::endgroup::"
|
|
|
|
|
|
|
|
|
|
echo "::group:: System Configuration"
|
|
|
|
|
|
|
|
|
|
systemctl enable podman.socket
|
2026-02-28 15:04:42 +01:00
|
|
|
systemctl enable bluetooth.service
|
2026-02-17 17:27:26 +01:00
|
|
|
|
|
|
|
|
echo "::endgroup::"
|
|
|
|
|
|
|
|
|
|
shopt -u nullglob
|
|
|
|
|
|
|
|
|
|
echo "Custom build complete!"
|