bazzite/system_files/desktop/shared/usr/bin/waydroid-launcher

42 lines
1.1 KiB
Plaintext
Raw Normal View History

#!/usr/bin/bash
source /etc/default/waydroid-launcher
# Kill any previous remnants
if [ "$(systemctl is-active waydroid-container.service)" == 'active' ]; then
pkexec /usr/libexec/waydroid-container-stop
fi
# Check if Waydroid is initialized, initialize if not
if grep -qz 'not initialized' <<< $(/usr/bin/waydroid status); then
/usr/bin/ujust init-waydroid
fi
# Launch Weston
killall -9 weston
pkexec /usr/libexec/waydroid-container-start
if [ -z "$(pgrep weston)" ]; then
/usr/bin/weston --socket=weston-waydroid --width=${WAYDROID_WIDTH:-1280} --height=${WAYDROID_HEIGHT:-800} &> /dev/null &
fi
# Launch Waydroid
sleep 2 &&
export XDG_SESSION_TYPE='wayland'
export WAYLAND_DISPLAY='weston-waydroid'
LAUNCH_PARAM=$@
/usr/bin/waydroid ${LAUNCH_PARAM:-first-launch} &
# Fix controllers, we know Waydroid has started because surfaceflinger is running
while [ "" == "$(pgrep surfaceflinger)" ]; do
sleep 1
done
pkexec /usr/libexec/waydroid-fix-controllers
# Waydroid is now live!
# Wait for exit and then clean up
while [ -n "$(pgrep weston)" ]; do
sleep 1
done
pkexec /usr/libexec/waydroid-container-stop