#!/usr/bin/env bash # ============================================================================= # build.sh - runs INSIDE the container during `podman build` # KAMOS Gaming OS - based on Bazzite-NVIDIA # ============================================================================= set -euxo pipefail # ----------------------------------------------------------------------------- # 1. Install extra packages # ----------------------------------------------------------------------------- EXTRA_PACKAGES=( # Add packages here later if you want ) if [ ${#EXTRA_PACKAGES[@]} -gt 0 ]; then dnf -y install "${EXTRA_PACKAGES[@]}" fi # ----------------------------------------------------------------------------- # 2. Remove packages # ----------------------------------------------------------------------------- REMOVE_PACKAGES=( # Add packages to remove here later ) if [ ${#REMOVE_PACKAGES[@]} -gt 0 ]; then dnf -y remove --no-autoremove "${REMOVE_PACKAGES[@]}" fi # ----------------------------------------------------------------------------- # 3. Enable systemd units # ----------------------------------------------------------------------------- SERVICES_ENABLE=( # Add services here later ) for svc in "${SERVICES_ENABLE[@]}"; do systemctl enable "$svc" done # ----------------------------------------------------------------------------- # 4. KAMOS branding - OS release name # ----------------------------------------------------------------------------- KAMOS_OS_NAME="KAMOS Gaming OS" KAMOS_TAGLINE="Play. Perform. Dominate." KAMOS_HOME_URL="https://cgi.medsys.cloud/mkm1971/kamos" if [ -f /usr/lib/os-release ]; then sed -i \ -e "s|^NAME=.*|NAME=\"${KAMOS_OS_NAME}\"|" \ -e "s|^PRETTY_NAME=.*|PRETTY_NAME=\"${KAMOS_OS_NAME} - ${KAMOS_TAGLINE}\"|" \ -e "s|^HOME_URL=.*|HOME_URL=\"${KAMOS_HOME_URL}\"|" \ -e "s|^VARIANT=.*|VARIANT=\"KAMOS\"|" \ -e "s|^VARIANT_ID=.*|VARIANT_ID=kamos|" \ /usr/lib/os-release fi # ----------------------------------------------------------------------------- # 5. KAMOS wallpaper - GNOME (dconf) # ----------------------------------------------------------------------------- KAMOS_WALLPAPER="/usr/share/backgrounds/kamos/kamos-wallpaper.jpg" if [ -f "${KAMOS_WALLPAPER}" ]; then echo "==> Applying KAMOS GNOME wallpaper" mkdir -p /etc/dconf/db/local.d /etc/dconf/profile cat > /etc/dconf/profile/user <<'EOF' user-db:user system-db:local EOF cat > /etc/dconf/db/local.d/01-kamos-wallpaper < Applying KAMOS KDE Plasma wallpaper defaults" mkdir -p /etc/skel/.config cat > /etc/skel/.config/plasma-org.kde.plasma.desktop-appletsrc < /usr/share/wallpapers/Kamos/metadata.json <<'EOF' { "KPlugin": { "Id": "Kamos", "Name": "KAMOS" }, "X-KDE-PluginInfo-Author": "mkm1971", "X-KDE-PluginInfo-License": "Apache-2.0", "X-KDE-PluginInfo-Name": "Kamos" } EOF fi # ----------------------------------------------------------------------------- # 6. KAMOS Plymouth boot splash # ----------------------------------------------------------------------------- echo "==> Plymouth theme setup" if [ -d /usr/share/plymouth/themes/kamos ]; then echo "==> KAMOS theme directory exists, contents:" ls -la /usr/share/plymouth/themes/kamos/ if [ -f /usr/share/plymouth/themes/kamos/kamos.plymouth ]; then echo "==> kamos.plymouth file present, attempting to install script plugin" if dnf -y install plymouth-plugin-script 2>/dev/null; then echo "==> plymouth-plugin-script installed" else echo "==> plymouth-plugin-script unavailable; trying without it" fi echo "==> Setting KAMOS as default plymouth theme" if plymouth-set-default-theme kamos 2>&1; then echo "==> SUCCESS: theme set to kamos" if command -v dracut >/dev/null 2>&1; then echo "==> Regenerating initramfs (dracut)" dracut --force --regenerate-all || true fi else echo "==> FAILED to set kamos theme" fi else echo "==> kamos.plymouth file MISSING - theme directory exists but is empty" fi else echo "==> WARN: /usr/share/plymouth/themes/kamos/ does not exist" fi # ----------------------------------------------------------------------------- # 7. KAMOS GRUB logo (only if GRUB themes exist - Bazzite uses systemd-boot) # ----------------------------------------------------------------------------- KAMOS_LOGO="/usr/share/pixmaps/kamos-logo.png" if [ -f "${KAMOS_LOGO}" ]; then echo "==> KAMOS logo present at ${KAMOS_LOGO}" if [ -d /usr/share/grub/themes ]; then for theme_dir in /usr/share/grub/themes/*/; do if [ -d "${theme_dir}" ]; then cp -f "${KAMOS_LOGO}" "${theme_dir}/logo.png" || true fi done fi fi # ----------------------------------------------------------------------------- # 8. Cleanup # ----------------------------------------------------------------------------- dnf clean all rm -rf /tmp/* /var/* || true mkdir -p /var/log /var/cache /var/tmp echo "==> build.sh finished cleanly"