mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-01-10 15:54:25 +00:00
7ab07d4485
The Steam Deck does not have separate buttons for power, suspend, hibernate, etc, so set the power key to allow the device to suspend when the button is pressed matching the behaviour of Steam OS
107 lines
4.2 KiB
Docker
107 lines
4.2 KiB
Docker
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
|
|
|
|
# Suspend using power button
|
|
RUN sed -i 's/#HandlePowerKey=poweroff/HandlePowerKey=suspend/g' /etc/systemd/logind.conf
|
|
|
|
# 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
|