feat: estensione kde-automation per verifica UI KDE Plasma 6

Tool: kde_screenshot (spectacle), kde_click/kde_type/kde_mousemove (ydotool),
kde_window_activate (KWin scripting), kde_ui_inspect (AT-SPI).
Daemon ydotoold auto-avviato (sudoers NOPASSWD), promptGuidelines + skill kde-verify.
This commit is contained in:
Matteo Benedetto
2026-08-16 16:35:00 +02:00
commit 6fb626d300
3 changed files with 336 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
---
name: kde-verify
description: "Prassi di verifica UI su desktop KDE Plasma 6 (Wayland): screenshot con spectacle, input con ydotool, gestione finestre con KWin scripting, ispezione con AT-SPI. Usa questa skill quando devi verificare o automatizzare applicazioni a schermo."
metadata:
short-description: Verifica e automazione UI su KDE Plasma 6
---
# Verifica UI KDE Plasma 6 (Wayland)
Prassi operativa per verificare e automatizzare applicazioni a schermo su KDE Plasma 6 (Wayland), usando solo strumenti nativi + ydotool.
## Ciclo di verifica
1. **Cattura**: `kde_screenshot` (mode=fullscreen|active|window|region, output=/tmp/x.png)
2. **Analizza**: leggi l'immagine con `read` (se il modello supporta immagini) o `agy_analyze` (visione Gemini) per descrivere lo stato
3. **Azione**: `kde_window_activate` (resourceClass) → `kde_click` (x,y,button) → `kde_type` (text)
4. **Verifica**: nuovo `kde_screenshot` e confronta con lo stato atteso
## Strumenti
| Tool | Funzione |
|---|---|
| `kde_screenshot` | Spectacle: fullscreen/active/window/region, delay, clipboard |
| `kde_click` | ydotool click (1=sin, 2=centro, 3=destro), con mousemove opzionale |
| `kde_type` | ydotool type (testo nella finestra attiva) |
| `kde_mousemove` | ydotool mousemove (x, y) |
| `kde_window_activate` | KWin scripting: attiva finestra per resourceClass |
| `kde_ui_inspect` | AT-SPI: elenca applicazioni e controlli |
## Comandi diretti (se i tool non bastano)
```bash
# Screenshot
spectacle -b -f -o /tmp/x.png # fullscreen
spectacle -b -a -o /tmp/x.png # finestra attiva
spectacle -b -u -o /tmp/x.png # finestra sotto cursore
# Input (daemon: sudo ydotoold -p /run/user/1000/.ydotool_socket -P 0666 -o 1000:1000 &)
export YDOTOOL_SOCKET=/run/user/1000/.ydotool_socket
ydotool mousemove 720 450
ydotool click 1
ydotool type "testo"
# Finestre (KWin D-Bus)
qdbus6 org.kde.KWin /KWin org.kde.KWin.queryWindowInfo # info finestra attiva
qdbus6 org.kde.KWin /Scripting org.kde.kwin.Scripting.loadScript /tmp/script.js
qdbus6 org.kde.KWin /Scripting org.kde.kwin.Scripting.start
# Clipboard (workaround per inserire testo)
qdbus6 org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents "testo"
```
## Avvertenze
- **ydotool usa la mappa tastiera US**: con layout IT i caratteri speciali (trattini → apostrofi, @, ecc.) vengono interpretati diversamente. Per testo semplice ASCII va bene.
- **Wayland non ha iniezione input nativa**: ydotool (via /dev/uinput) è il metodo; il daemon si avvia da solo (sudoers NOPASSWD per ydotoold configurato).
- **resourceClass comuni**: org.kde.konsole, org.kde.dolphin, org.kde.plasma-systemmonitor, firefox, org.kde.discover.
- **AT-SPI**: il bus è su unix:path=/run/user/1000/at-spi/bus_1; per uso avanzato serve pyatspi (non installato).
- **Dettagli e lezioni**: memoria qmem project `host-enne2-gk35` (record automazione KDE).