launch waydroid app from game mode

bazzite-deck-gnome:stable | lenovo legion go Waydroid launches fine from game mode, but I can't figure out how to launch a particular android app from game mode. I'm running android 11, if that matters.
Solution:
You can't
Jump to solution
12 Replies
Solution
Kyle Gospo
Kyle Gospo2y ago
You can't
LeftyPencil
LeftyPencil2y ago
Got it in desktop mode... Testing gaming
LeftyPencil
LeftyPencil2y ago
No dice on gaming, the below only works on desktop mode :/ 1. Install app 2. Right click application, click Edit Application. 3. Go to Application tab, and copy the arguments. Close window. 4. Right click app again, click Add to Steam. Don't launch yet. 5. Edit Properties. Paste the arguments. 6. Play app in desktop mode steamOS version works in gaming mode https://youtu.be/pkRtPHfa_EM?t=198 Wayland docs https://docs.waydro.id/usage/install-and-run-android-applications ''waydroid app launch com.foo.bar''
10 Minute Steam Deck Gamer
YouTube
#android on Steam Deck - Run APK in Game Mode | SteamOS 3.5 | Steam...
#steamdeck #steamos #android #waydroid Steam Deck Android / SteamOS Waydroid Install Guide - https://youtu.be/06T-h-jPVx8 Easily launch Android APKs directly in SteamOS Game Mode - https://youtu.be/pkRtPHfa_EM Updated script to easily launch Android APKs via Waydroid directly in SteamOS Game Mode. Steam Deck OLED / Steam Deck LCD SteamOS 3....
Kyle Gospo
Kyle Gospo2y ago
show me your shortcut in steam
LeftyPencil
LeftyPencil2y ago
Idk how to push the arguments to the launcher verison, so it fails to open in GM.. One sec
Kyle Gospo
Kyle Gospo2y ago
need to see the path you should not need to add any arugments and the video youir posted is completely non-applicable here
LeftyPencil
LeftyPencil2y ago
No description
Kyle Gospo
Kyle Gospo2y ago
you didn't follow our install guide we use /usr/bin/waydroid-launcher in gamemode and again, we do not support direct launching of APKs only the entire waydroid stack
LeftyPencil
LeftyPencil2y ago
yeah
Dax
Dax13mo ago
Is this at all planned in the future?
Kyle Gospo
Kyle Gospo13mo ago
no, you can launch waydroid as a whole from gamemode and then launch the app
m59
m593mo ago
Is it just that there is no solution out of the box, or is it that it can't be done without major effort? I tried copying the waydroid-launcher script and modifying it to directly launch minecraft, but no luck yet. I'm not sure if I should keep trying to get it right or if there's a technical reason it won't work out. This worked out for me. I preferred not to launch the full ui at all and just go black screen if I exit the game (I exit via the steam overlay).
#!/usr/bin/bash

set -euo pipefail

# Import defaults if WIDTH/HEIGHT is not defined by an external script
if [ -z "${WAYDROID_WIDTH:-}" ] || [ -z "${WAYDROID_HEIGHT:-}" ]; then
source /etc/default/waydroid-launcher
fi

# 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, send user to the docs
if grep -qz 'not initialized' <<< $(/usr/bin/waydroid status); then
xdg-open "https://docs.bazzite.gg/Installing_and_Managing_Software/Waydroid_Setup_Guide/"
exit 1
fi

pkexec /usr/libexec/waydroid-container-start

export RESOLUTION="${WAYDROID_WIDTH:-1280}x${WAYDROID_HEIGHT:-800}"

# Check if non Steam shortcut has the game / app as the launch option
if (( $# == 0 )); then
cage -- bash -c 'wlr-randr --output X11-1 --custom-mode $RESOLUTION ; \
/usr/bin/waydroid show-full-ui $@ &' &
else
cage -- env PACKAGE="$1" bash -c 'wlr-randr --output X11-1 --custom-mode $RESOLUTION ; \
/usr/bin/waydroid session start $@ & \
while [ "1" != "$(waydroid prop get sys.boot_completed)" ]; do
sleep 1
done
/usr/bin/waydroid app launch $PACKAGE &' &
fi

# Fix controllers, we know Waydroid has started because surfaceflinger is running
while [ "" == "$(pgrep surfaceflinger)" ]; do
sleep 1
done
sleep 10
pkexec /usr/libexec/waydroid-fix-controllers

# Waydroid is now live!
# Wait for exit and then clean up
while [ -n "$(pgrep cage)" ]; do
sleep 1
done

pkexec /usr/libexec/waydroid-container-stop
#!/usr/bin/bash

set -euo pipefail

# Import defaults if WIDTH/HEIGHT is not defined by an external script
if [ -z "${WAYDROID_WIDTH:-}" ] || [ -z "${WAYDROID_HEIGHT:-}" ]; then
source /etc/default/waydroid-launcher
fi

# 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, send user to the docs
if grep -qz 'not initialized' <<< $(/usr/bin/waydroid status); then
xdg-open "https://docs.bazzite.gg/Installing_and_Managing_Software/Waydroid_Setup_Guide/"
exit 1
fi

pkexec /usr/libexec/waydroid-container-start

export RESOLUTION="${WAYDROID_WIDTH:-1280}x${WAYDROID_HEIGHT:-800}"

# Check if non Steam shortcut has the game / app as the launch option
if (( $# == 0 )); then
cage -- bash -c 'wlr-randr --output X11-1 --custom-mode $RESOLUTION ; \
/usr/bin/waydroid show-full-ui $@ &' &
else
cage -- env PACKAGE="$1" bash -c 'wlr-randr --output X11-1 --custom-mode $RESOLUTION ; \
/usr/bin/waydroid session start $@ & \
while [ "1" != "$(waydroid prop get sys.boot_completed)" ]; do
sleep 1
done
/usr/bin/waydroid app launch $PACKAGE &' &
fi

# Fix controllers, we know Waydroid has started because surfaceflinger is running
while [ "" == "$(pgrep surfaceflinger)" ]; do
sleep 1
done
sleep 10
pkexec /usr/libexec/waydroid-fix-controllers

# Waydroid is now live!
# Wait for exit and then clean up
while [ -n "$(pgrep cage)" ]; do
sleep 1
done

pkexec /usr/libexec/waydroid-container-stop

Did you find this page helpful?