diff --git a/Containerfile b/Containerfile index b08bf046..0ef5fd6c 100644 --- a/Containerfile +++ b/Containerfile @@ -317,6 +317,7 @@ RUN rpm-ostree install \ ibus-table-chinese-cangjie \ ibus-table-chinese-quick \ socat \ + zstd \ python-vdf \ python-crcmod && \ git clone https://gitlab.com/evlaV/jupiter-dock-updater-bin.git \ @@ -334,6 +335,7 @@ RUN rpm-ostree install \ rm -rf /tmp/linux-firmware-neptune # Install Steam and Lutris into their own OCI layer +# Add bootstraplinux_ubuntu12_32.tar.xz used by gamescope-session (Thanks ChimeraOS! - https://chimeraos.org/) RUN rpm-ostree install \ steam \ lutris \ @@ -343,6 +345,10 @@ RUN rpm-ostree install \ wine-core \ winetricks \ protontricks && \ + 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 /etc/first-boot && \ + tar -I zstd -xvf /tmp/steam-jupiter.pkg.tar.zst usr/lib/steam/bootstraplinux_ubuntu12_32.tar.xz -O > /etc/first-boot/bootstraplinux_ubuntu12_32.tar.xz && \ + rm -f /tmp/steam-jupiter.pkg.tar.zst && \ if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \ rpm-ostree override remove \ gamemode \ @@ -375,14 +381,12 @@ RUN rm /usr/share/applications/wine*.desktop && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-obs-vkcapture.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo && \ - if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \ - systemctl enable plasma-autologin.service \ - ; else \ + if grep -q "silverblue" <<< "${BASE_IMAGE_NAME}"; then \ systemctl mask power-profiles-daemon.service && \ systemctl disable gdm.service && \ - systemctl enable sddm.service && \ - systemctl enable gnome-autologin.service \ + systemctl enable sddm.service \ ; fi && \ + systemctl enable desktop-autologin.service && \ systemctl enable jupiter-fan-control.service && \ systemctl enable btrfs-dedup@run-media-mmcblk0p1.timer && \ systemctl enable vpower.service && \ diff --git a/boot_menu.yml b/boot_menu.yml index 623270f6..8d3cfdb4 100644 --- a/boot_menu.yml +++ b/boot_menu.yml @@ -24,6 +24,11 @@ ublue_variants: flavors: - label: bazzite-deck info: Bazzite (Steam Deck Edition) + - label: ublue-os/bazzite-deck + ks: /kickstart/ublue-os.ks + flavors: + - label: bazzite-deck + info: Bazzite (Steam Deck Edition for HTPCs) - label: ublue-os/bazzite-gnome ks: /kickstart/ublue-os.ks flavors: @@ -49,3 +54,8 @@ ublue_variants: flavors: - label: bazzite-deck-gnome info: Bazzite GNOME (Steam Deck Edition) + - label: ublue-os/bazzite-deck-gnome + ks: /kickstart/ublue-os.ks + flavors: + - label: bazzite-deck-gnome + info: Bazzite GNOME (Steam Deck Edition for HTPCs) diff --git a/system_files/deck/kinoite/usr/bin/plasma-autologin b/system_files/deck/kinoite/usr/bin/plasma-autologin deleted file mode 100755 index 1d105104..00000000 --- a/system_files/deck/kinoite/usr/bin/plasma-autologin +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -source /etc/default/desktop-wayland - -USER=$(id -nu 1000) - -# SteamOS SDDM config -SDDM_CONF='/etc/sddm.conf.d/steamos.conf' -if [ ! -f ${SDDM_CONF} ]; then - # Fallback to sddm.conf - SDDM_CONF='/etc/sddm.conf' - KDE_SETTINGS='/etc/sddm.conf.d/kde_settings.conf' - if [ -f ${KDE_SETTINGS} ]; then - rm -f ${KDE_SETTINGS} - fi -fi - -# Configure autologin -if ${DESKTOP_WAYLAND}; then - sed -i 's/.*Session=.*/Session=plasma.desktop/g' ${SDDM_CONF} -else - sed -i 's/.*Session=.*/Session=plasmax11.desktop/g' ${SDDM_CONF} -fi -sed -i 's/.*User=.*/User='${USER}'/g' ${SDDM_CONF} diff --git a/system_files/deck/kinoite/usr/lib/systemd/system/plasma-autologin.service b/system_files/deck/kinoite/usr/lib/systemd/system/plasma-autologin.service deleted file mode 100644 index fc1197a8..00000000 --- a/system_files/deck/kinoite/usr/lib/systemd/system/plasma-autologin.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Enables autologin to Plasma (X11) -Before=display-manager.service - -[Service] -Type=oneshot -ExecStart=/usr/bin/plasma-autologin - -[Install] -WantedBy=multi-user.target diff --git a/system_files/deck/shared/usr/bin/desktop-autologin b/system_files/deck/shared/usr/bin/desktop-autologin new file mode 100755 index 00000000..950f82f2 --- /dev/null +++ b/system_files/deck/shared/usr/bin/desktop-autologin @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +source /etc/default/bazzite +source /etc/default/desktop-wayland + +USER=$(id -nu 1000) + +# SteamOS SDDM config +SDDM_CONF='/etc/sddm.conf.d/steamos.conf' + +# Configure SDDM autologin +if [[ ${BASE_IMAGE_NAME} =~ "kinoite" ]]; then + if ${DESKTOP_WAYLAND}; then + sed -i 's/.*Session=.*/Session=plasma.desktop/g' ${SDDM_CONF} + else + sed -i 's/.*Session=.*/Session=plasmax11.desktop/g' ${SDDM_CONF} + fi +elif [[ ${BASE_IMAGE_NAME} =~ "silverblue" ]]; then + if ${DESKTOP_WAYLAND}; then + sed -i 's/.*Session=.*/Session=gnome-wayland.desktop/g' ${SDDM_CONF} + else + sed -i 's/.*Session=.*/Session=gnome-xorg.desktop/g' ${SDDM_CONF} + fi +fi +sed -i 's/.*User=.*/User='${USER}'/g' ${SDDM_CONF} diff --git a/system_files/deck/silverblue/usr/lib/systemd/system/gnome-autologin.service b/system_files/deck/shared/usr/lib/systemd/system/desktop-autologin.service similarity index 56% rename from system_files/deck/silverblue/usr/lib/systemd/system/gnome-autologin.service rename to system_files/deck/shared/usr/lib/systemd/system/desktop-autologin.service index c557e2fa..09d1c363 100644 --- a/system_files/deck/silverblue/usr/lib/systemd/system/gnome-autologin.service +++ b/system_files/deck/shared/usr/lib/systemd/system/desktop-autologin.service @@ -1,10 +1,10 @@ [Unit] -Description=Enables autologin to GNOME +Description=Enables autologin to desktop Before=display-manager.service [Service] Type=oneshot -ExecStart=/usr/bin/gnome-autologin +ExecStart=/usr/bin/desktop-autologin [Install] WantedBy=multi-user.target diff --git a/system_files/deck/shared/usr/share/ublue-os/just/custom.just b/system_files/deck/shared/usr/share/ublue-os/just/custom.just index b63e5a2b..0775dfdb 100644 --- a/system_files/deck/shared/usr/share/ublue-os/just/custom.just +++ b/system_files/deck/shared/usr/share/ublue-os/just/custom.just @@ -34,25 +34,13 @@ setup-firefox-vaapi-nvidia: # Enable autologin to gamescope session enable-gamescope-autologin: - #!/usr/bin/env bash - source /etc/default/bazzite - if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then - systemctl disable --now gnome-autologin - elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then - systemctl disable --now plasma-autologin - fi + systemctl disable --now desktop-autologin systemctl enable --now gamescope-autologin # Enable autologin to desktop enable-desktop-autologin: - #!/usr/bin/env bash - source /etc/default/bazzite systemctl disable --now gamescope-autologin - if [[ ${BASE_IMAGE_NAME} == 'silverblue' ]]; then - systemctl enable --now gnome-autologin - elif [[ ${BASE_IMAGE_NAME} == 'kinoite' ]]; then - systemctl enable --now plasma-autologin - fi + systemctl enable --now desktop-autologin # Launch Waydroid configuration helper configure-waydroid: @@ -187,6 +175,7 @@ fix-tf2-tcmalloc: podman run \ -v $HOME/.steam/steam/steamapps/common/Team\ Fortress\ 2/bin:/hl2_linux:Z \ ghcr.io/maisatanel/tcmalloc-hl2-fixer:main + echo "TF2 patch complete." # Patch GMod's 64-bit beta to work properly on Linux patch-gmod: diff --git a/system_files/deck/silverblue/usr/bin/gnome-autologin b/system_files/deck/silverblue/usr/bin/gnome-autologin deleted file mode 100755 index dff16b35..00000000 --- a/system_files/deck/silverblue/usr/bin/gnome-autologin +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -source /etc/default/desktop-wayland - -USER=$(id -nu 1000) - -# SteamOS SDDM config -SDDM_CONF='/etc/sddm.conf.d/steamos.conf' -if [ ! -f ${SDDM_CONF} ]; then - # Fallback to sddm.conf - SDDM_CONF = '/etc/sddm.conf' -fi - -# Configure autologin -if ${DESKTOP_WAYLAND}; then - sed -i 's/.*Session=.*/Session=gnome-wayland.desktop/g' ${SDDM_CONF} -else - sed -i 's/.*Session=.*/Session=gnome-xorg.desktop/g' ${SDDM_CONF} -fi -sed -i 's/.*User=.*/User='${USER}'/g' ${SDDM_CONF} diff --git a/system_files/desktop/shared/usr/bin/bazzite-hardware-setup b/system_files/desktop/shared/usr/bin/bazzite-hardware-setup index 1887535c..8de44520 100755 --- a/system_files/desktop/shared/usr/bin/bazzite-hardware-setup +++ b/system_files/desktop/shared/usr/bin/bazzite-hardware-setup @@ -2,7 +2,7 @@ source /etc/default/bazzite # SCRIPT VERSION -HWS_VER=1 +HWS_VER=2 HWS_VER_FILE="/etc/bazzite/hws_version" HWS_VER_RAN=$(cat $HWS_VERSION_FILE) @@ -84,6 +84,13 @@ elif [[ $IMAGE_NAME =~ "deck" ]]; then systemctl --global disable --now sdgyrodsu.service fi +# REVERT ME, disable desktop-autologin if gamescope-autologin is enabled +if [[ $IMAGE_NAME =~ "deck" ]]; then + if systemctl is-enabled --quiet gamescope-autologin; then + systemctl disable --now desktop-autologin + fi +fi + if grep -qz "Kernel driver in use: radeon" <<< $GPU_ID; then echo "Legacy AMD hardware detected, enabling CIK and SI support in AMDGPU" if [[ ! $KARGS =~ "radeon.si_support" ]]; then diff --git a/system_files/desktop/shared/usr/share/ublue-os/just/custom.just b/system_files/desktop/shared/usr/share/ublue-os/just/custom.just index af8b5d8b..d1197960 100644 --- a/system_files/desktop/shared/usr/share/ublue-os/just/custom.just +++ b/system_files/desktop/shared/usr/share/ublue-os/just/custom.just @@ -149,6 +149,7 @@ fix-tf2-tcmalloc: podman run \ -v $HOME/.steam/steam/steamapps/common/Team\ Fortress\ 2/bin:/hl2_linux:Z \ ghcr.io/maisatanel/tcmalloc-hl2-fixer:main + echo "TF2 patch complete." # Patch GMod's 64-bit beta to work properly on Linux patch-gmod: