Come posso assegnare una scorciatoia da tastiera a un AppleScript che ho scritto?


43

Come posso assegnare una scorciatoia da tastiera a un AppleScript? Ho trovato uno script per tornare automaticamente alla posta in arrivo in Office 2011.


1
Come sottolineato da questa risposta, gli shorcut della tastiera assegnati tramite i servizi non sono sempre coerenti.
William,

Risposte:


48

È anche possibile senza app di terze parti a pagamento!
1. Apri Automator.
2. Crea una nuova azione rapida.
3. Assicurarsi che non riceva "nessun input" in tutti i programmi.
4. Seleziona Esegui Apple Script e digita il codice.
5. Risparmia!

Ora vai su Preferenze di Sistema> Tastiera> Scorciatoie. Seleziona Servizi dalla barra laterale e trova il tuo servizio. Aggiungi un collegamento facendo doppio clic (none).

Infine vai su Preferenze di Sistema> Sicurezza> Privacy> Accessibilità e aggiungi Automator e l'app preferita per eseguire il collegamento.


2
Quest'ultimo "Finalmente" è importante: manca, e ottieni una confusa finestra di dialogo "L'azione [...] ha riscontrato un errore", che ti offre solo di mostrare il flusso di lavoro, probabilmente non ti rende più saggio.
ecmanaut,

Capito il problema, l'ultimo passaggio è diverso sul mio sistema operativo mizage.com/help/accessibility.html#10.7
William

5
Cosa intendi con l'app preferita?
William

Sarebbe bello se ci fosse un modo per automatizzare il passaggio "ora go to System Preferences > Keyboard > Shortcuts. Select Services from the sidebar and find your service. Add a shortcut by double clicking (none)." Deve essere possibile, non
ho

3
@William piace se hai scritto un AppleScript per nel Finder, basta selezionare sia Automator che Finder nelle impostazioni di Accessibilità.
MegaCookie,

15

In sintesi dovrai utilizzare:

  • Automator per creare un servizio che esegue uno script Apple
  • Preferenze di Sistema per assegnare una scorciatoia da tastiera al servizio

Di seguito sono riportati i passaggi necessari per ciascuno.

1. Creare un servizio utilizzando Automator

  1. Avvia Automator (solitamente presente nella cartella Applicazioni)
  2. Vai a File> Nuovo
  3. Seleziona Servizio e fai clic su Scegli
  4. Nella parte in alto a destra della finestra visualizzata, assicurarsi che "Nessun input" sia selezionato dall'elenco a discesa Servizio ricevuto
  5. Assicurati che l' elenco a discesa In visualizzi "Qualsiasi applicazione"
  6. Nella seconda colonna contenente l'elenco lungo, trova "Esegui AppleScript" e fai doppio clic su di esso
  7. Ciò aggiungerà la finestra Esegui AppleScript sulla destra
  8. Ora, sostituisci (* Il tuo script va qui *) con lo script che desideri
  9. Salvare il servizio utilizzando un nome significativo (ad es. GoToInbox).

Ora al passaggio successivo.

2. Creazione del collegamento

  1. Vai a Preferenze di Sistema> Tastiera> Scorciatoie
  2. Seleziona Servizi dalla barra laterale
  3. Trova il tuo servizio (sarà nell'elenco a destra)
  4. Aggiungi un collegamento facendo doppio clic sul nome del servizio
  5. Ora vai su Preferenze di Sistema> Sicurezza e Privacy> Privacy
  6. Seleziona Accessibilità nella barra laterale
  7. Fai clic sul segno + (potrebbe essere necessario sbloccare il lucchetto se è bloccato)
  8. Aggiungi automatore.
  9. Aggiungi Finder (per trovarlo dovrai accedere a /System/Library/CoreServices/Finder.app ).
  10. Esci dalle tue Preferenze di Sistema.

Ora dovresti essere in grado di fare due cose:

1. Esegui il servizio da qualsiasi applicazione andando all'elenco Servizi all'interno di qualsiasi menu Applicazione (ad es. Finder> Servizi, Safari> Servizi, TextEdit> Servizi, ecc.) E seleziona il servizio appena creato.

2. Utilizzare la scorciatoia da tastiera per eseguire il servizio.

NOTA: sono consapevole che per alcuni utenti le scorciatoie da tastiera non sembrano funzionare anche se sono state assegnate a un servizio. Questo è un altro argomento, ma se questo accade nel tuo caso, almeno puoi eseguire il servizio da qualsiasi applicazione che stai utilizzando.

Fammi sapere come vai


1
Perché devo aggiungere finder manualmente e su quali app non funziona in generale? Sembra che a volte devo eseguire lo script in servizi per farlo registrare prima che registri lo shorcut della tastiera, il che è un peccato.
William

2
Sì, il problema che ho riportato nella mia Nota alla fine può spesso (ma non sempre) essere risolto eseguendo prima un servizio (e talvolta è sufficiente accedere al menu Servizi) prima che venga riconosciuta la scorciatoia da tastiera. Si tratta di un bug estremamente fastidioso che è stato intorno per un lungo tempo e certamente consiglio di inviare una segnalazione di bug ad Apple . Per quanto riguarda il motivo per cui devi aggiungere Finder manualmente , semplicemente perché non è aggiunto per impostazione predefinita. Infine, non ho capito cosa intendevi con quali app non funziona in generale ?
Monomeeth

Ignorando la mia domanda sull'app che non funziona in alcune app. Sembra che l'esecuzione dello script una volta nel menu Servizio risolva questo problema e la tua spiegazione spiega il problema che stavo riscontrando. Perché devo aggiungere Automator Finder nell'elenco Accessibilità Sembra che non faccia differenza quando eseguo i comandi (Questa era la mia domanda di base)?
William,

Buona domanda! Se trovi che i passaggi da 5 a 9 sopra per la creazione di un collegamento non sono necessari per te, allora è fantastico. Tuttavia, ho aiutato molte persone a creare scorciatoie da tastiera per eseguire script personalizzati e ho scoperto che includere quei passaggi spesso evita un messaggio di errore (non ricordare ciò che è ora o in quali circostanze apparirebbe). Forse non dovrei includere questi passaggi per impostazione predefinita, ma è quello che sto facendo ora da parecchi anni (anche se i passaggi esatti differiranno a seconda della versione di macOS - sopra ho incluso i passaggi per El Capitan secondo il tuo taglie).
Monomeeth

I passaggi da 5 a 9 dovrebbero essere perfettamente superflui per l'assegnazione di un collegamento, anche se potrebbero essere necessari per far funzionare senza problemi lo script attivato se utilizza le funzionalità di automazione dell'interfaccia utente (clic del mouse e pressione dei tasti simulati). Tuttavia, quest'ultimo caso è interamente un altro problema; non dovresti confondere due problemi includendo questi passaggi nella tua risposta.
kopischke,

9

Non è possibile assegnare scorciatoie da tastiera agli script Apple immediatamente. Tuttavia, puoi:

  1. utilizzare un programma di avvio che supporti l'impostazione dei tasti di scelta rapida globali e l'esecuzione di AppleScript ( Alfred , Keyboard Maestro , FastScripts - qualunque cosa tu voglia), oppure
  2. inserire lo script in un'azione Esegui AppleScript all'interno di un servizio di Automator . Nota che deve essere un servizio, non un'applicazione o un normale flusso di lavoro: ai servizi possono essere assegnati tasti di scelta rapida nelle impostazioni della tastiera Preferenze di Sistema.

Segui i passaggi nella risposta di @ MegaCookie .
kopischke,

Quale versione del tuo sistema operativo possiedi il mio Mac 10.6.5 non sembra avere l'opzione "Seleziona Esegui Apple Script e digita il tuo codice"?
William

1
Non è "Seleziona Esegui AppleScript", è - come indicato nella mia risposta - l' azione Esegui AppleScript che devi aggiungere al tuo servizio Automator; trascinalo nell'area di azione dalla libreria, che ti porterà in un campo di testo con uno scaffold di funzioni a cui puoi aggiungere il tuo codice. Inoltre, dubito che siano necessarie le impostazioni di accessibilità nella risposta di @ MegaCookie, che riguardano l'automazione dell'interfaccia utente.
kopischke,

3

Nota: in macOS Mojave è stato rinominato da "Service" a "Quick Action" in Automator.

  1. cmd+ spacee digitare "automatore"
  2. Seleziona: File> Nuovo
  3. Seleziona "Azioni rapide"
  4. Cerca nella parte superiore della sezione sinistra "applecript" o "shellscript" o "javascript"
  5. Trascina l'azione desiderata sul flusso di lavoro sul lato destro
  6. File> Salva con il nome desiderato

Per aggiungere la sequenza di tasti al flusso di lavoro:

  1. Apri Preferenze di Sistema
  2. Seleziona Tastiera> Scorciatoie
  3. Seleziona Servizi a sinistra
  4. Trova il servizio appena creato e fai doppio clic su "nessuno" per aggiungere la scorciatoia da tastiera

Nota: se non lo rendi un'azione rapida (ad es. Lo trasformi in un "flusso di lavoro"), l'elenco dei collegamenti non lo rileverà.
Sridhar Sarnobat,

-2

Puoi andare in Preferenze di Sistema -> Tastiera -> Collegamenti -> aggiungi un nuovo collegamento. È quindi possibile selezionare il tuo script.

https://support.apple.com/kb/PH18418?locale=en_US


3
Non funzionerà Il documento a cui si sta collegando descrive come (ri) assegnare un tasto di scelta rapida a un comando di menu di un'applicazione .
kopischke,

Collegamento interrotto, Apple ha da tempo disabilitato questa funzionalità con un clic, sostituendola con un'operazione di 90 clic che coinvolge app di terze parti.
Eric Leschinski il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.