🖥 cosmic: cosmic-term — la primera APLICACIÓN, y la biblioteca deja de estar vacía

Sellada a la primera (b3:d0ea1c1e). Cola 31/31, escritorio-cosmic 69/69.

Dentro de la ventana: bash-5.3#, uname -srm devuelve Linux 6.16.12 x86_64 —el kernel
propio de hammer— y qalc -t '6*7' devuelve 42, o sea la calculadora que empaquetamos una
hora antes. Se abre con click en su icono en la biblioteca, que hasta hoy salía vacía con
razón: los 20 .desktop de la imagen eran NoDisplay=true. Éste no lo es.

Lo que arrastra y no se adivina: su Cargo.toml depende de cosmic-files, o sea que el
gestor de ficheros entra como LIBRERÍA (selector y drag-and-drop) y compilar la terminal
compila medio gestor de ficheros. En esta suite las aplicaciones se usan unas a otras como
crates, y el grafo de Cargo no se parece al mapa de componentes. De paso, empaquetar
cosmic-files como aplicación queda casi gratis.

wgpu viene en default, al revés que el resto de los clientes: se deja, porque wgpu y naga
ya se habían compilado enteros para cosmic-workspaces y apartarse de las features por
defecto es apartarse de la única combinación que upstream prueba. Cierra con dos NEEDED.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-04 06:32:27 -04:00
co-authored by Claude Opus 5
parent 554fd8756d
commit e39610588d
6 changed files with 101 additions and 4 deletions
+57
View File
@@ -0,0 +1,57 @@
# cosmic-term — el emulador de terminal de COSMIC, y **la primera aplicación con ventana** del
# catálogo. Hasta acá el escritorio tenía compositor, panel, dock, lanzador y una calculadora que
# devuelve una fila de texto; ninguna ventana de verdad. Ésta lo es, y de paso convierte la
# biblioteca de aplicaciones —que hoy sale vacía porque los veinte `.desktop` de la imagen son
# `NoDisplay=true`— en algo que muestra al menos una entrada.
#
# ── LO QUE ARRASTRA, Y QUE NO SE ADIVINA ────────────────────────────────────────────────────────
# Su `Cargo.toml` depende de **`cosmic-files`**: el gestor de ficheros entra como LIBRERÍA (el
# selector y el arrastrar-y-soltar), no como aplicación. O sea que compilar la terminal compila
# medio gestor de ficheros. Es el mismo patrón que ya apareció con `cosmic-settings-config` en los
# applets: en esta suite las «aplicaciones» se usan unas a otras como crates.
#
# `wgpu` viene en `default`, al revés que el resto de los clientes que sellamos —que pintan con
# tiny-skia porque su libcosmic entra sin esa feature—. Se deja: `wgpu` y `naga` ya se compilaron
# enteros para `cosmic-workspaces` (están en su línea de enlace), así que el costo ya está pago, y
# tocar las features por defecto es apartarse de la única combinación que upstream prueba.
name = "cosmic-term"
version = "1.5.0"
[source]
tarball = "https://github.com/pop-os/cosmic-term/archive/epoch-1.5.0/cosmic-term-epoch-1.5.0.tar.gz"
sha256 = "ea942a519c33c6bc13dddfdd8c5addfc4307742c1f892fa67807646fc6db42bc"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
# Dinámico como todo cliente de la suite: `wayland-client` entra con la feature `dlopen` y un musl
# estático no la honra — arranca y muere con «The wayland library could not be loaded» *teniendo*
# el `.so`.
link = "dynamic"
flags = ["--bin", "cosmic-term"]
[build.phases]
# El `just install` traducido con `rootdir=/`. Los `.desktop`/`.metainfo` los GENERA el build en
# `target/xdgen/` (crate `xdgen` como build-dependency), no están en el tarball: se copian si
# aparecen. Acá **sí** conviene que el `.desktop` exista, al revés que en los applets — es lo que
# hace que la aplicación se vea en la biblioteca.
install = '''
mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/metainfo
cp target/release/cosmic-term /out/usr/bin/cosmic-term
chmod 755 /out/usr/bin/cosmic-term
cp target/xdgen/com.system76.CosmicTerm.desktop /out/usr/share/applications/ 2>/dev/null || true
cp target/xdgen/com.system76.CosmicTerm.metainfo.xml /out/usr/share/metainfo/ 2>/dev/null || true
for size in res/icons/hicolor/*; do
[ -d "$size" ] || continue
s=$(basename "$size")
if [ -f "$size/apps/com.system76.CosmicTerm.svg" ]; then
mkdir -p "/out/usr/share/icons/hicolor/$s/apps"
cp "$size/apps/com.system76.CosmicTerm.svg" "/out/usr/share/icons/hicolor/$s/apps/"
fi
done
'''
[deps]
# El juego fijo de todo cliente de la suite. `dbus-config` y `password_manager` (secret-service)
# hablan por **zbus**, que es Rust puro: no suman `libdbus`, al revés que cosmic-applets.
build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput"]