実行するスクリプトを作成したいと思います。ウェードロボットAndroidコンテナ(LineageOS)。
現時点では、以下を開始できます。リネージュOS仮想電話には問題ありません。
sudo systemctl start waydroid-container
weston
その後、内部weston-terminal
:
waydroid session start
waydroid show-full-ui
WaydroidはWaylandセッションマネージャでのみ機能することに注意してください。ウェスタン作曲家は簡単な方法 通常のX Windowsマネージャを使用して実行します。
Bashランチャースクリプトに最後の2行を挿入する方法がわかりません。輸出しようとしています
XDG_SESSION_TYPE=wayland
しかし、Waydroidセッションが始まったときに、モバイルGUIをWestonコンポジターにプッシュする方法を知りませんでした。
もちろん、次のX11ソリューションもあります。インストールボックス しかし、Waydroidが良いです。
答え1
Waydroid変数を送信所定の位置に(つまり、ウェスタン内で)WAYLAND_DISPLAY
いいえ。XDG_SESSION_TYPE
さらに、Xウェイランドサーバーをアクティブにする必要があります。
したがって、Waydroidコンテナが開いていることを確認してください。
systemctl start waydroid-container
これで、次のコマンドを使用して端末/スクリプトで携帯電話を起動できます。
weston --xwayland &
export WAYLAND_DISPLAY=wayland-1
sleep 2
waydroid show-full-ui &
Waydroidを殺すのではなく、より良い方法は電話をオフにすることです。
waydroid session stop
Ctrl+Alt+Backspace を押して Weston を終了します。
HiDPIディスプレイの場合、--scale 2
Westonにパラメータを追加できます。
答え2
私が見つけたスクリプトは次のとおりです。Reddit。お役に立てば幸いです。また、それがあなたにうまくいったら教えてください。私も同様の立場にいます。
#! /usr/bin/bash
if [ "$(systemctl is-active waydroid-container.service)" == 'active' ];then
killall -9 weston
sudo systemctl stop waydroid-container.service
exit
fi
killall -9 weston
sudo systemctl restart waydroid-container.service
if [ -z "$(pgrep weston)" ]; then
weston --xwayland &> /dev/null &
fi
sleep 2 &&
export XDG_SESSION_TYPE='wayland'
export DISPLAY=':1'
konsole --new-tab --hide-tabbar --hide-menubar -e '/usr/bin/waydroid show-full-ui' &
while [ -n "$(pgrep weston)" ];do
sleep 1
done
sudo systemctl stop waydroid-container.service
答え3
このスクリプトは私にとってとてもうまくいきます。 westonとwaydroidを起動してwestonウィンドウを閉じると、自動的にwaydriodセッションを停止します! UbuntuとArchLinuxでテストされました。
#!/bin/bash
export WAYLAND_DISPLAY=mysocket
weston --socket=$WAYLAND_DISPLAY --backend=x11-backend.so --width=1920 --height=1080 &
cmd1_pid=$!
waydroid show-full-ui &
wait $cmd1_pid
waydroid session stop
echo 'waydroid session stopped successfully!'