tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1569Shell 203Rust 109Markdown 993728 Definitions

🖥 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>

e39610588d4360b87f47f66654f6bbfc0e3ac953 · by sergio · (2 months ago) · parent 554fd8756 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

6 files · +101 −4

diff --git a/docs/evidencia/cosmic-biblioteca-con-app-qemu-2026-08-04.png b/docs/evidencia/cosmic-biblioteca-con-app-qemu-2026-08-04.png
new file mode 100644
index 00000000..4fb7c225
Binary files /dev/null and b/docs/evidencia/cosmic-biblioteca-con-app-qemu-2026-08-04.png differ
diff --git a/docs/evidencia/cosmic-terminal-qemu-2026-08-04.png b/docs/evidencia/cosmic-terminal-qemu-2026-08-04.png
new file mode 100644
index 00000000..0cc8b4f9
Binary files /dev/null and b/docs/evidencia/cosmic-terminal-qemu-2026-08-04.png differ
diff --git a/docs/runbooks/cosmic-desktop.md b/docs/runbooks/cosmic-desktop.md
index 0291525c..33fb8cbe 100644
--- a/docs/runbooks/cosmic-desktop.md
+++ b/docs/runbooks/cosmic-desktop.md
@@ -109,8 +109,9 @@ Más `cosmic-settings-daemon` y `xdg-desktop-portal-cosmic` fuera de esa lista.
 | `pop-launcher` 1.2.7 (otro repo, ver abajo) | ✅ sellado a la primera | `b3:64a5cbaa` |
 | `gmp` 6.3.0 · `mpfr` 4.2.2 (cadena de la calculadora) | ✅ sellados a la primera | `b3:d99a0a5d` · `b3:13982d20` |
 | `libqalculate` 5.12.0 (`qalc`) | ✅ sellado — la calculadora del lanzador ANDA (ver abajo) | `b3:edb8d14d` |
+| **`cosmic-term`** 1.5.0 — la 1ª APLICACIÓN | ✅ **sellada a la primera** (arrastra `cosmic-files` y `wgpu`) | `b3:d0ea1c1e` |
 
-**La cola está COMPLETA: 30 recetas, `escritorio-cosmic` 68/68.**
+**La cola está COMPLETA: 31 recetas, `escritorio-cosmic` 69/69.**
 
 **El mínimo viable de una sesión son cuatro**: `cosmic-comp` + `cosmic-settings-daemon` +
 `cosmic-notifications` + `cosmic-panel` (los tres `.expect` de la tabla de arriba).
@@ -548,6 +549,38 @@ imagen, como el color de fondo; una distro de verdad lo pondría en `/etc/skel`.
   mentir. Ojo: hay que repetir el `-L` en el `make`, porque el `LDFLAGS` del `make` PISA al del
   `configure`.
 
+### 🖥 `cosmic-term`: la primera APLICACIÓN, y la biblioteca deja de estar vacía
+
+`docs/evidencia/cosmic-terminal-qemu-2026-08-04.png`:
+
+```
+bash-5.3# uname -srm; qalc -t '6*7'
+Linux 6.16.12 x86_64
+42
+```
+
+Una ventana de verdad —con decoración, *File/Edit/View*, minimizar/maximizar/cerrar—, `bash` corriendo
+adentro, el **kernel propio de hammer** contestando, y el `qalc` que empaquetamos una hora antes
+devolviendo 42. Se abre haciendo click en su icono en la biblioteca de aplicaciones
+(`cosmic-biblioteca-con-app-qemu-2026-08-04.png`), que hasta hoy salía vacía **con razón**: los 20
+`.desktop` de la imagen eran `NoDisplay=true`. Éste no lo es, y es el primero.
+
+**Selló a la primera, y eso es noticia por lo que arrastra**: su `Cargo.toml` depende de
+**`cosmic-files`** —el gestor de ficheros entra como LIBRERÍA, por el selector y el
+arrastrar-y-soltar—, así que compilar la terminal compila medio gestor de ficheros. Mismo patrón que
+`cosmic-settings-config` en los applets: **en esta suite las «aplicaciones» se usan unas a otras como
+crates**, y el grafo de deps de Cargo no se parece al mapa de componentes.
+
+`wgpu` viene en `default`, al revés que el resto de los clientes que pintan con tiny-skia. Se dejó
+como está: `wgpu` y `naga` ya se habían compilado enteros para `cosmic-workspaces`, así que el costo
+estaba pago, y apartarse de las features por defecto es apartarse de la única combinación que
+upstream prueba. Cierra con **dos `NEEDED`**: `libxkbcommon.so.0` y `libc.so`.
+
+**Terminfo, para la próxima:** la ncurses del corpus es *libs-only* y no instala la base de terminfo,
+pero trae `--with-fallbacks=…,xterm-256color,…` compilados. A la terminal no le hace falta —el que
+necesita terminfo es lo que corre ADENTRO— y el hijo acá es el `sh` de busybox, que no lo usa. El día
+que entren `vim` o `htop` en la imagen, hará falta un paquete de datos de terminfo.
+
 ### ⏱ El panel tiene un DEADLINE de arranque: con 4 vCPU sale mutilado
 
 Medido: con `-smp 4` el panel arranca **sin ala izquierda, sin reloj y sin dock** —sólo la bandeja
@@ -564,9 +597,9 @@ El número de procesos no distingue «arrancó» de «dibujó». El framebuffer
 
 ## Lo que falta, en orden
 
-1. **Aplicaciones con ventana.** Sigue sin haber ninguna: los 20 `.desktop` de la imagen son
-   `NoDisplay=true`, así que la biblioteca sale vacía y eso es correcto. La calculadora del lanzador
-   ya da resultados, pero es una fila de texto, no una app. `cosmic-term` sería la primera de verdad.
+1. **Más aplicaciones.** `cosmic-term` ya está y es la única. `cosmic-files` **ya se compila entero**
+   como dep de la terminal, así que empaquetarlo como aplicación es casi gratis; después
+   `cosmic-settings` y `cosmic-edit`.
 2. `xdg-desktop-portal-cosmic` — sin él no hay captura de pantalla, ni file-chooser, ni compartir.
 3. `cosmic-settings` (el panel de control) y `cosmic-files`: la suite tiene aplicaciones y el
    catálogo todavía no.
diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index e27675c8..d00d94d6 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -107,6 +107,9 @@ paquetes = [
   # Y el `qalc` al que el plugin `calc` le pasa la expresión: tercer nivel de hijo por PATH. Es la
   # primera raíz del perfil que existe para que una TECLA dé un resultado, no para que algo enlace.
   "libqalculate",
+  # La primera APLICACIÓN con ventana del catálogo, y la primera entrada de la biblioteca que no es
+  # `NoDisplay`. Hasta acá el perfil listaba escritorio; desde acá lista también lo que se abre.
+  "cosmic-term",
   # Datos, no binarios: el tema de iconos (y el hicolor del que hereda), las tablas de xkb y una
   # tipografía. Ninguno es dep de build de nadie y sin ellos el escritorio arranca roto — sin puntero,
   # sin teclado o con tofu.
diff --git a/recipes/incoming-cosmic/cosmic-term.toml b/recipes/incoming-cosmic/cosmic-term.toml
new file mode 100644
index 00000000..07a716fa
--- /dev/null
+++ b/recipes/incoming-cosmic/cosmic-term.toml
@@ -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"]
diff --git a/scripts/cosmic/hydrate-cosmic.sh b/scripts/cosmic/hydrate-cosmic.sh
index 7b442faa..73807ed5 100755
--- a/scripts/cosmic/hydrate-cosmic.sh
+++ b/scripts/cosmic/hydrate-cosmic.sh
@@ -55,6 +55,10 @@ else
     # …y `qalc`, que es a lo que el plugin `calc` del lanzador le pasa la expresión. Tercer nivel de
     # hijo invisible para el grafo: sesión → lanzador → pop-launcher → qalc, todos por PATH.
     recipes/incoming-cosmic/libqalculate.toml
+    # La PRIMERA aplicación con ventana del catálogo. A diferencia de todo lo de arriba, ésta sí es
+    # alcanzable «desde el escritorio»: su `.desktop` no es `NoDisplay`, así que aparece en la
+    # biblioteca. Sigue siendo raíz a mano porque nadie la declara como dep de nada.
+    recipes/incoming-cosmic/cosmic-term.toml
     recipes/incoming-cosmic/cosmic-app-library.toml
     recipes/incoming-cosmic/cosmic-workspaces-epoch.toml
     # Ni binario ni librería: DATOS. El tema de iconos de COSMIC — sin él el escritorio no se ve