cosmic: los atajos andan (Super+A, Super+W) y el panel tiene un deadline de arranque
Faltaba sanear un SEGUNDO fichero: system_actions de cosmic-settings-daemon, que liga acción→comando, con la misma entrada ScreenReader que el enum del parser no conoce. Con defaults roto no hay ligaduras; con system_actions roto hay ligadura y ningún comando. Ahora Super+A abre la biblioteca y Super+W la vista de espacios de trabajo — con miniatura VIVA del escritorio dentro, o sea que el camino DMA-BUF→GBM de cosmic-workspaces anda de verdad. Super a secas no abre nada porque pop-launcher (el motor del lanzador) no está en el catálogo; los atajos no tienen la culpa. Me equivoqué de fichero teniendo el dato: el error traía línea y columna y busqué el token en vez del fichero que lo tiene en esa posición. Costó 40 minutos de rebuild. Y el panel tiene un DEADLINE para registrar su servidor D-Bus: con -smp 4 arranca sin ala izquierda, sin reloj y sin dock (894 colores vs 130); con -smp 8 -m 8192 son 4 de 4 completos. Perseguí eso como una regresión mía, revirtiendo tres cambios inocentes, porque usé el conteo de procesos como veredicto: un escritorio sano muestra 32, no 48. El framebuffer es el veredicto; los procesos no distinguen «arrancó» de «dibujó». Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
@@ -94,13 +94,13 @@ Más `cosmic-settings-daemon` y `xdg-desktop-portal-cosmic` fuera de esa lista.
|
||||
| `cosmic-session` | ✅ sellado | `b3:81f02351` |
|
||||
| `cosmic-icons` | ✅ sellado (671 SVGs) | `b3:94d06f77` |
|
||||
| `dav1d` 1.5.4 | ✅ sellado (dep arrastrada, ver gotcha 8) | `b3:aab7a874` |
|
||||
| **`cosmic-comp`** | ✅ **SELLADO — el gate** | `b3:b8abc52f` |
|
||||
| **`cosmic-comp`** | ✅ **SELLADO — el gate** (filtra `ScreenReader`, ver atajos) | `b3:e871eee4` |
|
||||
| `cosmic-bg` (dinámico, PINTA) | ✅ sellado | `b3:b2cfc410` |
|
||||
| `cosmic-idle` (dinámico) | ✅ sellado | `b3:e1806acc` |
|
||||
| `pulseaudio` · `pipewire` (cadena del settings-daemon) | ✅ sellados | `b3:e1ff4736` · `b3:338d1d8c` |
|
||||
| `cosmic-panel` | ✅ sellado | `b3:ac5e48c5` |
|
||||
| `cosmic-osd` | ✅ sellado | `b3:f15cb9c1` |
|
||||
| `cosmic-settings-daemon` | ✅ sellado | `b3:0263288e` |
|
||||
| `cosmic-settings-daemon` | ✅ sellado (filtra `ScreenReader`, ver atajos) | `b3:642919a5` |
|
||||
| `cosmic-notifications` | ✅ sellado | `b3:3e2a5478` |
|
||||
| `cosmic-launcher` | ✅ sellado | `b3:c17b4956` |
|
||||
| `cosmic-app-library` | ✅ sellado | `b3:b2a163e7` |
|
||||
@@ -366,11 +366,12 @@ Se reproduce así (headless y automatizable; **el `-vga none` no es opcional**,
|
||||
|
||||
```sh
|
||||
COSMIC_MODE=session bash scripts/cosmic/qemu-desktop-image.sh
|
||||
qemu-system-x86_64 -machine q35,accel=kvm -cpu host -smp 4 -m 4096 \
|
||||
qemu-system-x86_64 -machine q35,accel=kvm -cpu host -smp 8 -m 8192 \ # 8 vCPU: ver el deadline del panel
|
||||
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2/x64/OVMF_CODE.4m.fd \
|
||||
-drive if=pflash,format=raw,file=/tmp/OVMF_VARS.fd \
|
||||
-drive file=work/hammer-cosmic-qemu.img,format=raw,if=virtio \
|
||||
-vga none -device virtio-gpu-pci,xres=1280,yres=800 \
|
||||
-device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0 -device usb-tablet,bus=xhci.0 \
|
||||
-display none -serial file:/tmp/cosmic.serial -qmp unix:/tmp/qmp.sock,server,nowait
|
||||
# y después, por QMP: {"execute":"screendump","arguments":{"filename":"/tmp/shot.ppm"}}
|
||||
```
|
||||
@@ -419,22 +420,51 @@ applets y componentes de sesión, no aplicaciones—, así que no hay nada que l
|
||||
devuelva resultados no es un fallo del escritorio: es que la distro todavía no tiene ni una sola
|
||||
aplicación gráfica. Se sabrá arreglado cuando entre `cosmic-files` o un terminal.
|
||||
|
||||
### 🔑 El atajo que no era: 29 ligaduras caídas por UNA línea de datos
|
||||
### 🔑 Los atajos: dos ficheros envenenados por la misma línea
|
||||
|
||||
`Super` no abría el lanzador, **teniendo `(modifiers: [Super]): System(Launcher)` en el fichero**.
|
||||
La causa: `data/keybindings.ron` de epoch-1.5.0 liga `Super+Alt+S` a `System(ScreenReader)`, una
|
||||
acción que `cosmic-settings-config` —el crate que parsea el fichero, pineado por cargo en la rev
|
||||
`8c54bbbc`— todavía no tiene en su enum. **RON no ignora lo que no conoce: falla la deserialización
|
||||
del MAPA COMPLETO**, y con ella se caen las 29 ligaduras.
|
||||
`Super+A` abre la biblioteca y `Super+W` la vista de espacios de trabajo
|
||||
(`cosmic-super-w-workspaces-qemu-2026-08-04.png`, con **miniatura viva** del escritorio dentro — o
|
||||
sea que el camino DMA-BUF→GBM del gotcha 11 anda de verdad). Para llegar ahí hubo que sanear DOS
|
||||
ficheros de datos, no uno:
|
||||
|
||||
Lo que hace este bug difícil es cómo se presenta: apretás una tecla, no pasa nada, y el único rastro
|
||||
es un `WARN` de *cosmic-idle* —ni siquiera del compositor— a doscientas líneas del arranque, hablando
|
||||
de un enum. El síntoma no nombra ni la tecla, ni el fichero, ni el componente que lo sufre.
|
||||
| fichero | lo instala | qué liga |
|
||||
|---|---|---|
|
||||
| `…Shortcuts/v1/defaults` | `cosmic-comp` | tecla → acción |
|
||||
| `…Shortcuts/v1/system_actions` | `cosmic-settings-daemon` | acción → comando |
|
||||
|
||||
**Es el riesgo del pin lockstep asomando desde adentro de upstream**: acá el dato y el parser del
|
||||
*mismo* epoch no coinciden. El fix va en el install de `cosmic-comp` y filtra esa única línea
|
||||
(`grep -v 'System(ScreenReader)'`): se cae la acción que no existe, no las 28 que sí. El screen
|
||||
reader no está en la imagen de todas formas.
|
||||
Los dos traen una entrada `ScreenReader`, una variante que `cosmic-settings-config` —el crate que los
|
||||
parsea, pineado por cargo en la rev `8c54bbbc`— todavía no tiene en su enum. **RON no ignora lo que
|
||||
no conoce: falla la deserialización del MAPA COMPLETO.** Con `defaults` roto no hay ligaduras; con
|
||||
`system_actions` roto hay ligadura pero ningún comando que ejecutar. Hacen falta los dos `grep -v`.
|
||||
|
||||
**Y acá me equivoqué de fichero teniendo el dato exacto delante.** El error decía
|
||||
`3:5-3:17: Unexpected variant named 'ScreenReader'` — con línea y columna. Busqué el *token* en vez
|
||||
de preguntarme *qué fichero lo tiene en esa posición*, di con `keybindings.ron` (que también lo
|
||||
traía, en la línea 94), lo arreglé, reconstruí `cosmic-comp` **cuarenta minutos** y el error salió
|
||||
igualito. Era otro fichero, de otro paquete. *Cuando el error trae coordenadas, la primera pregunta
|
||||
es de qué fichero son, no dónde más aparece esa palabra.*
|
||||
|
||||
**Es el riesgo del pin lockstep asomando desde adentro de upstream**: el dato y el parser del *mismo*
|
||||
epoch no coinciden.
|
||||
|
||||
**`Super` a secas sigue sin abrir nada, y no es un bug nuestro**: liga `System(Launcher)`, y
|
||||
`cosmic-launcher` es sólo la interfaz — el motor de búsqueda es **`pop-launcher`**, un binario aparte
|
||||
que el catálogo todavía no tiene (`pop-launcher failed to start: No such file or directory`). Los
|
||||
atajos andan; lo que falta es el paquete.
|
||||
|
||||
### ⏱ 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
|
||||
derecha— y el único rastro es `Failed to setup panel dbus server deadline has elapsed`. Con
|
||||
`-smp 8 -m 8192`: **4 arranques de 4 con el escritorio completo y cero deadlines vencidos**.
|
||||
No es carga del anfitrión (falla con el anfitrión ocioso) sino la estampida del arranque: el panel
|
||||
registra su servidor D-Bus mientras catorce clientes de iced escanean fuentes al mismo tiempo.
|
||||
|
||||
**Y una lección de medición que costó horas: el conteo de procesos NO sirve como veredicto.**
|
||||
Perseguí una regresión inexistente comparando «48 procesos» contra «31», revirtiendo uno por uno
|
||||
tres cambios míos que no tenían nada que ver — cuando un escritorio completo y sano muestra **32**.
|
||||
El número de procesos no distingue «arrancó» de «dibujó». El framebuffer sí, y sin ambigüedad:
|
||||
**894 colores = completo, 130 = mutilado.**
|
||||
|
||||
## Lo que falta, en orden
|
||||
|
||||
|
||||
Reference in New Issue
Block a user