diff --git a/Containerfile b/Containerfile
index 6cbb9e0142..eaf7cc1072 100644
--- a/Containerfile
+++ b/Containerfile
@@ -299,8 +299,6 @@ RUN --mount=type=cache,dst=/var/cache \
systemctl mask systemd-remount-fs.service && \
mkdir -p /usr/lib/extest/ && \
/ctx/ghcurl "$(/ctx/ghcurl https://api.github.com/repos/ublue-os/extest/releases/latest | jq -r '.assets[] | select(.name| test(".*so$")).browser_download_url')" -Lo /usr/lib/extest/libextest.so && \
- /ctx/ghcurl "https://github.com/ykshek/Sunshine/raw/1347f9ef290c089b815cf186f7d361470bdb9ef7/src_assets/linux/misc/postinst" -Lo /usr/libexec/sunshine-postinst && \
- chmod +x /usr/libexec/sunshine-postinst && \
setfattr -n user.component -v "extest" /usr/lib/extest/libextest.so && \
mkdir -p /etc/xdg/autostart && \
sed -i~ -E 's/=.\$\(command -v (nft|ip6?tables-legacy).*/=/g' /usr/lib/waydroid/data/scripts/waydroid-net.sh && \
diff --git a/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-sunshine.just b/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-sunshine.just
index 7d3adc539c..81236adc1b 100644
--- a/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-sunshine.just
+++ b/system_files/desktop/shared/usr/share/ublue-os/just/82-bazzite-sunshine.just
@@ -1,6 +1,4 @@
-# vim: set ft=make :
-
-# Setup and configure Sunshine Game Streaming host. Options: status | enable | enable-beta | update | disable | uninstall | portal | virtual-monitor
+# Setup and configure Sunshine Game Streaming host. Options: status | enable | enable-deck | update | disable | uninstall | portal | virtual-monitor
[group("gaming")]
setup-sunshine ACTION="":
#!/usr/bin/bash
@@ -12,46 +10,50 @@ setup-sunshine ACTION="":
read -r reply
[[ -z "$reply" || "${reply,,}" =~ ^y ]]
}
+
press_any_key() {
echo "Press Enter to continue..."
read -r
}
+
sunshine_installed() {
flatpak info dev.lizardbyte.app.Sunshine >/dev/null 2>&1
}
+
+ deck_sunshine_installed() {
+ rpm -q sunshine >/dev/null 2>&1
+ }
+ # deck_sunshine refers to the layered installs of sunshine, as it is primarily for deck users who do not have access to xdg portal capture.
+
brew_sunshine_installed() {
[[ -e /home/linuxbrew/.linuxbrew/opt/sunshine ||
-d /home/linuxbrew/.linuxbrew/Cellar/sunshine ||
-e /home/linuxbrew/.linuxbrew/opt/sunshine-beta ||
-d /home/linuxbrew/.linuxbrew/Cellar/sunshine-beta ]]
}
+
get_status_token() {
- local flatpak_service_state beta_service_state service_state
- flatpak_service_state="$(systemctl is-enabled --user app-dev.lizardbyte.app.Sunshine 2>/dev/null || true)"
- if [[ "$flatpak_service_state" == "enabled" ]]; then
- echo "enable"
+ local service_state
+ service_state="$(systemctl is-enabled --user app-dev.lizardbyte.app.Sunshine 2>/dev/null || true)"
+
+ if sunshine_installed; then
+ local status="enable"
+ elif deck_sunshine_installed; then
+ local status="enable-deck"
elif brew_sunshine_installed; then
- echo "enable-brew"
- elif sunshine_installed; then
- echo "disable"
+ local status="enable-brew"
else
echo "uninstall"
+ return
fi
- }
- override_service() {
- servicefile="[Unit]
- After=graphical-session.target xdg-desktop-autostart.target xdg-desktop-portal.service
- [Service]
- ExecStartPre=/bin/sleep 5
- ExecStopPost=/usr/libexec/sunshine-stop-vmon
- Restart=on-failure
- RestartSec=5s
- "
- if [[ $(systemctl --user cat homebrew.sunshine-beta | grep sleep 2>/dev/null || true) == "" || $(systemctl --user cat homebrew.sunshine-beta | grep sleep 2>/dev/null || true) == "" ]]; then
- systemctl --user edit --stdin homebrew.sunshine-beta <<< "$servicefile"
+ if [[ "$service_state" == "enabled" ]]; then
+ echo "$status"
+ else
+ echo "disable"
fi
}
+
virtual-monitor() {
local FLATPAK_VMON_APP='{
"auto-detach": true,
@@ -112,6 +114,7 @@ setup-sunshine ACTION="":
echo "Virtual monitors are only supported in KDE's KWin compositor!"
echo "See ${bold}https://docs.bazzite.gg/Advanced/custom_resolution/${normal} for more information."
press_any_key
+ return 0
fi
local MON_OPTION=$(Choose "Add Virtual Monitor" "Fix Error 503" "Go Back" "Exit")
case "$MON_OPTION" in
@@ -139,17 +142,34 @@ setup-sunshine ACTION="":
;;
"Fix Error 503")
echo "KWIN_WAYLAND_NO_PERMISSION_CHECKS=1" > $HOME/.config/environment.d/98-kwin-no-permission-checks.conf
- echo -n "Wrote in $HOME/.config/environment.d/98-kwin-no-permission-checks: "
+ echo -n "Wrote in $HOME/.config/environment.d/98-kwin-no-permission-checks.conf: "
cat $HOME/.config/environment.d/98-kwin-no-permission-checks.conf
;;
"Go Back")
- ujust setup-sunshine
+ return 0
;;
*)
+ exit 0
;;
esac
}
+ yeet_brew() {
+ echo "${b}You may ignore the following errors as they are just cosmetic.${n}"
+ if [ -x /home/linuxbrew/.linuxbrew/bin/brew ]; then
+ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
+ fi
+ brew trust LizardByte/homebrew
+ brew tap LizardByte/homebrew
+ brew services stop sunshine 2>/dev/null || true
+ brew unpin sunshine 2>/dev/null || true
+ brew uninstall sunshine 2>/dev/null || true
+ brew services stop sunshine-beta 2>/dev/null || true
+ brew unpin sunshine-beta 2>/dev/null || true
+ brew uninstall sunshine-beta 2>/dev/null || true
+ brew untap LizardByte/homebrew 2>/dev/null || true
+ }
+
if [ "$OPTION" == "help" ]; then
echo "Usage: ujust setup-sunshine