ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}" ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}" ARG SOURCE_IMAGE="${SOURCE_IMAGE:-$BASE_IMAGE_NAME-$IMAGE_FLAVOR}" ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-38}" FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS bazzite ARG IMAGE_NAME="${IMAGE_NAME}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}" COPY etc /etc COPY usr /usr # Add Copr repos RUN wget https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/repo/fedora-$(rpm -E %fedora)/kylegospo-bazzite-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \ wget https://copr.fedorainfracloud.org/coprs/kylegospo/system76-scheduler/repo/fedora-$(rpm -E %fedora)/kylegospo-system76-scheduler-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-system76-scheduler.repo && \ wget https://copr.fedorainfracloud.org/coprs/kylegospo/hl2linux-selinux/repo/fedora-$(rpm -E %fedora)/kylegospo-hl2linux-selinux-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo # Install new packages RUN rpm-ostree install \ distrobox \ steamdeck-kde-themes \ wallpaper-engine-kde-plugin \ duperemove \ kdeconnectd \ system76-scheduler \ hl2linux-selinux \ btop \ fish \ kate # Remove unneeded packages RUN rpm-ostree override remove toolbox # Cleanup & Finalize RUN sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-system76-scheduler.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo && \ sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/user.conf && \ sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/system.conf && \ sed -i 's/#AutomaticUpdatePolicy.*/AutomaticUpdatePolicy=stage/' /etc/rpm-ostreed.conf && \ systemctl enable rpm-ostreed-automatic.timer && \ rm -rf \ /tmp/* \ /var/* && \ mkdir -p /var/lib/duperemove && \ ostree container commit && \ mkdir -p /var/tmp && \ chmod -R 1777 /var/tmp FROM bazzite as bazzite-deck ARG IMAGE_NAME="${IMAGE_NAME}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}" # Add LatencyFlex Copr RUN wget https://copr.fedorainfracloud.org/coprs/kylegospo/LatencyFleX/repo/fedora-$(rpm -E %fedora)/kylegospo-LatencyFleX-fedora-$(rpm -E %fedora).repo -O \ /etc/yum.repos.d/_copr_kylegospo-latencyflex.repo # Re-enable Copr RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \ sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo # Remove system76-scheduler RUN rpm-ostree override remove system76-scheduler RUN rm -f /usr/bin/system76-scheduler-dbus-proxy.sh # Remove steamdeck-kde-themes RUN rpm-ostree override remove steamdeck-kde-themes COPY deck/etc /etc COPY deck/usr /usr RUN ln -s /usr/bin/steamos-logger /usr/bin/steamos-info && \ ln -s /usr/bin/steamos-logger /usr/bin/steamos-notice && \ ln -s /usr/bin/steamos-logger /usr/bin/steamos-warning # Install new packages RUN rpm-ostree install \ steam \ gamescope \ gamescope-session \ jupiter-fan-control \ jupiter-hw-support-btrfs \ steamdeck-kde-presets \ gamemode \ latencyflex-vulkan-layer \ vkBasalt \ mangohud # Install dock updater, this is done manually as it has proprietary parts and cannot be built in Copr. RUN git clone https://github.com/KyleGospo/jupiter-dock-updater-bin.git && \ mv -v jupiter-dock-updater-bin/packaged/usr/lib/jupiter-dock-updater /usr/lib/jupiter-dock-updater # Cleanup & Finalize RUN sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-latencyflex.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo && \ rm -rf \ /tmp/* \ /var/* && \ mkdir -p /var/lib/duperemove && \ ostree container commit