Files
kde-automation/skills/kde-verify/SKILL.md
T

3.8 KiB

name, description, metadata
name description metadata
kde-verify 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.
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 direttamente l'immagine con il tool read (invio nativo come allegato multimodale) per descrivere lo stato a schermo
  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
  5. Mostra Desktop: usa kde_show_desktop con action=show|hide|toggle per nascondere o ripristinare le finestre senza simulare input

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
kde_show_desktop KWin D-Bus: mostra/nasconde tutte le finestre su Wayland

Comandi diretti (se i tool non bastano)

# 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

# Mostra Desktop (stato esplicito, robusto su Plasma Wayland)
dbus-send --session --dest=org.kde.KWin --type=method_call /KWin org.kde.KWin.showDesktop boolean:true
dbus-send --session --dest=org.kde.KWin --type=method_call /KWin org.kde.KWin.showDesktop boolean:false
# Toggle via azione globale KWin
qdbus6 org.kde.kglobalaccel /component/kwin org.kde.kglobalaccel.Component.invokeShortcut "Show Desktop"
# Verifica stato
qdbus6 org.kde.KWin /KWin org.freedesktop.DBus.Properties.Get org.kde.KWin showingDesktop

# 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).
  • Mostra Desktop: org.kde.KWin.showDesktop(bool) è esposto su /KWin; su questa macchina usare dbus-send con boolean:true|false perché qdbus6 non tipizza sempre correttamente il booleano. Per toggle usare KGlobalAccel invokeShortcut "Show Desktop".
  • Dettagli e lezioni: memoria qmem project host-enne2-gk35 (record automazione KDE).