cosmic: las cinco recetas que faltaban de la sesión (panel, launcher, app-library, workspaces, notifications)
Escritas ya con el patrón medido —libxkbcommon + pkgconf en todas— en vez de descubrirlo cinco veces. Cada install sale del justfile/Makefile de upstream leído, no del parecido con el anterior; ahí estaban las tres diferencias que importan: - cosmic-panel: default_schema NO es un fichero sino un ÁRBOL de tres componentes de cosmic-config con un fichero POR CLAVE. Aplanarlo deja un panel que arranca con todo por defecto compilado: sin plugins, sin dock, sin tamaño. - cosmic-workspaces-epoch: los tres nombres NO coinciden — repo con sufijo -epoch, binario y AppID sin él, y cosmic-session lo busca por el del binario. - launcher y app-library instalan .desktop + metainfo + icono; notifications y osd no llevan ninguno porque no se lanzan a mano. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
5 files · +166 −0
diff --git a/recipes/incoming-cosmic/cosmic-app-library.toml b/recipes/incoming-cosmic/cosmic-app-library.toml
new file mode 100644
index 00000000..cff0a791
--- /dev/null
+++ b/recipes/incoming-cosmic/cosmic-app-library.toml
@@ -0,0 +1,37 @@
+# cosmic-app-library — la grilla de todas las aplicaciones instaladas. 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.CosmicAppLibrary`) 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-app-library"
+version = "1.5.0"
+
+[source]
+tarball = "https://github.com/pop-os/cosmic-app-library/archive/epoch-1.5.0/cosmic-app-library-epoch-1.5.0.tar.gz"
+sha256 = "39dfa91d807240585ece7794190229832cb0c48162d87a29d62fb6a43a5238e6"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "static"
+flags = ["--bin", "cosmic-app-library"]
+
+[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-app-library /out/usr/bin/cosmic-app-library
+chmod 755 /out/usr/bin/cosmic-app-library
+cp data/com.system76.CosmicAppLibrary.desktop /out/usr/share/applications/
+cp data/com.system76.CosmicAppLibrary.metainfo.xml /out/usr/share/metainfo/
+cp data/icons/com.system76.CosmicAppLibrary.svg /out/usr/share/icons/hicolor/scalable/apps/
+'''
+
+[deps]
+build = ["libxkbcommon", "pkgconf"]
diff --git a/recipes/incoming-cosmic/cosmic-launcher.toml b/recipes/incoming-cosmic/cosmic-launcher.toml
new file mode 100644
index 00000000..dc206d42
--- /dev/null
+++ b/recipes/incoming-cosmic/cosmic-launcher.toml
@@ -0,0 +1,37 @@
+# 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"
+link = "static"
+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]
+build = ["libxkbcommon", "pkgconf"]
diff --git a/recipes/incoming-cosmic/cosmic-notifications.toml b/recipes/incoming-cosmic/cosmic-notifications.toml
new file mode 100644
index 00000000..c156a364
--- /dev/null
+++ b/recipes/incoming-cosmic/cosmic-notifications.toml
@@ -0,0 +1,29 @@
+# cosmic-notifications — el servidor de notificaciones de COSMIC (implementa
+# `org.freedesktop.Notifications` sobre el bus de sesión y las dibuja con libcosmic).
+#
+# Instalación mínima de toda la suite: sólo el binario. No trae `.desktop` ni iconos propios porque no
+# es una app que se lance a mano — la levanta `cosmic-session`, primera de la lista.
+#
+# `libxkbcommon` + `pkgconf` por la regla del gotcha 7 del runbook: van en TODA la cola.
+name = "cosmic-notifications"
+version = "1.5.0"
+
+[source]
+tarball = "https://github.com/pop-os/cosmic-notifications/archive/epoch-1.5.0/cosmic-notifications-epoch-1.5.0.tar.gz"
+sha256 = "8c60dd4c2161a2b9d2314597e141c600da9882fe774858283303370b2409ead7"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "static"
+flags = ["--bin", "cosmic-notifications"]
+
+[build.phases]
+install = '''
+mkdir -p /out/usr/bin
+cp target/release/cosmic-notifications /out/usr/bin/cosmic-notifications
+chmod 755 /out/usr/bin/cosmic-notifications
+'''
+
+[deps]
+build = ["libxkbcommon", "pkgconf"]
diff --git a/recipes/incoming-cosmic/cosmic-panel.toml b/recipes/incoming-cosmic/cosmic-panel.toml
new file mode 100644
index 00000000..1b92b85e
--- /dev/null
+++ b/recipes/incoming-cosmic/cosmic-panel.toml
@@ -0,0 +1,35 @@
+# cosmic-panel — la barra superior y el dock. Es el cliente de iced/libcosmic MÁS grande de la suite:
+# no sólo se dibuja a sí mismo, sino que hospeda los applets como clientes Wayland anidados
+# (`xdg-shell-wrapper`, que es uno de los miembros del workspace).
+#
+# ── LA INSTALACIÓN ES EL DATO ───────────────────────────────────────────────────────────────────
+# El `default_schema` no es un fichero: es un ÁRBOL de tres componentes de cosmic-config
+# (`…CosmicPanel`, `…CosmicPanel.Panel`, `…CosmicPanel.Dock`), cada uno con su `v1/` y **un fichero
+# por clave** (`size`, `padding`, `plugins_center`, `entries`…). Copiarlo aplanado o renombrando deja
+# un panel que arranca con TODO por defecto compilado: sin plugins, sin dock, sin tamaño. Por eso el
+# `install` reproduce la estructura tal cual con `cp -r`, y no fichero por fichero.
+#
+# El binario sale del paquete `cosmic-panel-bin` del workspace, pero se llama `cosmic-panel`.
+name = "cosmic-panel"
+version = "1.5.0"
+
+[source]
+tarball = "https://github.com/pop-os/cosmic-panel/archive/epoch-1.5.0/cosmic-panel-epoch-1.5.0.tar.gz"
+sha256 = "66d8dfbc8aa62ff6a91e83e5bdcb5363c663aac5a58c111152b258054a815222"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "static"
+flags = ["--bin", "cosmic-panel"]
+
+[build.phases]
+install = '''
+mkdir -p /out/usr/bin /out/usr/share/cosmic
+cp target/release/cosmic-panel /out/usr/bin/cosmic-panel
+chmod 755 /out/usr/bin/cosmic-panel
+cp -r data/default_schema/. /out/usr/share/cosmic/
+'''
+
+[deps]
+build = ["libxkbcommon", "pkgconf"]
diff --git a/recipes/incoming-cosmic/cosmic-workspaces-epoch.toml b/recipes/incoming-cosmic/cosmic-workspaces-epoch.toml
new file mode 100644
index 00000000..b843d86a
--- /dev/null
+++ b/recipes/incoming-cosmic/cosmic-workspaces-epoch.toml
@@ -0,0 +1,28 @@
+# cosmic-workspaces — la vista general de espacios de trabajo (el «overview» de COSMIC). Cliente de
+# iced/libcosmic; el repo se llama `cosmic-workspaces-epoch` pero el binario y el AppID no llevan el
+# sufijo, y `cosmic-session` lo busca como `cosmic-workspaces`. Los tres nombres importan y no
+# coinciden: el del repo es el de la URL, el del binario el del PATH, y el AppID el de cosmic-config.
+name = "cosmic-workspaces-epoch"
+version = "1.5.0"
+
+[source]
+tarball = "https://github.com/pop-os/cosmic-workspaces-epoch/archive/epoch-1.5.0/cosmic-workspaces-epoch-epoch-1.5.0.tar.gz"
+sha256 = "d7b54ce8dd229c6b76c2132b38d0814df656439bd4c014d04bd052143dcf4249"
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "static"
+flags = ["--bin", "cosmic-workspaces"]
+
+[build.phases]
+install = '''
+mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/icons/hicolor/scalable/apps
+cp target/release/cosmic-workspaces /out/usr/bin/cosmic-workspaces
+chmod 755 /out/usr/bin/cosmic-workspaces
+cp data/com.system76.CosmicWorkspaces.desktop /out/usr/share/applications/
+cp data/com.system76.CosmicWorkspaces.svg /out/usr/share/icons/hicolor/scalable/apps/
+'''
+
+[deps]
+build = ["libxkbcommon", "pkgconf"]