2023-06-18 19:22:17 +00:00
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}"
2023-08-27 15:06:13 -06:00
ARG IMAGE_VENDOR="ublue-os"
2023-08-03 15:22:59 -07:00
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
2023-08-04 00:06:25 -07:00
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
2023-06-18 19:22:17 +00:00
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"
2023-02-09 11:08:39 -08:00
2023-08-01 19:55:25 -06:00
COPY system_files/desktop/shared /
2023-08-03 15:22:59 -07:00
COPY system_files/desktop/${BASE_IMAGE_NAME} /
2023-07-28 00:17:26 -07:00
2023-08-01 08:36:47 -07:00
# Add ublue packages, add needed negativo17 repo and then immediately disable due to incompatibility with RPMFusion
COPY --from=ghcr.io/ublue-os/akmods:${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rpms
COPY --from=ghcr.io/ublue-os/ublue-update:latest /rpms/ublue-update.noarch.rpm /tmp/rpms/ublue-update.noarch.rpm
2023-07-28 00:17:26 -07:00
RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
2023-08-01 08:36:47 -07:00
wget https://negativo17.org/repos/fedora-multimedia.repo -O /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \
rpm-ostree install \
/tmp/akmods-rpms/kmods/*gcadapter_oc*.rpm \
2023-09-18 09:03:34 -07:00
/tmp/akmods-rpms/kmods/*nct6687*.rpm \
2023-08-01 08:36:47 -07:00
/tmp/akmods-rpms/kmods/*openrgb*.rpm \
2023-09-16 10:23:58 -07:00
/tmp/akmods-rpms/kmods/*ryzen-smu*.rpm \
2023-08-01 08:36:47 -07:00
/tmp/akmods-rpms/kmods/*evdi*.rpm \
2023-09-14 17:53:07 -07:00
/tmp/akmods-rpms/kmods/*wl*.rpm \
2023-09-19 09:48:35 -07:00
/tmp/rpms/ublue-update.noarch.rpm && \
2023-08-01 08:36:47 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo
# Setup 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 && \
2023-08-09 13:07:39 -07:00
wget https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite-multilib/repo/fedora-$(rpm -E %fedora)/kylegospo-bazzite-multilib-fedora-$(rpm -E %fedora).repo?arch=x86_64 -O /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
2023-08-13 10:37:21 -07:00
wget https://copr.fedorainfracloud.org/coprs/ublue-os/distrobox-git/repo/fedora-$(rpm -E %fedora)/ublue-os-distrobox-git-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_ublue-os-distrobox-git.repo && \
2023-07-28 00:17:26 -07:00
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 && \
wget https://copr.fedorainfracloud.org/coprs/kylegospo/obs-vkcapture/repo/fedora-$(rpm -E %fedora)/kylegospo-obs-vkcapture-fedora-$(rpm -E %fedora).repo?arch=x86_64 -O /etc/yum.repos.d/_copr_kylegospo-obs-vkcapture.repo && \
wget https://copr.fedorainfracloud.org/coprs/kylegospo/wallpaper-engine-kde-plugin/repo/fedora-$(rpm -E %fedora)/kylegospo-wallpaper-engine-kde-plugin-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
wget https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/repo/fedora-$(rpm -E %fedora)/kylegospo-gnome-vrr-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-gnome-vrr.repo && \
2023-08-02 00:22:06 -07:00
wget https://copr.fedorainfracloud.org/coprs/ycollet/audinux/repo/fedora-$(rpm -E %fedora)/ycollet-audinux-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
2023-09-06 01:10:07 -07:00
wget https://copr.fedorainfracloud.org/coprs/lyessaadi/gradience/repo/fedora-$(rpm -E %fedora)/lyessaadi-gradience-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_lyessaadi-gradience.repo && \
2023-09-20 14:58:49 -07:00
wget https://copr.fedorainfracloud.org/coprs/kylegospo/rom-properties/repo/fedora-$(rpm -E %fedora)/kylegospo-rom-properties-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-rom-properties.repo && \
wget https://pkgs.tailscale.com/stable/fedora/tailscale.repo -O /etc/yum.repos.d/tailscale.repo && \
sed -i 's@gpgcheck=1@gpgcheck=0@g' /etc/yum.repos.d/tailscale.repo
2023-02-09 11:08:39 -08:00
2023-07-28 00:17:26 -07:00
# Remove unneeded packages
RUN rpm-ostree override remove \
ublue-os-update-services \
firefox \
firefox-langpacks \
2023-09-15 10:42:04 -07:00
htop
2023-02-09 11:08:39 -08:00
# Install new packages
RUN rpm-ostree install \
2023-09-19 13:24:44 -07:00
extest.i686 \
2023-06-23 11:54:54 -07:00
python3-pip \
2023-06-24 18:05:16 -06:00
libadwaita \
2023-06-18 19:22:17 +00:00
duperemove \
2023-08-21 17:09:18 -07:00
xwininfo \
2023-08-23 22:41:01 -07:00
xrandr \
2023-07-21 16:24:56 -07:00
rmlint \
2023-07-21 16:27:20 -07:00
compsize \
2023-07-27 12:52:18 -06:00
ddccontrol \
ddccontrol-gtk \
2023-08-18 14:22:36 -07:00
ddccontrol-db \
2023-06-27 08:40:04 -06:00
input-remapper \
2023-06-18 19:22:17 +00:00
system76-scheduler \
hl2linux-selinux \
2023-07-03 23:26:12 -07:00
libobs_glcapture \
libobs_vkcapture \
2023-07-04 19:41:17 -07:00
obs-vkcapture \
2023-08-24 09:17:29 -07:00
ladspa-caps-plugins \
2023-07-25 10:48:05 -07:00
ladspa-noise-suppression-for-voice \
2023-09-20 14:58:49 -07:00
tailscale \
2023-07-04 19:41:17 -07:00
btop \
2023-07-28 00:55:55 -07:00
fish \
xdotool \
2023-08-19 00:24:04 -07:00
wmctrl \
2023-08-16 08:23:12 -07:00
yad \
2023-08-17 17:47:15 -07:00
f3 \
2023-09-16 10:33:21 -07:00
pulseaudio-utils \
2023-08-31 16:28:55 -07:00
twitter-twemoji-fonts \
2023-08-16 11:07:15 -07:00
lato-fonts \
2023-09-04 13:45:29 -07:00
fira-code-fonts && \
wget https://gitlab.com/popsulfr/steamos-btrfs/-/raw/main/files/usr/lib/systemd/system/btrfs-dedup@.service -O /usr/lib/systemd/system/btrfs-dedup@.service && \
2023-09-07 08:20:12 -07:00
wget https://gitlab.com/popsulfr/steamos-btrfs/-/raw/main/files/usr/lib/systemd/system/btrfs-dedup@.timer -O /usr/lib/systemd/system/btrfs-dedup@.timer
2023-06-18 19:22:17 +00:00
2023-08-02 00:18:36 -07:00
# Configure KDE & GNOME
2023-08-07 13:32:24 -07:00
RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
2023-08-01 21:04:54 -06:00
rpm-ostree override remove \
plasma-welcome \
2023-08-01 20:37:07 -06:00
qt5-qdbusviewer && \
2023-08-01 21:04:54 -06:00
rpm-ostree install \
steamdeck-kde-presets-desktop \
wallpaper-engine-kde-plugin \
2023-09-06 10:41:59 -07:00
kdeconnectd \
rom-properties-kf5 && \
2023-08-06 15:31:03 -06:00
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:gnome-vrr \
2023-08-08 13:53:26 -07:00
xorg-x11-server-Xwayland && \
git clone https://github.com/maxiberta/kwin-system76-scheduler-integration.git --depth 1 /tmp/kwin-system76-scheduler-integration && \
2023-08-08 14:01:10 -07:00
git clone https://github.com/catsout/wallpaper-engine-kde-plugin.git --depth 1 /tmp/wallpaper-engine-kde-plugin && \
2023-08-08 13:53:26 -07:00
kpackagetool5 --type=KWin/Script --global --install /tmp/kwin-system76-scheduler-integration && \
2023-08-08 14:01:10 -07:00
kpackagetool5 --type=Plasma/Wallpaper --global --install /tmp/wallpaper-engine-kde-plugin/plugin && \
rm -rf /tmp/kwin-system76-scheduler-integration && \
2023-09-14 10:01:35 -07:00
rm -rf /tmp/wallpaper-engine-kde-plugin && \
sed -i 's@After=plasma-core.target@After=plasma-core.target\nAfter=xdg-desktop-portal.service@g' /usr/lib/systemd/user/plasma-xdg-desktop-portal-kde.service \
2023-08-02 00:18:36 -07:00
; else \
2023-08-02 00:26:24 -07:00
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:gnome-vrr \
2023-08-02 00:18:36 -07:00
mutter \
2023-08-23 22:43:40 -07:00
mutter-common \
2023-08-02 00:18:36 -07:00
gnome-control-center \
2023-08-06 15:31:03 -06:00
gnome-control-center-filesystem \
2023-08-06 14:42:52 -07:00
xorg-x11-server-Xwayland && \
2023-08-02 00:22:06 -07:00
rpm-ostree install \
2023-08-02 18:37:25 -06:00
steamdeck-backgrounds \
2023-08-02 00:22:06 -07:00
gradience \
2023-09-16 00:09:05 -07:00
gnome-randr-rust \
2023-08-02 14:23:25 -07:00
gnome-shell-extension-user-theme \
gnome-shell-extension-gsconnect \
2023-08-04 11:10:52 -06:00
gnome-shell-extension-system76-scheduler \
2023-08-14 23:32:09 -07:00
gnome-shell-extension-caribou-blocker \
2023-08-06 23:47:58 -07:00
gnome-shell-extension-compiz-windows-effect \
2023-08-09 18:54:01 -07:00
gnome-shell-extension-just-perfection \
2023-08-09 19:01:07 -07:00
gnome-shell-extension-blur-my-shell \
2023-08-21 00:02:18 -07:00
gnome-shell-extension-hanabi \
2023-09-20 15:19:27 -07:00
gnome-shell-extension-gamerzilla \
2023-09-06 10:41:59 -07:00
rom-properties-gtk3 \
2023-08-04 11:10:52 -06:00
openssh-askpass && \
2023-08-03 13:08:09 -07:00
rpm-ostree override remove \
2023-08-05 20:12:05 -06:00
gnome-classic-session \
2023-08-03 13:08:09 -07:00
gnome-tour \
2023-08-24 01:18:02 -07:00
gnome-extensions-app \
2023-08-01 21:04:54 -06:00
; fi
2023-08-04 13:08:54 -07:00
# Install ROCM and Waydroid on non-Nvidia images
2023-08-18 21:27:29 -07:00
# Install distrobox-git on Nvidia images (while needed)
2023-08-04 10:34:28 -06:00
RUN if grep -qv "nvidia" <<< "${IMAGE_NAME}"; then \
2023-07-06 15:02:56 -07:00
rpm-ostree install \
rocm-hip \
rocm-opencl \
2023-08-04 12:34:51 -07:00
waydroid \
lzip \
weston \
2023-08-18 21:27:29 -07:00
; else \
rpm-ostree override remove \
distrobox && \
rpm-ostree install \
distrobox-git \
2023-07-30 15:59:19 -06:00
; fi
2023-07-30 14:13:55 -06:00
2023-06-18 19:22:17 +00:00
# Cleanup & Finalize
2023-07-30 18:08:19 -07:00
RUN rm /usr/share/applications/shredder.desktop && \
2023-07-30 23:54:41 -07:00
rm /usr/share/vulkan/icd.d/lvp_icd.*.json && \
2023-07-30 18:08:19 -07:00
mkdir -p "/usr/etc/profile.d/" && \
2023-07-28 00:17:26 -07:00
ln -s "/usr/share/ublue-os/firstboot/launcher/login-profile.sh" \
"/usr/etc/profile.d/ublue-firstboot.sh" && \
2023-08-05 19:58:58 -06:00
cp "/usr/share/ublue-os/firstboot/yafti.yml" "/etc/yafti.yml" && \
2023-07-28 00:17:26 -07:00
pip install --prefix=/usr yafti && \
2023-08-18 17:43:55 -07:00
pip install --prefix=/usr hyfetch && \
2023-08-10 09:04:05 -06:00
sed -i 's/stage/none/g' /etc/rpm-ostreed.conf && \
2023-07-19 15:23:31 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
2023-08-13 10:37:21 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-distrobox-git.repo && \
2023-06-23 11:39:07 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
2023-08-09 13:07:39 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
2023-06-18 19:22:17 +00:00
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 && \
2023-07-03 23:26:12 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-obs-vkcapture.repo && \
2023-07-05 12:18:47 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
2023-07-22 00:02:53 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-gnome-vrr.repo && \
2023-07-25 10:48:05 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
2023-08-02 00:22:06 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_lyessaadi-gradience.repo && \
2023-09-06 01:10:07 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-rom-properties.repo && \
2023-09-20 14:58:49 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/tailscale.repo && \
2023-06-18 19:22:17 +00:00
sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/user.conf && \
sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/system.conf && \
2023-09-13 09:32:06 -07:00
mkdir -p /usr/etc/flatpak/remotes.d && \
wget -q https://dl.flathub.org/repo/flathub.flatpakrepo -P /usr/etc/flatpak/remotes.d && \
2023-08-08 11:07:44 -07:00
systemctl enable com.system76.Scheduler.service && \
2023-08-08 14:48:45 -07:00
systemctl enable displaylink.service && \
2023-09-05 01:24:27 -07:00
systemctl enable btrfs-dedup@var-home.timer && \
2023-08-08 14:48:45 -07:00
systemctl enable input-remapper.service && \
2023-09-09 10:07:41 -06:00
systemctl unmask bazzite-flatpak-manager.service && \
systemctl enable bazzite-flatpak-manager.service && \
2023-06-30 22:54:08 -07:00
systemctl disable rpm-ostreed-automatic.timer && \
2023-09-17 12:43:16 -06:00
systemctl enable ublue-update.timer && \
2023-08-08 14:48:45 -07:00
systemctl enable bazzite-hardware-setup.service && \
2023-09-20 15:19:27 -07:00
systemctl enable tailscaled.service && \
2023-08-08 14:48:45 -07:00
systemctl --global enable bazzite-user-setup.service && \
2023-08-07 13:26:21 -07:00
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
2023-08-15 15:06:18 -07:00
sed -i '/^PRETTY_NAME/s/Kinoite/Bazzite/' /usr/lib/os-release && \
systemctl --global enable com.system76.Scheduler.dbusproxy.service \
2023-08-07 13:26:21 -07:00
; else \
2023-08-07 07:39:07 -07:00
rm /usr/share/applications/yad-icon-browser.desktop && \
2023-08-22 14:25:54 -07:00
rm /usr/share/applications/com.github.rafostar.Clapper.desktop && \
2023-08-08 14:48:45 -07:00
sed -i '/^PRETTY_NAME/s/Silverblue/Bazzite GNOME/' /usr/lib/os-release \
2023-08-01 23:05:06 -07:00
; fi && \
2023-09-11 11:15:25 -07:00
if grep -qv "nvidia" <<< "${IMAGE_NAME}"; then \
2023-08-16 07:52:50 -07:00
systemctl disable waydroid-container.service && \
rm /usr/share/wayland-sessions/weston.desktop \
2023-08-08 21:29:07 -07:00
; fi && \
2023-09-13 09:32:06 -07:00
mkdir -p /usr/etc/default && \
echo -e "IMAGE_NAME=${IMAGE_NAME}\nIMAGE_VENDOR=${IMAGE_VENDOR}\nBASE_IMAGE_NAME=${BASE_IMAGE_NAME}\nIMAGE_FLAVOR=${IMAGE_FLAVOR}\nFEDORA_MAJOR_VERSION=${FEDORA_MAJOR_VERSION}" >> /usr/etc/default/bazzite && \
2023-06-18 19:22:17 +00:00
rm -rf \
/tmp/* \
/var/* && \
mkdir -p /var/tmp && \
2023-07-25 15:55:19 -07:00
chmod -R 1777 /var/tmp && \
2023-09-09 15:30:40 -06:00
ostree container commit
2023-06-18 19:22:17 +00:00
FROM bazzite as bazzite-deck
ARG IMAGE_NAME="${IMAGE_NAME}"
2023-08-27 15:06:13 -06:00
ARG IMAGE_VENDOR="ublue-os"
2023-08-03 15:22:59 -07:00
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
2023-08-04 09:08:34 -07:00
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
2023-06-18 19:22:17 +00:00
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"
2023-08-01 19:55:25 -06:00
COPY system_files/deck/shared /
2023-08-03 15:22:59 -07:00
COPY system_files/deck/${BASE_IMAGE_NAME} /
2023-08-01 19:55:25 -06:00
2023-07-28 00:17:26 -07:00
# Setup Copr repos
2023-08-09 13:07:39 -07:00
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 && \
2023-09-15 10:11:36 -07:00
wget https://copr.fedorainfracloud.org/coprs/mavit/discover-overlay/repo/fedora-$(rpm -E %fedora)/mavit-discover-overlay-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_mavit_discover.repo && \
2023-07-28 00:17:26 -07:00
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
2023-07-19 15:23:31 -07:00
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
2023-08-09 13:07:39 -07:00
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
2023-07-03 23:26:12 -07:00
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo && \
2023-07-05 12:18:47 -07:00
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-obs-vkcapture.repo && \
2023-07-25 11:13:28 -07:00
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo
2023-06-18 19:22:17 +00:00
2023-07-23 00:59:48 -07:00
# Install Valve's Steam Deck drivers as kmods
2023-07-19 15:23:31 -07:00
COPY --from=ghcr.io/ublue-os/akmods:${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rpms
2023-07-19 21:53:04 -07:00
RUN rpm-ostree install \
2023-07-21 14:33:32 -07:00
/tmp/akmods-rpms/kmods/*steamdeck*.rpm
2023-07-19 15:23:31 -07:00
2023-08-02 00:26:24 -07:00
# Install gamescope-limiter patched Mesa and patched udisks2 (Needed for SteamOS SD card mounting)
RUN rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite-multilib \
2023-09-08 19:13:34 -07:00
mesa-filesystem \
2023-08-02 00:26:24 -07:00
mesa-dri-drivers \
mesa-libEGL \
2023-09-03 19:55:32 -07:00
mesa-libEGL-devel \
2023-08-02 00:26:24 -07:00
mesa-libgbm \
mesa-libGL \
mesa-libglapi \
mesa-vulkan-drivers && \
2023-08-19 23:23:40 -07:00
if [ ${FEDORA_MAJOR_VERSION} -lt 39 ]; then \
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite \
udisks2 \
2023-08-20 00:43:00 -07:00
libudisks2 \
udisks2-btrfs \
2023-08-19 23:23:40 -07:00
; fi
2023-06-28 11:51:04 -07:00
2023-08-02 16:25:29 -07:00
# Configure KDE & GNOME
2023-08-07 13:26:21 -07:00
RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
2023-08-01 21:04:54 -06:00
rpm-ostree override remove \
2023-08-18 14:31:00 -07:00
steamdeck-kde-presets-desktop && \
2023-08-01 21:04:54 -06:00
rpm-ostree install \
steamdeck-kde-presets \
2023-08-02 16:25:29 -07:00
; else \
rpm-ostree install \
gnome-shell-extension-bazzite-menu \
2023-08-15 21:27:18 -07:00
gnome-shell-extension-search-light \
2023-09-15 00:30:41 -07:00
sddm && \
wget https://raw.githubusercontent.com/doitsujin/dxvk/master/dxvk.conf -O /usr/etc/dxvk-example.conf \
2023-08-01 21:04:54 -06:00
; fi
2023-08-22 12:16:00 -07:00
# Install new packages
# Dock updater - done manually due to proprietary parts preventing it from being on Copr
# Neptune firmware - done manually due to "TBD" license on needed audio firmware
2023-06-18 19:22:17 +00:00
RUN rpm-ostree install \
2023-08-01 10:58:10 -07:00
mesa-va-drivers \
2023-08-18 14:22:36 -07:00
vulkan-tools \
2023-02-09 23:13:40 -08:00
jupiter-fan-control \
jupiter-hw-support-btrfs \
2023-08-17 23:46:10 -07:00
powerbuttond \
2023-08-29 07:17:14 -06:00
HandyGCCS \
2023-07-25 12:21:53 -07:00
vpower \
2023-07-24 12:09:59 -07:00
ds-inhibit \
2023-07-30 17:10:29 -07:00
steam_notif_daemon \
2023-06-21 16:24:25 -07:00
ryzenadj \
2023-02-09 23:13:40 -08:00
latencyflex-vulkan-layer \
vkBasalt \
2023-06-19 22:59:57 +00:00
mangohud \
2023-07-28 00:09:06 -07:00
sdgyrodsu \
2023-09-15 10:11:36 -07:00
discover-overlay \
2023-09-11 11:10:32 -07:00
sddm-sugar-steamOS \
2023-08-28 23:57:05 -07:00
ibus-pinyin \
ibus-table-chinese-cangjie \
ibus-table-chinese-quick \
2023-09-10 20:32:51 -07:00
socat \
2023-09-12 21:05:56 -07:00
zstd \
2023-07-28 00:09:06 -07:00
python-vdf \
2023-07-31 11:16:00 -07:00
python-crcmod && \
2023-08-22 12:16:00 -07:00
git clone https://gitlab.com/evlaV/jupiter-dock-updater-bin.git \
--depth 1 \
/tmp/jupiter-dock-updater-bin && \
mv -v /tmp/jupiter-dock-updater-bin/packaged/usr/lib/jupiter-dock-updater /usr/lib/jupiter-dock-updater && \
rm -rf /tmp/jupiter-dock-updater-bin && \
mkdir -p /tmp/linux-firmware-neptune && \
wget https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/jupiter/cs35l41-dsp1-spk-cali.bin -O /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-cali.bin && \
wget https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/jupiter/cs35l41-dsp1-spk-cali.wmfw -O /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-cali.wmfw && \
wget https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/jupiter/cs35l41-dsp1-spk-prot.bin -O /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-prot.bin && \
wget https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/jupiter/cs35l41-dsp1-spk-prot.wmfw -O /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-prot.wmfw && \
xz --check=crc32 /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-{cali.bin,cali.wmfw,prot.bin,prot.wmfw} && \
mv -vf /tmp/linux-firmware-neptune/* /usr/lib/firmware/cirrus/ && \
rm -rf /tmp/linux-firmware-neptune
2023-02-09 11:08:39 -08:00
2023-08-01 10:58:10 -07:00
# Install Steam and Lutris into their own OCI layer
2023-09-12 21:05:56 -07:00
# Add bootstraplinux_ubuntu12_32.tar.xz used by gamescope-session (Thanks ChimeraOS! - https://chimeraos.org/)
2023-08-01 10:58:10 -07:00
RUN rpm-ostree install \
2023-09-18 21:17:00 -07:00
mesa-dri-drivers.i686 \
mesa-vulkan-drivers.i686 \
vulkan-loader.i686 \
alsa-lib.i686 \
fontconfig.i686 \
gtk2.i686 \
libICE.i686 \
libnsl.i686 \
libxcrypt-compat.i686 \
libpng12.i686 \
libXext.i686 \
libXinerama.i686 \
libXtst.i686 \
libXScrnSaver.i686 \
mesa-libGL.i686 \
mesa-libEGL.i686 \
NetworkManager-libnm.i686 \
nss.i686 \
pulseaudio-libs.i686 \
libcurl.i686 \
systemd-libs.i686 \
libva.i686 \
libvdpau.i686 \
libdbusmenu-gtk3.i686 \
libatomic.i686 \
pipewire-alsa.i686 && \
sed -i '0,/enabled=0/s//enabled=1/' /etc/yum.repos.d/rpmfusion-nonfree-steam.repo && \
sed -i '0,/enabled=1/s//enabled=0/' /etc/yum.repos.d/rpmfusion-nonfree.repo && \
sed -i '0,/enabled=1/s//enabled=0/' /etc/yum.repos.d/rpmfusion-nonfree-updates.repo && \
sed -i '0,/enabled=1/s//enabled=0/' /etc/yum.repos.d/fedora-updates.repo && \
rpm-ostree install \
steam && \
sed -i '0,/enabled=1/s//enabled=0/' /etc/yum.repos.d/rpmfusion-nonfree-steam.repo && \
sed -i '0,/enabled=0/s//enabled=1/' /etc/yum.repos.d/rpmfusion-nonfree.repo && \
sed -i '0,/enabled=0/s//enabled=1/' /etc/yum.repos.d/rpmfusion-nonfree-updates.repo && \
sed -i '0,/enabled=0/s//enabled=1/' /etc/yum.repos.d/fedora-updates.repo && \
wget https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/steam-jupiter-stable-1.0.0.76-1-x86_64.pkg.tar.zst -O /tmp/steam-jupiter.pkg.tar.zst && \
mkdir -p /usr/etc/first-boot && \
tar -I zstd -xvf /tmp/steam-jupiter.pkg.tar.zst usr/lib/steam/bootstraplinux_ubuntu12_32.tar.xz -O > /usr/etc/first-boot/bootstraplinux_ubuntu12_32.tar.xz && \
rm -f /tmp/steam-jupiter.pkg.tar.zst && \
rpm-ostree install \
2023-08-09 18:54:01 -07:00
lutris \
2023-09-20 22:46:51 -07:00
wxGTK \
2023-08-21 09:29:00 -07:00
libFAudio \
2023-08-09 18:54:01 -07:00
gamescope \
gamescope-session \
wine-core \
2023-09-01 13:37:54 -07:00
winetricks \
protontricks && \
2023-08-13 23:37:57 -07:00
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
rpm-ostree override remove \
gamemode \
; else \
rpm-ostree override remove \
gamemode \
gnome-shell-extension-gamemode \
2023-08-23 22:04:14 -07:00
gnome-shell-extension-appindicator \
2023-08-13 23:37:57 -07:00
; fi
2023-08-01 10:58:10 -07:00
2023-02-09 11:08:39 -08:00
# Cleanup & Finalize
2023-08-22 14:29:18 -07:00
RUN rm /usr/share/applications/wine*.desktop && \
2023-07-28 12:35:36 -07:00
ln -s /usr/bin/steamos-logger /usr/bin/steamos-info && \
2023-07-28 00:17:26 -07:00
ln -s /usr/bin/steamos-logger /usr/bin/steamos-notice && \
ln -s /usr/bin/steamos-logger /usr/bin/steamos-warning && \
2023-08-27 18:38:52 -07:00
sed -i 's/870/817/' /usr/share/alsa/ucm2/AMD/acp5x/acp5x.conf && \
sed -i 's/252/207/' /usr/share/alsa/ucm2/AMD/acp5x/acp5x.conf && \
sed -i 's/192/207/' /usr/share/alsa/ucm2/AMD/acp5x/acp5x.conf && \
2023-08-11 00:10:49 -07:00
sed -i 's@/usr/bin/steam@/usr/bin/bazzite-steam@g' /usr/share/applications/steam.desktop && \
2023-09-13 09:32:06 -07:00
mkdir -p "/usr/etc/xdg/autostart" && \
cp "/usr/share/applications/steam.desktop" "/usr/etc/xdg/autostart/steam.desktop" && \
sed -i 's@/usr/bin/bazzite-steam %U@/usr/bin/bazzite-steam -silent %U@g' /usr/etc/xdg/autostart/steam.desktop && \
2023-09-17 09:30:24 -06:00
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
2023-09-19 08:47:51 -07:00
sed -i 's/Exec=.*/Exec=systemctl start return-to-gamemode.service/' /etc/skel.d/Desktop/Return.desktop \
2023-09-17 09:30:24 -06:00
; fi && \
2023-09-16 00:45:50 -07:00
cp "/usr/share/applications/discover_overlay.desktop" "/usr/etc/xdg/autostart/discover_overlay.desktop" && \
sed -i 's@Exec=discover-overlay@Exec=/usr/bin/bazzite-discover-overlay@g' /usr/etc/xdg/autostart/discover_overlay.desktop && \
rm /usr/share/applications/discover_overlay.desktop && \
2023-09-13 09:32:06 -07:00
cp "/usr/share/ublue-os/firstboot/yafti.yml" "/usr/etc/yafti.yml" && \
2023-07-28 00:17:26 -07:00
sed -i 's/#HandlePowerKey=poweroff/HandlePowerKey=suspend/g' /etc/systemd/logind.conf && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
2023-07-19 15:23:31 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
2023-07-23 01:59:14 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
2023-02-09 11:08:39 -08:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-latencyflex.repo && \
2023-03-04 16:45:49 -08:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo && \
2023-07-03 23:26:12 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-obs-vkcapture.repo && \
2023-07-05 12:18:47 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
2023-07-25 10:48:05 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
2023-09-15 10:11:36 -07:00
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_mavit_discover.repo && \
2023-09-03 18:57:39 -06:00
if grep -q "silverblue" <<< "${BASE_IMAGE_NAME}"; then \
2023-08-08 12:18:22 -07:00
systemctl mask power-profiles-daemon.service && \
2023-08-06 15:31:03 -06:00
systemctl disable gdm.service && \
2023-09-03 18:57:39 -06:00
systemctl enable sddm.service \
2023-08-01 23:05:06 -07:00
; fi && \
2023-09-12 16:36:22 -06:00
systemctl enable bazzite-autologin.service && \
2023-09-17 15:45:04 -06:00
systemctl enable handycon.service && \
2023-07-07 22:02:46 -07:00
systemctl enable jupiter-fan-control.service && \
2023-09-05 01:24:27 -07:00
systemctl enable btrfs-dedup@run-media-mmcblk0p1.timer && \
2023-07-25 12:21:53 -07:00
systemctl enable vpower.service && \
2023-07-24 12:09:59 -07:00
systemctl enable ds-inhibit.service && \
2023-09-10 21:43:10 -07:00
systemctl --global enable steam-web-debug-portforward.service && \
2023-08-08 11:26:51 -07:00
systemctl --global enable sdgyrodsu.service && \
2023-06-28 13:25:20 -07:00
systemctl disable input-remapper.service && \
2023-09-17 12:43:16 -06:00
systemctl disable ublue-update.timer && \
2023-07-22 06:55:19 -06:00
rm -f /usr/etc/sddm.conf && \
2023-09-13 09:32:06 -07:00
rm -f /usr/etc/default/bazzite && \
echo -e "IMAGE_NAME=${IMAGE_NAME}\nIMAGE_VENDOR=${IMAGE_VENDOR}\nBASE_IMAGE_NAME=${BASE_IMAGE_NAME}\nIMAGE_FLAVOR=${IMAGE_FLAVOR}\nFEDORA_MAJOR_VERSION=${FEDORA_MAJOR_VERSION}" >> /usr/etc/default/bazzite && \
2023-02-09 11:08:39 -08:00
rm -rf \
2023-02-15 07:27:19 -08:00
/tmp/* \
/var/* && \
2023-07-25 15:55:19 -07:00
mkdir -p /var/tmp && \
chmod -R 1777 /var/tmp && \
2023-07-24 18:48:48 -07:00
mkdir -p /var/lib/bluetooth && \
2023-02-09 11:08:39 -08:00
ostree container commit