Automazione (AppleScript e Comandi rapidi)
Qui l’automazione funziona nei due sensi.
Verso l’esterno: Peach Commander è pilotabile da script, quindi puoi guidarlo da AppleScript e dall’app Comandi rapidi. Alcuni verbi di base permettono a uno script di navigare nei pannelli, selezionare file con una maschera, copiare o spostare la selezione corrente ed eseguire qualsiasi comando di Peach Commander tramite il suo id — riutilizzando esattamente le stesse azioni dei menu, così che un passo eseguito da script si comporti come uno manuale. Di questo tratta il resto della pagina.
Verso l’interno: Peach Commander può anche eseguire uno script tuo — AppleScript o JavaScript — e metterlo su un menu, un pulsante o un tasto. Serve il plugin Scripting, distribuito disattivato; vedi Eseguire i tuoi script più sotto.
Per ripetere una sequenza di azioni sui file invece di una sola, vedi Macro.
Consultare il dizionario¶
- Aprite Editor di script (in
/Applications/Utilities). - Scegliete Finestra ▸ Libreria, poi fate doppio clic su Peach Commander (aggiungetelo con + se non è elencato).
- Si apre il dizionario, che elenca i comandi e le proprietà riportati di seguito.
La prima volta che uno script controlla Peach Commander, macOS vi chiede di consentirlo (Impostazioni di Sistema ▸ Privacy e Sicurezza ▸ Automazione). Approvatelo una volta e gli script successivi verranno eseguiti senza richieste.
Cosa potete leggere¶
| Proprietà | Significato |
|---|---|
active folder |
Percorso POSIX della cartella del pannello attivo. |
inactive folder |
Percorso POSIX della cartella dell'altro pannello. |
selection paths |
Gli elementi selezionati nel pannello attivo (o l'elemento sotto il cursore). |
I verbi¶
| Comando | Cosa fa |
|---|---|
go to "<path>" [in left\|right] |
Apre una cartella in un pannello (predefinito: il pannello attivo). |
select "<mask>" |
Seleziona gli elementi nel pannello attivo tramite una maschera con caratteri jolly, ad es. *.pdf. |
copy items to "<folder>" |
Copia la selezione del pannello attivo in una cartella. |
move items to "<folder>" |
Sposta la selezione del pannello attivo in una cartella. |
run command "<id>" |
Esegue qualsiasi comando tramite il suo id, ad es. cm_PackFiles. |
La copia e lo spostamento usano la stessa coda di trasferimenti in background di F5/F6, quindi l'avanzamento e le eventuali richieste di sovrascrittura appaiono esattamente come per un'operazione manuale.
Esempio¶
tell application "Peach Commander"
go to "~/Downloads" in left
select "*.pdf"
copy items to "~/Documents/PDFs"
return selection paths
end tell
Usarlo da Comandi rapidi¶
Nell'app Comandi rapidi, aggiungete l'azione Esegui AppleScript e incollate uno script come quello sopra. Questo vi permette di inserire un passaggio di Peach Commander in un Comando rapido più ampio — ad esempio, attivato da una modifica di una cartella o da un tasto di scelta rapida.
Eseguire i tuoi script¶
L’altro senso: uno script tuo, eseguito da Peach Commander.
Questo è un plugin, e viene distribuito disattivato, perché eseguire un programma di tua scelta può fare tutto ciò che fa il resto dell’applicazione e diverse cose che nessuna sua parte copre. Due interruttori, entrambi spenti finché non li accendi:
- Configurazione ▸ Plugin… — attiva Scripting.
- Impostazioni ▸ IA — attiva Consenti l’esecuzione di script. Sta in quella pagina perché è lo stesso tipo di permesso della shell dell’assistente, e i due stanno insieme.
Metti poi uno script in scripts/ dentro la cartella di configurazione — Comandi ▸ Apri la cartella degli script ti porta lì e la prima volta lascia un esempio. Un file .applescript, .scpt o .jxa in quella cartella è uno script; non c’è nulla da registrare.
Cosa riceve uno script¶
Lo stato dei pannelli arriva nell’ambiente, così il caso ordinario non richiede Apple event né alcuna richiesta di permesso:
| Variabile | Significa |
|---|---|
PC_ACTIVE_DIR |
La cartella del pannello attivo |
PC_TARGET_DIR |
La cartella dell’altro pannello |
PC_CURSOR_NAME |
Il file sotto il cursore |
PC_SELECTION_COUNT |
Quanti elementi sono selezionati |
PC_SELECTION_FILE |
Un file di testo con un percorso selezionato per riga (assente quando non è selezionato nulla) |
set here to system attribute "PC_ACTIVE_DIR"
return "The active panel is showing " & here
Tutto ciò che va oltre passa dall’applicazione stessa, con i verbi visti sopra — le due metà quindi si compongono.
Mettere uno script su un pulsante o un tasto¶
Ogni script diventa un comando chiamato plugin.script.run.<nome>, dove <nome> è il nome del file senza estensione (spazi e punti diventano trattini). Quell’id funziona in ogni posto in cui funziona un id cm_*: nella barra dei pulsanti, in usercmd.ini, in un file .mnu e in Configurazione ▸ Modifica scorciatoie….
Come viene eseguito uno script, e il limite di tempo¶
Per impostazione predefinita uno script viene eseguito come processo separato, il che consente di dargli un limite di tempo e di fermarlo se lo supera — trenta secondi salvo diversa indicazione. Uno script può scegliere di essere eseguito dentro l’applicazione, cosa che gli permette di restituire un valore strutturato e lo mantiene compilato tra le esecuzioni, ma allora non c’è limite di tempo: uno script che entra in ciclo blocca l’applicazione. Indica la scelta in scripts.json, accanto ai tuoi script:
[
{ "id": "Tidy", "fileName": "Tidy.applescript", "title": "Tidy Downloads",
"language": "AppleScript", "mode": "subprocess", "timeoutSeconds": 60 }
]
Solo ciò che si discosta dai valori predefiniti richiede una voce; un file senza voce prende il proprio nome come titolo, viene eseguito come processo separato e si ferma dopo trenta secondi.
Per l’assistente¶
Con il plugin attivo e l’impostazione abilitata, l’assistente ottiene run_applescript, run_jxa e check_script. Ognuno ti mostra lo script esatto e attende la tua approvazione prima che qualcosa venga eseguito, e nessuno viene mai offerto a un agente esterno tramite MCP.
Note¶
- L'id del comando che passate a
run commandè lo stesso idcm_*mostrato nel browser dei comandi (vedi Il menu Avvio e i comandi personalizzati). - Lo scripting agisce sempre sul pannello attivo; usate prima
go to … in left/in rightse avete bisogno di un lato specifico. - Peach Commander è un'app a finestra singola, quindi gli script agiscono sui due pannelli di quella finestra.