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:
@@ -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).
|
||||
Reference in New Issue
Block a user