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>
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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 &
|
||||
|
||||
Reference in New Issue
Block a user