mirror of
https://github.com/nestriness/nestri.git
synced 2026-03-16 19:33:07 +02:00
45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
#!/command/with-contenv bash
|
|
set -euo pipefail
|
|
|
|
if [[ -f /etc/nestri/common.sh ]]; then
|
|
source /etc/nestri/common.sh
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
# check if NESTRI_LAUNCH_COMPOSITOR is unset or empty
|
|
if [[ -z "${NESTRI_LAUNCH_COMPOSITOR:-}" ]]; then
|
|
# exit with 0 so s6 doesn't think the service failed and try to restart it repeatedly
|
|
exit 0
|
|
fi
|
|
|
|
export LD_PRELOAD="/usr/lib64/libvimputti_shim.so:/usr/lib32/libvimputti_shim.so"
|
|
|
|
# Set socket based on compositor type
|
|
COMPOSITOR_SOCKET="${NESTRI_XDG_RUNTIME_DIR}/wayland-0"
|
|
|
|
# Check if this is gamescope
|
|
if [[ "${NESTRI_LAUNCH_COMPOSITOR}" == *"gamescope"* ]]; then
|
|
COMPOSITOR_SOCKET="${NESTRI_XDG_RUNTIME_DIR}/gamescope-0"
|
|
fi
|
|
|
|
# remove possibly stale socket
|
|
rm -f "${COMPOSITOR_SOCKET}"
|
|
|
|
# expand internal variables
|
|
FINAL_LAUNCH_COMPOSITOR=$(echo "${NESTRI_LAUNCH_COMPOSITOR}" | envsubst)
|
|
|
|
WAYLAND_DISPLAY=wayland-1 s6-setuidgid ${NESTRI_USER} $FINAL_LAUNCH_COMPOSITOR &
|
|
PROCESS_PID=$!
|
|
|
|
# wait for socket
|
|
while ! test -S "${COMPOSITOR_SOCKET}"; do
|
|
sleep 1
|
|
done
|
|
|
|
# notify
|
|
printf 'ready\n' >&3
|
|
|
|
# wait till process exits
|
|
wait "${PROCESS_PID}"
|