#!/bin/sh
# mirada-session-pata — sesión «mirada · pata» para gestores de login
# EXTERNOS (sddm, greetd, ly…): arranca el compositor mirada y deja a pata
# como marco del escritorio. Instálalo en /usr/local/bin junto a
# `mirada-compositor` y `pata-llimphi`.
#
# (Cuando el DM es el propio mirada —`mirada-dm`—, no hace falta este
# script: elegís «mirada · pata» en el greeter y el marco arranca como
# cliente sin reiniciar el servidor.)
set -eu

# Sin XDG_RUNTIME_DIR (algunos DM no lo siembran) el socket de control de
# mirada (`mirada-ctl.sock`) cae a otra ruta que la que ve `mirada-ctl`/pata —
# y el switcher de workspaces queda sin hablar con el Cerebro. Lo fijamos como
# en `mirada-session`.
[ -z "${XDG_RUNTIME_DIR:-}" ] && export XDG_RUNTIME_DIR="/run/user/$(id -u)"
export XDG_SESSION_TYPE=wayland
export XDG_CURRENT_DESKTOP=mirada
export XDG_SESSION_DESKTOP=mirada
export MOZ_ENABLE_WAYLAND=1
export QT_QPA_PLATFORM="wayland;xcb"
export SDL_VIDEODRIVER=wayland

# XDG_DATA_DIRS vacío (DM/TTY sin chain de perfiles) se propaga a los hijos:
# dolphin/KIO no hallan los .desktop de /usr/share/applications y «abrir con»
# sale vacío. Default del freedesktop base-dir spec.
[ -z "${XDG_DATA_DIRS:-}" ] && export XDG_DATA_DIRS="/usr/local/share:/usr/share"

# Asegura pata en el autoarranque del usuario (idempotente). pata ancla por
# wlr-layer-shell (su backend nativo), que mirada ahora soporta.
mkdir -p "${HOME}/.config/mirada"
AUTO="${HOME}/.config/mirada/autostart"
LINE='pata-llimphi'
grep -qxF "$LINE" "$AUTO" 2>/dev/null || echo "$LINE" >> "$AUTO"

# Volcá el perfil ACTIVO a la config viva (config.ron/keymap.ron/launcher.toml)
# para que el escritorio arranque coherente con él — y no con un launcher.toml
# viejo de otra vista. Best-effort: si wawa-panel no está, seguimos igual.
command -v wawa-panel >/dev/null 2>&1 && wawa-panel --apply-active || true

# Bajo supervisión (reinicio + backoff con restauración de session.ron). Ver
# mirada-supervise. `MIRADA_SUPERVISE=0` desactiva. Fallback al exec pelado.
if command -v mirada-supervise >/dev/null 2>&1; then
    exec mirada-supervise --drm
else
    exec mirada-compositor --drm
fi
