evidencia: el panel de Plasma con iconos, y el lanzador que NO abre por un módulo QML
Verificado en QEMU tras declarar `breeze-icons`: el panel pasa de «reloj solo» a completo —
kickoff, gestor de tareas, bandeja (notificaciones, volumen, teclado, red), reloj y mostrar
escritorio. Confirma que el panel nunca estuvo roto: no tenía iconos que dibujar. Y el mensaje
`kf.iconthemes: Icon theme "breeze" not found` desapareció del log.
⚠ CORRIJO una atribución del commit anterior (d69c437): dije que la barra derecha vacía de la
captura de GNOME era el mismo hueco de iconos, y NO lo es — `scripts/gnome/hydrate-gnome.sh` SÍ
hidrata `adwaita-icon-theme`, así que ese rootfs tenía tema. El hueco de GNOME es real pero está
en el PERFIL (`targets.toml`, que es lo que define la imagen enviable), no en aquella corrida;
la barra derecha vacía tiene otra causa, sin diagnosticar.
Y la segunda captura es un hallazgo nuevo, encontrado haciendo CLIC en el lanzador desde el
monitor de QEMU:
kickoff/main.qml:191:25: Type FullRepresentation unavailable
Header.qml:18:1: module "org.kde.coreaddons" is not installed
`kcoreaddons.toml` pasa `-DKCOREADDONS_USE_QML=OFF` ⇒ el módulo QML no se construye ⇒ **el menú
de aplicaciones no abre**. `yupana radio kcoreaddons` = 71: prenderlo es campaña de granja.
El barrido que lo generaliza (cruzar los `import` de los `.qml` instalados contra los módulos con
`qmldir` del rootfs) encontró además `org.kde.kscreenlocker` y `org.kde.newstuff.core`.
El runbook queda con las tres piezas que hacen falta en gioser, que no tiene ni ventana ni socat:
STAGE en el volumen (o EXDEV), monitor por socket unix desde python, y cómo hacer CLIC con un
ratón RELATIVO (fijar contra una esquina y moverse desde ahí).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGXe6mShYYw6V8ea1dQ13u
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 505 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 544 KiB |
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user