feat: add KDE Show Desktop automation
This commit is contained in:
@@ -12,9 +12,10 @@ Prassi operativa per verificare e automatizzare applicazioni a schermo su KDE Pl
|
||||
## 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
|
||||
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
|
||||
|
||||
@@ -26,6 +27,7 @@ Prassi operativa per verificare e automatizzare applicazioni a schermo su KDE Pl
|
||||
| `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)
|
||||
|
||||
@@ -46,6 +48,14 @@ 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"
|
||||
```
|
||||
@@ -56,4 +66,5 @@ qdbus6 org.kde.klipper /klipper org.kde.klipper.klipper.setClipboardContents "te
|
||||
- **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).
|
||||
|
||||
Reference in New Issue
Block a user