# 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" license = "GPL-3.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"]