#!/usr/bin/env sh set -eu ELECTRON="$1" APP_ENTRY="src/main.js" SIZE="1280x800" cleanup() { kill "$ELECTRON_PID" "$WESTON_PID" 2>/dev/null || true } trap cleanup EXIT INT TERM weston \ --backend=x11-backend.so \ --width="${SIZE%x*}" \ --height="${SIZE#*x}" \ --xwayland & WESTON_PID=$! # Wait for Weston to create its socket for i in $(seq 1 50); do SOCKET=$(ls "$XDG_RUNTIME_DIR"/wayland-* 2>/dev/null | head -n1 || true) [ -n "$SOCKET" ] && break sleep 0.1 done [ -n "${SOCKET:-}" ] || exit 1 export WAYLAND_DISPLAY="$(basename "$SOCKET")" export ELECTRON_OZONE_PLATFORM_HINT=wayland export NIXOS_OZONE_WL=1 "$ELECTRON" "$APP_ENTRY" & ELECTRON_PID=$! wait