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>
This commit is contained in:
2026-08-03 11:10:13 -04:00
co-authored by Claude Opus 5
parent 2b5d518486
commit 616ea4a23c
5 changed files with 166 additions and 0 deletions
@@ -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"]
@@ -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"]
@@ -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"]
+35
View File
@@ -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"]
@@ -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"]