# cosmic-launcher — el lanzador de aplicaciones (Super+espacio). Cliente de iced/libcosmic, mismo sustrato exacto que cosmic-osd.
#
# A diferencia de notifications y osd, este SÍ instala metadatos: su `.desktop`, su `.metainfo.xml`
# y su icono. No es adorno — el `.desktop` es cómo el resto del escritorio sabe que existe y con qué
# AppID hablarle, y el AppID (`com.system76.CosmicLauncher`) es además la clave bajo la que
# cosmic-config guarda su estado. Un componente sin `.desktop` funciona hasta que otro lo busca.
#
# El icono va a `hicolor/scalable/apps`, NO al tema Cosmic: es el icono DE LA APP, y hicolor es el
# tema del que heredan todos (por eso `hicolor-icon-theme` tiene que estar en la imagen).
#
# `libxkbcommon` + `pkgconf` por la regla del gotcha 7 del runbook: van en TODA la cola.
name    = "cosmic-launcher"
version = "1.5.0"

[source]
tarball = "https://github.com/pop-os/cosmic-launcher/archive/epoch-1.5.0/cosmic-launcher-epoch-1.5.0.tar.gz"
sha256  = "908cb0ef7e609ce0dec59f6d1cb4c249551883da42c957cd9dcb2e45892c7ec7"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
# ── DINÁMICO, Y NO ES UNA PREFERENCIA ──────────────────────────────────────────────────────────
# `wayland-client` entra con la feature `dlopen`: no ENLAZA libwayland-client, la carga en runtime.
# Un binario musl ESTÁTICO no tiene dlopen funcional, así que el cliente arranca y muere con
# «The wayland library could not be loaded» — con el .so presente en el rootfs, que es lo que hace
# el diagnóstico confuso: no falta la librería, falta poder abrirla.
link     = "dynamic"
flags    = ["--bin", "cosmic-launcher"]

[build.phases]
install = '''
mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/metainfo \
         /out/usr/share/icons/hicolor/scalable/apps
cp target/release/cosmic-launcher /out/usr/bin/cosmic-launcher
chmod 755 /out/usr/bin/cosmic-launcher
cp data/com.system76.CosmicLauncher.desktop       /out/usr/share/applications/
cp data/com.system76.CosmicLauncher.metainfo.xml  /out/usr/share/metainfo/
cp data/icons/com.system76.CosmicLauncher.svg     /out/usr/share/icons/hicolor/scalable/apps/
'''

[deps]
# libudev-zero: lo pide `libudev-sys`, que llega por la cadena de libcosmic (enumeración de
# monitores y de dispositivos de entrada). Es el tercer miembro fijo del juego de deps de todo
# cliente de la suite, junto con libxkbcommon y pkgconf.
# La línea de enlace del primer intento pedía, en este orden: `-ludev -linput -lxkbcommon`. Los
# tres llegan por la cadena de libcosmic —enumeración de monitores y de dispositivos de entrada—,
# no por nada que el cliente haga a la vista. Es el juego FIJO de todo cliente de la suite; se
# descubrió uno por build hasta leerlo de una sola vez en el comando del linker.
build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput"]
