🖥 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

+37 -4
View File
@@ -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` | | `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` | | `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` | | `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` + **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). `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 mentir. Ojo: hay que repetir el `-L` en el `make`, porque el `LDFLAGS` del `make` PISA al del
`configure`. `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 ### ⏱ 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 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 ## Lo que falta, en orden
1. **Aplicaciones con ventana.** Sigue sin haber ninguna: los 20 `.desktop` de la imagen son 1. **Más aplicaciones.** `cosmic-term` ya está y es la única. `cosmic-files` **ya se compila entero**
`NoDisplay=true`, así que la biblioteca sale vacía y eso es correcto. La calculadora del lanzador como dep de la terminal, así que empaquetarlo como aplicación es casi gratis; después
ya da resultados, pero es una fila de texto, no una app. `cosmic-term` sería la primera de verdad. `cosmic-settings` y `cosmic-edit`.
2. `xdg-desktop-portal-cosmic` — sin él no hay captura de pantalla, ni file-chooser, ni compartir. 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 3. `cosmic-settings` (el panel de control) y `cosmic-files`: la suite tiene aplicaciones y el
catálogo todavía no. catálogo todavía no.
+3
View File
@@ -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 # 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. # primera raíz del perfil que existe para que una TECLA dé un resultado, no para que algo enlace.
"libqalculate", "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 # 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, # tipografía. Ninguno es dep de build de nadie y sin ellos el escritorio arranca roto — sin puntero,
# sin teclado o con tofu. # sin teclado o con tofu.
+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"]
+4
View File
@@ -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 # …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. # hijo invisible para el grafo: sesión → lanzador → pop-launcher → qalc, todos por PATH.
recipes/incoming-cosmic/libqalculate.toml 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-app-library.toml
recipes/incoming-cosmic/cosmic-workspaces-epoch.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 # Ni binario ni librería: DATOS. El tema de iconos de COSMIC — sin él el escritorio no se ve