#!/usr/bin/env bash
# Resident launcher for the astal-menu GTK4 popup control centre.
#
# gtk4-layer-shell must be loaded before libwayland-client; when the shell is used
# through PyGObject that ordering isn't guaranteed, so we LD_PRELOAD it (the library
# itself documents this workaround). main.py drops LD_PRELOAD from its environment
# right after startup so the apps it launches don't inherit it (Firefox, for one,
# crashes with libgtk4-layer-shell preloaded). Starts the daemon hidden — it shows
# only when menu-toggle.sh forwards a --toggle/--show/--appdrawer verb.

APP="${HOME}/.config/astal-menu/main.py"
SO="$(ldconfig -p 2>/dev/null | awk '/libgtk4-layer-shell\.so/ {print $NF; exit}')"
if [[ -n "${SO:-}" ]]; then
    export LD_PRELOAD="${SO}${LD_PRELOAD:+:${LD_PRELOAD}}"
fi

exec python3 "$APP" "$@"
