Posso avviare automaticamente un'app in un momento specifico su Mavericks?

7

Da anni utilizzo iCal per avviare automaticamente le app utilizzando gli allarmi. Creerei un nuovo evento in iCal e impostare la sveglia per avviare un'applicazione anziché mostrare una notifica. L'opzione per impostare gli allarmi per avviare app o URL (ecc.) Sembra essere stata rimossa da Calendar in Mavericks, il che significa che le mie app automatiche non si avviano più.

Come posso recuperare questa funzionalità in Mavericks. Non deve essere in Calendar (però, grrr, vorrei che funzionasse ancora! Mi piaceva avere un calendario che mostrava tutte le mie app e i tempi lanciati automaticamente a colpo d'occhio!).

Esempio: c'è un'eccellente app di Flickr chiamata SuprSetr che vorrei lanciare automaticamente ogni mattina alle 3:55. Come?

    
posta 2oh1 20.11.2013 - 05:23
fonte

4 risposte

6

Il bello di una domanda specifica è che può essere data una risposta specifica.

Ad esempio, l'OP ha detto: "C'è un'eccellente app di Flickr chiamata SuprSetr che vorrei lanciare automaticamente ogni mattina alle 3:55. Come?"

Risposta: Salva quanto segue come com.tjluoma.SuprSetr.plist (o qualunque nome tu preferisca, ma dovrebbe terminare con .plist) e inseriscilo nella cartella ~ / Libreria / LaunchAgents (dove ~ è la tua Home directory):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AbandonProcessGroup</key>
    <true/>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>com.tjluoma.SuprSetr</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-a</string>
        <string>SuprSetr</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Hour</key>
            <integer>3</integer>
            <key>Minute</key>
            <integer>55</integer>
        </dict>
    </array>
</dict>
</plist>

E poi, una volta che il file è a posto, dovresti inserire questo comando in Terminale:

launchctl load ~/Library/LaunchAgents/com.tjluoma.SuprSetr.plist

Quindi sarà pronto a lanciare l'app SuprSetr alle 3:55 am ogni giorno. (Nota: se il computer è addormentato alle 3:55 am, verrà eseguito quando il computer si riattiva.)

Da questo specifico esempio, una volta compreso che ciò che fa questo file plist è dire launchd per eseguire il comando Terminale:

/usr/bin/open -a SuprSetr

all'ora '3' e al minuto '55', allora dovrebbe essere facile estrapolarlo da quello ad altre app che vuoi eseguire in altri momenti.

Ora, se vuoi scriverli tutti a mano, puoi farlo gratuitamente, ma un'app come Lingon è una buona scelta (consiglierei non di acquistare la versione del Mac App Store, in quanto l'app mi sembra una cosa che Apple non gradirà nel mondo del sandboxing e che otterresti un'app più ricca di funzionalità dallo sviluppatore.

La mia preferenza personale è per un'app chiamata LaunchControl che è libero di provare, e quindi lo sviluppatore chiede qualcosa ragionevole come US $ 10, ma non c'è DRM, nessun codice di licenza, ma invece si basa sul buon vecchio sistema d'onore. (La mia speranza è che le persone che lo usano vivano fino alla fiducia degli sviluppatori in quel sistema.)

    
risposta data 21.11.2013 - 09:02
fonte
2

Sembra che Apple abbia rimosso la funzionalità integrata da Calendar. Tuttavia, esistono applicazioni di terze parti che possono avviare le app automaticamente in un momento specifico.

Prova Lingon - funziona in Mavericks ...

    
risposta data 20.11.2013 - 06:21
fonte
2

L'opzione per aprire un URL in iCal è stata effettivamente rimossa in Mountain Lion, ma ora puoi utilizzare gli allarmi del calendario:

Usando launchd , potresti salvare un plist come questo, ad esempio ~/Library/LaunchAgents/openmail.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>openmail</string>
  <key>ProgramArguments</key>
  <array>
    <string>bash</string>
    <string>-c</string>
    <string>pgrep -x Mail||open -jga Mail</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>3</integer>
    <key>Minute</key>
    <integer>55</integer>
  </dict>
</array>
</plist>

Esegui launchctl load ~/Library/LaunchAgents/openmail.plist .

Una terza opzione è eseguire EDITOR=nano crontab -e e aggiungere una riga come questa:

55 3 * * * pgrep -x Mail||open -jga Mail

open -jga apre un'applicazione nascosta e di solito senza generare alcuna finestra. Per alcune applicazioni come Mail e TextEdit, crea e solleva una nuova finestra predefinita se l'applicazione è in esecuzione ma non ha finestre visibili, ma puoi usare pgrep per controllare se l'applicazione è in esecuzione per prima.

Se vuoi aprire l'applicazione in primo piano, usa solo open -a .

    
risposta data 21.11.2013 - 08:20
fonte
0

Ho avuto lo stesso identico problema e ho trovato un'app nell'app store che fornisce un'interfaccia grafica per Launchd, si chiama Plisterine .

Il mio caso di utilizzo era di pranzare Outlook per Mac in un momento specifico, tenerlo aperto per un'ora e poi chiuderlo di nuovo. Per questo, ho creato un'applicazione / flusso di lavoro Automator come mostrato nello screenshot seguente:

Puoisemplicementeignorareilmessaggio" L'applicazione riceve file e cartelle come input " poiché non è necessario per questo flusso di lavoro.

Ho quindi aggiunto una nuova voce su Launchd usando Plisterine in modo che il flusso di lavoro di Automator venga attivato in base alla pianificazione, vedi screenshot di seguito:

Funziona come un fascino ed è facile da configurare.

    
risposta data 19.04.2016 - 08:46
fonte

Leggi altre domande sui tag