gioser

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 1561Shell 203Rust 109Markdown 993728 Definiciones

cosmic: los componentes que MATAN la sesión son TRES, no uno — corrección medida

El arranque en modo session murió con 'failed to start notifications daemon'
(main.rs:306). Grepeando '\.expect(' aparecen los tres:

  main.rs:255  cosmic-settings-daemon
  main.rs:306  cosmic-notifications
  main.rs:325  cosmic-panel

O sea que el mínimo viable de una sesión COSMIC son CUATRO binarios: compositor
más esos tres.

Cómo me equivoqué, que es la parte reusable: leí start_component(), vi que sólo
logueaba, y generalicé a 'todos menos el settings-daemon'. Pero notifications y
panel NO PASAN por esa función — tienen su propio .expect() unas líneas antes.
Buscar la función que lanza no es lo mismo que buscar los .expect del fichero, y
grepear la construcción que mata cuesta lo mismo y no generaliza de más.

De paso, el bloque que configura el fondo de color sale del branch de modo bare:
estaba adentro, así que en modo session cosmic-bg se quedaba con el wallpaper por
defecto (que vive en git-lfs y no existe) y la pantalla salía negra por una razón
distinta de la que se estaba investigando.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

999e9bdcb5170aa1aee94311a6edee42368946b1 · por sergio · (hace 2 meses) · padre 0f2f9ec2e · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

2 archivos · +41 −28

diff --git a/docs/runbooks/cosmic-desktop.md b/docs/runbooks/cosmic-desktop.md
index e33cdb21..bef3e6a3 100644
--- a/docs/runbooks/cosmic-desktop.md
+++ b/docs/runbooks/cosmic-desktop.md
@@ -164,11 +164,24 @@ INFO  cosmic_session: got environmental variables from cosmic-comp: [("WAYLAND_D
 ERROR panic: 'failed to start settings daemon: NotFound' src/main.rs:255
 ```
 
-Es un `.expect()`, sin feature que lo apague. **Y es el ÚNICO así**: los demás componentes se lanzan
-con `start_component()`, que ante un fallo sólo hace `error!("failed to start …")` y sigue
-(`main.rs:558`). O sea que la sesión se puede probar con la suite a medias —el resto de las piezas que
-falten van a aparecer como líneas de error y nada más—; el settings-daemon es la única cuya ausencia
-la mata. **Esto corrige lo que decía la sección de
+Es un `.expect()`, sin feature que lo apague. **Y NO es el único — son TRES**, y esto corrige lo que
+esta misma sección afirmaba hace unas horas:
+
+| línea | componente | qué pasa si falta |
+|---|---|---|
+| `main.rs:255` | `cosmic-settings-daemon` | panic |
+| `main.rs:306` | `cosmic-notifications` | panic |
+| `main.rs:325` | `cosmic-panel` | panic |
+
+El resto (app-library, launcher, workspaces, osd, bg, idle) va por `start_component()`, que ante un
+fallo sólo hace `error!("failed to start …")` y sigue (`main.rs:558`). O sea que **el mínimo viable de
+una sesión COSMIC son cuatro binarios**: compositor + esos tres.
+
+**Cómo se equivocó el diagnóstico, que es la parte reusable**: leí `start_component()`, vi que sólo
+logueaba, y generalicé a «todos menos el settings-daemon». Pero notifications y panel **no pasan por
+esa función** — tienen su propio `.expect()` unas líneas antes. Buscar la función que lanza no es lo
+mismo que buscar los `\.expect(` del fichero; **grepear la construcción que mata cuesta lo mismo y no
+generaliza de más**. **Esto corrige lo que decía la sección de
 cosmic-settings-daemon**: no es que sin él se pierdan el brillo y el tema, es que **no hay sesión**.
 Queda por eso el modo `bare` en `cosmic-start` —el camino que upstream ya soporta como
 `install-bare-session`—: se lanza el compositor solo y los clientes a mano contra su WAYLAND_DISPLAY.
diff --git a/scripts/cosmic/cosmic-start-qemu.sh b/scripts/cosmic/cosmic-start-qemu.sh
index aae125e4..04d13e88 100644
--- a/scripts/cosmic/cosmic-start-qemu.sh
+++ b/scripts/cosmic/cosmic-start-qemu.sh
@@ -128,6 +128,29 @@ export XDG_DATA_DIRS=/usr/share XDG_CONFIG_DIRS=/etc/xdg
 mkdir -p "$XDG_RUNTIME_DIR" && chmod 700 "$XDG_RUNTIME_DIR"
 [ -w "$XDG_RUNTIME_DIR" ] || say "!! XDG_RUNTIME_DIR se perdió entre el arranque y ahora"
 
+# ── FONDO: color liso, porque la imagen por defecto NO SE PUEDE EMPAQUETAR ────────────────────
+# El default de cosmic-bg apunta a `/usr/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg`,
+# que vive en el repo `cosmic-wallpapers`… en **git-lfs**: el tarball de GitHub pesa 20 KB y trae
+# punteros, no imágenes. O sea que la receta obvia produciría un paquete de ficheros de texto.
+# Mientras eso no se resuelva, se escribe la config de USUARIO con una fuente `Color`, que
+# cosmic-bg soporta de fábrica. Va acá y no en el artefacto a propósito: es política de esta
+# imagen de prueba, no algo que el paquete prometa.
+if [ ! -f /usr/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg ]; then
+  mkdir -p "$HOME/.config/cosmic/com.system76.CosmicBackground/v1"
+  cat > "$HOME/.config/cosmic/com.system76.CosmicBackground/v1/all" <<'RON'
+(
+  output: "all",
+  source: Color(Single((0.13, 0.29, 0.53))),
+  filter_by_theme: true,
+  rotation_frequency: 3600,
+  filter_method: Lanczos,
+  scaling_mode: Zoom,
+  sampling_method: Alphanumeric,
+)
+RON
+  say "fondo: color liso (el wallpaper por defecto vive en git-lfs y no se empaqueta)"
+fi
+
 # ── MODO: bare (default) o session ──────────────────────────────────────────────────────────────
 # `cosmic-session` es el camino de producción, pero HOY no se puede usar: llama a
 # `cosmic-settings-daemon` con `.expect("failed to start settings daemon")` (src/main.rs:255) y
@@ -177,29 +200,6 @@ done
 if [ -n "$WD" ] && [ "${COSMIC_MODE:-bare}" != session ]; then
   export WAYLAND_DISPLAY="$WD"
 
-  # ── FONDO: color liso, porque la imagen por defecto NO SE PUEDE EMPAQUETAR ────────────────────
-  # El default de cosmic-bg apunta a `/usr/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg`,
-  # que vive en el repo `cosmic-wallpapers`… en **git-lfs**: el tarball de GitHub pesa 20 KB y trae
-  # punteros, no imágenes. O sea que la receta obvia produciría un paquete de ficheros de texto.
-  # Mientras eso no se resuelva, se escribe la config de USUARIO con una fuente `Color`, que
-  # cosmic-bg soporta de fábrica. Va acá y no en el artefacto a propósito: es política de esta
-  # imagen de prueba, no algo que el paquete prometa.
-  if [ ! -f /usr/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg ]; then
-    mkdir -p "$HOME/.config/cosmic/com.system76.CosmicBackground/v1"
-    cat > "$HOME/.config/cosmic/com.system76.CosmicBackground/v1/all" <<'RON'
-(
-    output: "all",
-    source: Color(Single((0.13, 0.29, 0.53))),
-    filter_by_theme: true,
-    rotation_frequency: 3600,
-    filter_method: Lanczos,
-    scaling_mode: Zoom,
-    sampling_method: Alphanumeric,
-)
-RON
-    say "fondo: color liso (el wallpaper por defecto vive en git-lfs y no se empaqueta)"
-  fi
-
   for c in cosmic-bg cosmic-panel cosmic-osd cosmic-notifications cosmic-app-library cosmic-launcher cosmic-idle; do
     if [ -x "/usr/bin/$c" ]; then
       "/usr/bin/$c" >"/tmp/$c.log" 2>&1 &