diff --git a/docs/evidencia/plasma6-qemu-2026-09-03-kickoff-sin-coreaddons.png b/docs/evidencia/plasma6-qemu-2026-09-03-kickoff-sin-coreaddons.png new file mode 100644 index 00000000..afef4613 Binary files /dev/null and b/docs/evidencia/plasma6-qemu-2026-09-03-kickoff-sin-coreaddons.png differ diff --git a/docs/evidencia/plasma6-qemu-2026-09-03-panel-con-iconos.png b/docs/evidencia/plasma6-qemu-2026-09-03-panel-con-iconos.png new file mode 100644 index 00000000..bb2b9403 Binary files /dev/null and b/docs/evidencia/plasma6-qemu-2026-09-03-panel-con-iconos.png differ diff --git a/docs/runbooks/kde-qemu-desktop.md b/docs/runbooks/kde-qemu-desktop.md index 907f1a4e..d7567ed7 100644 --- a/docs/runbooks/kde-qemu-desktop.md +++ b/docs/runbooks/kde-qemu-desktop.md @@ -87,3 +87,74 @@ Todos en `plasma-start-qemu.sh` salvo `-vga none` (en `run-qemu-desktop.sh`): - Para la ventana gtk: sesión gráfica del laptop viva (`DISPLAY=:0`). Headless (`DISP=none`) no la necesita. Relacionado: memoria [[kde-metal-qemu-desktop]], [[frente-escritorio-kde]], [[arranque-grafo-mirada]]. + +## 2026-09-03 — verificar el escritorio SIN humano delante (gioser, TCG, sin socat) + +Este runbook asumía el laptop: `DISP=gtk` para ver la ventana y `socat` para el monitor. En **gioser +no hay ninguna de las dos cosas** —es un vServer sin `/dev/kvm` y sin `socat`— y aun así se puede +verificar todo, incluido **hacer clic**. Las tres piezas: + +```sh +# 1. la imagen y el rootfs viven en el VOLUMEN (/mnt/vvv está al 98%), y el STAGE también: +# sin STAGE= el install-image-efi hardlinkea de /mnt/cosecha a work/ y muere con EXDEV. +E=/mnt/cosecha/escritorios +BASE=$E/base-rootfs KDE=$E/kde-rootfs MERGED=$E/kde-qemu-rootfs \ +IMG=$E/hammer-kde-qemu.img STAGE=$E/.stage-kde bash scripts/kde/qemu-desktop-image.sh + +# 2. arrancar headless (cae solo a TCG: gioser no tiene KVM; Plasma pinta en ~2 min) +IMG=$E/hammer-kde-qemu.img SERIAL=work/kde-qemu-serial.log MON=work/kde-monitor.sock \ + VARS=work/kde-OVMF_VARS.fd TIMEOUT=1200 DISP=none bash scripts/kde/run-qemu-desktop.sh & +``` + +3. el monitor de QEMU **por socket unix desde python**, que reemplaza a `socat`: + +```python +import socket, time +s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM); s.connect('work/kde-monitor.sock') +time.sleep(.5); s.recv(65536) +def cmd(c, p=.6): + s.sendall((c+'\n').encode()); time.sleep(p) + try: s.recv(200000) + except: pass +cmd('screendump /mnt/cosecha/escritorios/shot.ppm', 4) # el scanout REAL del guest +``` + +### Hacer CLIC sin ventana — y por qué el ratón es relativo + +`info mice` dice `QEMU PS/2 Mouse`: **movimiento RELATIVO**, así que no hay «ir a (x,y)». La +maniobra que sí funciona es **fijar contra una esquina** y moverse desde ahí: + +```python +cmd('mouse_move -3000 3000', 2) # clava el puntero en la esquina INFERIOR IZQUIERDA +cmd('mouse_move 10 -8', 1) # y desde la esquina, al lanzador del panel +cmd('mouse_button 1', .5); cmd('mouse_button 0', 8) +``` + +`sendkey` también anda (`sendkey alt-f2`, `sendkey k`, …) y **la combinación arranca krunner** —se ve +en el log de kwin— pero **la ventana de krunner no llegó a pintar** en dos intentos. Queda anotado +como pendiente propio, separado del bug de abajo. + +### Lo que estas dos herramientas destaparon el 2026-09-03 + +1. **El panel salía con el reloj y nada más, y no era el panel: eran los ICONOS.** Los `.so` de + todos los applets estaban instalados; lo que faltaba era `breeze-icons`. Ver el commit + «escritorios: KDE y GNOME corrían SIN tema de iconos». Evidencia: + `../evidencia/plasma6-qemu-2026-09-03-panel-con-iconos.png` — kickoff, gestor de tareas, bandeja + (notificaciones, volumen, teclado, red), reloj y «mostrar escritorio», todos pintando. + +2. **El lanzador de aplicaciones NO ABRE**, y el diálogo de error lo dice entero: + + ``` + qrc:/qt/qml/plasma/applet/org/kde/plasma/kickoff/main.qml:191:25: Type FullRepresentation unavailable + .../Header.qml:18:1: module "org.kde.coreaddons" is not installed + ``` + + `recipes/incoming-kde/kcoreaddons.toml` pasa `-DKCOREADDONS_USE_QML=OFF` (la cabecera lo dice: + «QML bindings / python / docs apagados»), así que el módulo QML `org.kde.coreaddons` no se + construye. Evidencia: `../evidencia/plasma6-qemu-2026-09-03-kickoff-sin-coreaddons.png`. + **`yupana radio kcoreaddons` = 71**, o sea que prenderlo es una campaña de granja, no un ticket. + +**Regla que sale de las dos:** una captura donde el escritorio «pinta» NO prueba que el escritorio +funcione. El barrido barato que sí lo prueba es cruzar los `import` de los `.qml` instalados contra +los módulos QML con `qmldir` que hay en el rootfs; así salió `org.kde.coreaddons` y, de yapa, +`org.kde.kscreenlocker` y `org.kde.newstuff.core`, que también faltan.